[FFmpeg-cvslog] pthread: Fix crash due to fctx->delaying not being cleared.
Dale Curtis
git at videolan.org
Fri Apr 13 12:27:08 CEST 2012
ffmpeg | branch: master | Dale Curtis <dalecurtis at chromium.org> | Thu Apr 12 17:12:27 2012 -0700| [a9d114dc8a24ae439fa6a2fe5eb1bfc346a0ad4a] | committer: Michael Niedermayer
pthread: Fix crash due to fctx->delaying not being cleared.
corrects invalid return when avpkt->size == 0.
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 at chromium.org>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a9d114dc8a24ae439fa6a2fe5eb1bfc346a0ad4a
---
libavcodec/pthread.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c
index c23098f..79abd26 100644
--- a/libavcodec/pthread.c
+++ b/libavcodec/pthread.c
@@ -614,11 +614,12 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
* 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;
*got_picture_ptr=0;
- return avpkt->size;
+ if (avpkt->size)
+ return avpkt->size;
}
/*
More information about the ffmpeg-cvslog
mailing list