[FFmpeg-cvslog] avcodec/pngdec: mark previous_picture as done on end of decode_frame_common()

Michael Niedermayer git at videolan.org
Thu Oct 1 01:21:33 CEST 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Mon Sep 28 02:42:39 2015 +0200| [9e9d731b510666edac3a2b450dfc331279db818b] | committer: Michael Niedermayer

avcodec/pngdec: mark previous_picture as done on end of decode_frame_common()

Fixes deadlock with threads

Found-by: Paul B Mahol
Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9e9d731b510666edac3a2b450dfc331279db818b
---

 libavcodec/pngdec.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 1b47b18..bd84ee9 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;
 }
 



More information about the ffmpeg-cvslog mailing list