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

Michael Niedermayer michaelni at gmx.at
Mon Sep 28 03:13:27 CEST 2015


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



More information about the ffmpeg-devel mailing list