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