Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-05-20 13:30:42 +0300
committerAnton Khirnov <anton@khirnov.net>2016-06-21 12:20:26 +0300
commite26c64148be8a20ace7512d96503172fb5e9753b (patch)
tree57cfa88685fd2b448e462ba42ee515810e9c0f8e /libavcodec/h264_slice.c
parent6efc4638584e1e14d1a6152186ba28f5d48a80c0 (diff)
h264: discard slices of redundant pictures right after parsing the slice header
Going through the whole decoder initialization process for a slice we are not going to decode is unnecessary and potentially dangerous.
Diffstat (limited to 'libavcodec/h264_slice.c')
-rw-r--r--libavcodec/h264_slice.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index dbff1f3f8b..491039626e 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1565,6 +1565,10 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl,
if (ret < 0)
return ret;
+ // discard redundant pictures
+ if (sl->redundant_pic_count > 0)
+ return 0;
+
if (!h->setup_finished) {
if (sl->first_mb_addr == 0) { // FIXME better field boundary detection
if (h->current_slice && h->cur_pic_ptr && FIELD_PICTURE(h)) {