[FFmpeg-devel] [PATCH] pthread: Fix crash due to fctx->delaying not being cleared.

Dale Curtis dalecurtis at chromium.org
Fri Apr 13 02:13:22 CEST 2012


New patch corrects invalid return when avpkt->size == 0.

- dale

On Thu, Apr 12, 2012 at 5:12 PM, <dalecurtis at chromium.org> wrote:

> From: Dale Curtis <dalecurtis at chromium.org>
>
> 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>
> ---
>  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;
>     }
>
>     /*
> --
> 1.7.7.3
>
>


More information about the ffmpeg-devel mailing list