summaryrefslogtreecommitdiff
path: root/libavcodec/h264_ps.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-10-26 10:22:31 +0200
committerAnton Khirnov <anton@khirnov.net>2013-10-27 21:39:01 +0100
commit94603feb1b3ad01a821a1a1cef1570b13f471821 (patch)
tree896367769d901dd138b4dc1fe9ec78a1f0390066 /libavcodec/h264_ps.c
parent79ef4b19bfcab8b984682a53bb8561e5c8324731 (diff)
downloadffmpeg-94603feb1b3ad01a821a1a1cef1570b13f471821.tar.gz
h264_ps: when parsing a VUI fails, only abort when explode is set
A VUI doesn't contain anything strictly necessary for decoding. Apparently there are many samples with truncated VUIs in the wild, this commit should allow decoding them.
Diffstat (limited to 'libavcodec/h264_ps.c')
-rw-r--r--libavcodec/h264_ps.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index dfdb739813..54b735d991 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -465,9 +465,11 @@ int ff_h264_decode_seq_parameter_set(H264Context *h)
}
sps->vui_parameters_present_flag = get_bits1(&h->gb);
- if (sps->vui_parameters_present_flag)
- if (decode_vui_parameters(h, sps) < 0)
+ if (sps->vui_parameters_present_flag) {
+ int ret = decode_vui_parameters(h, sps);
+ if (ret < 0 && h->avctx->err_recognition & AV_EF_EXPLODE)
goto fail;
+ }
if (!sps->sar.den)
sps->sar.den = 1;