pthread: Fix crash due to fctx->delaying not being cleared.

Reproducible with test case and ffplay -threads 2. Stack trace:
http://pastebin.com/PexZ4Uc0

Test case:
http://commondatastorage.googleapis.com/dalecurtis-shared/crash.ogm

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
pull/5/head
Dale Curtis 13 years ago committed by Ronald S. Bultje
parent 27c2fb0f72
commit 97ae370078
  1. 5
      libavcodec/pthread.c

@ -603,11 +603,12 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
* If we're still receiving the initial packets, don't return a frame. * If we're still receiving the initial packets, don't return a frame.
*/ */
if (fctx->delaying && avpkt->size) { if (fctx->delaying) {
if (fctx->next_decoding >= (avctx->thread_count-1)) fctx->delaying = 0; if (fctx->next_decoding >= (avctx->thread_count-1)) fctx->delaying = 0;
*got_picture_ptr=0; *got_picture_ptr=0;
return avpkt->size; if (avpkt->size)
return avpkt->size;
} }
/* /*

Loading…
Cancel
Save