aboutsummaryrefslogtreecommitdiff
path: root/video_thread.py
diff options
context:
space:
mode:
authorDH42017-06-05 04:54:58 -0500
committerDH42017-06-05 04:54:58 -0500
commitbe18deece5843ac8d2c7af64704e3fb360a05a25 (patch)
tree0e0f49cf8661fe45e3f6bc647bf121d97c116cbe /video_thread.py
parente58a1d0b2d499aca72af8472ec33c02580d2dffd (diff)
Performance Tuning. FIXME: Video component frames are rendered out of order. Video component creates a severe performance bottleneck.
Diffstat (limited to 'video_thread.py')
-rw-r--r--video_thread.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/video_thread.py b/video_thread.py
index 0542bc2..ac4162c 100644
--- a/video_thread.py
+++ b/video_thread.py
@@ -37,20 +37,19 @@ class Worker(QtCore.QObject):
def renderNode(self):
while not self.stopped:
i = self.compositeQueue.get()
-
- frame = Image.new(
- "RGBA",
- (self.width, self.height),
- (0, 0, 0, 0)
- )
+ frame = None
for compNo, comp in reversed(list(enumerate(self.components))):
if compNo in self.staticComponents and self.staticComponents[compNo] != None:
- frame = Image.alpha_composite(frame, self.staticComponents[compNo])
+ if frame is None:
+ frame = self.staticComponents[compNo]
+ else:
+ frame = Image.alpha_composite(frame, self.staticComponents[compNo])
else:
- frame = Image.alpha_composite(frame, comp.frameRender(compNo, i[0], i[1]))
-
- # frame.paste(compFrame, mask=compFrame)
+ if frame is None:
+ frame = comp.frameRender(compNo, i[0], i[1])
+ else:
+ frame = Image.alpha_composite(frame, comp.frameRender(compNo, i[0], i[1]))
self.renderQueue.put([i[0], frame])
self.compositeQueue.task_done()
@@ -98,6 +97,7 @@ class Worker(QtCore.QObject):
ffmpegCommand = [
self.core.FFMPEG_BIN,
+ '-thread_queue_size', '512',
'-y', # (optional) means overwrite the output file if it already exists.
'-f', 'rawvideo',
'-vcodec', 'rawvideo',