h264dec: make sure not to call finish_setup() more than once per frame
authorAnton Khirnov <anton@khirnov.net>
Wed, 20 Jul 2016 07:59:45 +0000 (09:59 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 20 Jul 2016 14:35:49 +0000 (16:35 +0200)
It does not break anything currently, but should not be done anyway.

libavcodec/h264dec.c

index 1086eab..faa502e 100644 (file)
@@ -550,7 +550,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
                 break;
 
             if (avctx->active_thread_type & FF_THREAD_FRAME && !h->avctx->hwaccel &&
                 break;
 
             if (avctx->active_thread_type & FF_THREAD_FRAME && !h->avctx->hwaccel &&
-                i >= nals_needed) {
+                i >= nals_needed && !h->setup_finished) {
                 ff_thread_finish_setup(avctx);
                 h->setup_finished = 1;
             }
                 ff_thread_finish_setup(avctx);
                 h->setup_finished = 1;
             }