openglrenderer: retrieve frame in each worker thread rather than in the proxy thread

Since we now have decoders in each thread, we can parallelize by retrieving
frames in each thread as well.
This commit is contained in:
itsmattkc
2020-04-11 17:37:00 +10:00
parent f08734d18e
commit a8fbe686e2
4 changed files with 8 additions and 11 deletions
+5 -1
View File
@@ -38,7 +38,11 @@ OpenGLWorker::OpenGLWorker(VideoRenderFrameCache *frame_cache, QObject *parent)
void OpenGLWorker::FrameToValue(DecoderPtr decoder, StreamPtr stream, const TimeRange &range, NodeValueTable *table)
{
emit RequestFrameToValue(decoder, stream, range, table);
FramePtr frame = decoder->RetrieveVideo(range.in(), video_params().divider());
if (frame) {
emit RequestFrameToValue(frame, stream, range, table);
}
}
void OpenGLWorker::RunNodeAccelerated(const Node *node, const TimeRange &range, const NodeValueDatabase &input_params, NodeValueTable *output_params)