diff mbox series

[FFmpeg-devel,v2,07/27] avcodec/vp9: Reduce wait times

Message ID GV1P250MB0737DFC06A8BEB6E43EE32648F002@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit 98e1e848ef68f00d6d120413b263a76f5d07cf65
Headers show
Series [FFmpeg-devel,v2,01/27] avcodec/threadprogress: Add new API for frame-threaded progress | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt April 8, 2024, 8:13 p.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/vp9.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index e0bc313301..bdfa543188 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -1569,14 +1569,15 @@  static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame,
             av_log(avctx, AV_LOG_ERROR, "Requested reference %d not available\n", ref);
             return AVERROR_INVALIDDATA;
         }
+        for (int i = 0; i < 8; i++)
+            ff_progress_frame_replace(&s->next_refs[i], &s->s.refs[i]);
+        ff_thread_finish_setup(avctx);
         ff_progress_frame_await(&s->s.refs[ref], INT_MAX);
 
         if ((ret = av_frame_ref(frame, s->s.refs[ref].f)) < 0)
             return ret;
         frame->pts     = pkt->pts;
         frame->pkt_dts = pkt->dts;
-        for (int i = 0; i < 8; i++)
-            ff_progress_frame_replace(&s->next_refs[i], &s->s.refs[i]);
         *got_frame = 1;
         return pkt->size;
     }