diff --git a/src/pipecat/transports/base_output.py b/src/pipecat/transports/base_output.py index 81471dd37..c787405cf 100644 --- a/src/pipecat/transports/base_output.py +++ b/src/pipecat/transports/base_output.py @@ -242,8 +242,6 @@ async def _sink_frame_handler(self, frame: Frame): await self._set_camera_images(frame.images) elif isinstance(frame, TransportMessageFrame): await self.send_message(frame) - else: - await self.push_frame(frame) async def _sink_clock_task_handler(self): running = True @@ -262,8 +260,13 @@ async def _sink_clock_task_handler(self): if timestamp > current_time: wait_time = nanoseconds_to_seconds(timestamp - current_time) await asyncio.sleep(wait_time) + + # Handle frame. await self._sink_frame_handler(frame) + # Also, push frame downstream in case anyone else needs it. + await self.push_frame(frame) + self._sink_clock_queue.task_done() except asyncio.CancelledError: break