This avoids deadlocks after non fatal slice header decoding errors.
Fixes several files, bipbop234.ts_s20083 for example.
---
 libavcodec/h264.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index baeebf1..8847f1f 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1294,6 +1294,12 @@ int ff_h264_frame_start(H264Context *h)
         return AVERROR_INVALIDDATA;
     }
 
+    // cleanup still set pictures and not marked finished due to decoding 
errors
+    if (s->current_picture_ptr && s->current_picture_ptr->owner2 == s) {
+        ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX,
+                                  s->picture_structure == PICT_BOTTOM_FIELD);
+    }
+
     if (ff_MPV_frame_start(s, s->avctx) < 0)
         return -1;
     ff_er_frame_start(s);
-- 
1.7.12.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to