From 1cc2617022775ca1a095d91e0239f6e907a5b68b Mon Sep 17 00:00:00 2001 From: jiegeaiai Date: Thu, 24 Oct 2024 08:53:11 +0800 Subject: [PATCH] add pause handle --- human/human_render.py | 4 ++++ human_handler/audio_handler.py | 7 +++++++ render/base_render.py | 3 +++ 3 files changed, 14 insertions(+) diff --git a/human/human_render.py b/human/human_render.py index 4210b75..8837012 100644 --- a/human/human_render.py +++ b/human/human_render.py @@ -40,6 +40,10 @@ class HumanRender(AudioHandler): type_ = 0 self._video_render.put((res_frame, idx, type_)) + def pause_handle(self): + if self._video_render.size() > self._context.batch_size * 2: + super().pause_handle() + def pause_talk(self): self._voice_render.pause_talk() self._video_render.pause_talk() diff --git a/human_handler/audio_handler.py b/human_handler/audio_handler.py index 89e01d5..2b8df73 100644 --- a/human_handler/audio_handler.py +++ b/human_handler/audio_handler.py @@ -14,6 +14,13 @@ class AudioHandler(ABC): def on_handle(self, stream, index): pass + @abstractmethod + def pause_handle(self): + if self._handler is not None: + self._handler.pause_handle() + else: + logging.info(f'_handler is None') + @abstractmethod def stop(self): pass diff --git a/render/base_render.py b/render/base_render.py index 7bb8e6b..2f71140 100644 --- a/render/base_render.py +++ b/render/base_render.py @@ -30,6 +30,9 @@ class BaseRender(ABC): ps = time.time() - self._play_clock.start_time self._queue.put_nowait((frame, ps)) + def size(self): + return self._queue.qsize() + def pause_talk(self): self._queue.queue.clear()