Skip to content

Commit 7129f51

Browse files
authored
Merge pull request #31 from 404Vector/feat/fix_v2v_i2ijob
update: Video2VideoProcessor의 job_image2image 수정*
2 parents 140df8f + 70a0c5a commit 7129f51

File tree

1 file changed

+43
-22
lines changed

1 file changed

+43
-22
lines changed

v2v/_video2video_processor_.py

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,47 @@ def job_video2image(
4646
v2i_proc.wait()
4747

4848

49-
async def job_image2image(
49+
def job_image2image(
5050
i2i_pool: IFrameProcessorPool,
5151
dequeue: Queue,
5252
enqueue: Queue,
5353
progress: ThreadSafeProgress,
5454
):
55-
while True:
56-
frame_data: FrameData = await asyncio.to_thread(dequeue.get)
57-
if frame_data is None:
58-
dequeue.put(None)
59-
break
60-
result = await i2i_pool(frame_data=frame_data)
61-
# print(f"--------i2i[{frame_data.frame_id:05d}]")
62-
enqueue.put(result)
63-
progress.change(1)
64-
enqueue.put(None) # end of work
55+
loop = asyncio.new_event_loop()
56+
number_of_process = len(i2i_pool)
57+
58+
async def _processing(
59+
i2i_pool: IFrameProcessorPool,
60+
dequeue: Queue,
61+
enqueue: Queue,
62+
progress: ThreadSafeProgress,
63+
):
64+
while True:
65+
frame_data: FrameData = dequeue.get()
66+
if frame_data is None:
67+
dequeue.put(None)
68+
break
69+
result = await i2i_pool(frame_data=frame_data)
70+
# print(f"--------i2i[{frame_data.frame_id:05d}]")
71+
enqueue.put(result)
72+
progress.change(1)
73+
enqueue.put(None) # end of work
74+
75+
loop.run_until_complete(
76+
asyncio.gather(
77+
*[
78+
loop.create_task(
79+
_processing(
80+
i2i_pool=i2i_pool,
81+
dequeue=dequeue,
82+
enqueue=enqueue,
83+
progress=progress,
84+
)
85+
)
86+
for _ in range(number_of_process)
87+
]
88+
)
89+
)
6590

6691

6792
def job_image2video(
@@ -150,17 +175,13 @@ async def _async_run(self):
150175
enqueue=v2i_queue,
151176
progress=v2i_progress,
152177
),
153-
*[
154-
asyncio.create_task(
155-
job_image2image(
156-
i2i_pool=image2image_pool,
157-
dequeue=v2i_queue,
158-
enqueue=i2v_queue,
159-
progress=i2i_progress,
160-
)
161-
)
162-
for _ in range(len(image2image_pool))
163-
],
178+
asyncio.to_thread(
179+
job_image2image,
180+
i2i_pool=image2image_pool,
181+
dequeue=v2i_queue,
182+
enqueue=i2v_queue,
183+
progress=i2i_progress,
184+
),
164185
asyncio.to_thread(
165186
job_image2video,
166187
i2v_proc=image2video_proc,

0 commit comments

Comments
 (0)