[FFmpeg-devel] [PATCH] avcodec/pngdec: mark previous_picture as done on end of decode_frame_common()
Ronald S. Bultje
rsbultje at gmail.com
Thu Oct 1 02:14:10 CEST 2015
Hi,
On Sun, Sep 27, 2015 at 9:13 PM, Michael Niedermayer <michaelni at gmx.at>
wrote:
> From: Michael Niedermayer <michael at niedermayer.cc>
>
> Fixes deadlock with threads
>
> Found-by: Paul B Mahol
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
> libavcodec/pngdec.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
> index ee11f12..743144b 100644
> --- a/libavcodec/pngdec.c
> +++ b/libavcodec/pngdec.c
> @@ -1217,6 +1217,7 @@ exit_loop:
> }
> }
> ff_thread_report_progress(&s->picture, INT_MAX, 0);
> + ff_thread_report_progress(&s->previous_picture, INT_MAX, 0);
>
> av_frame_set_metadata(p, metadata);
> metadata = NULL;
> @@ -1225,6 +1226,7 @@ exit_loop:
> fail:
> av_dict_free(&metadata);
> ff_thread_report_progress(&s->picture, INT_MAX, 0);
> + ff_thread_report_progress(&s->previous_picture, INT_MAX, 0);
> return ret;
> }
>
> --
> 1.7.9.5
So I directly admit I didn't look very deep, so I may be missing something
terribly obvious, but uhm. Shouldn't we mark previous_picture as done when
it's current? Why mark it as done in the frame after?
Ronald
More information about the ffmpeg-devel
mailing list