summaryrefslogtreecommitdiff
path: root/libavcodec/dnxhddec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2015-11-28 12:41:19 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2015-11-29 21:30:37 +0100
commit55711e6fd0528f2cb17f1ce64c8da3f92bba14a4 (patch)
tree745a916e2919bace1f34bb74371534b513e214ec /libavcodec/dnxhddec.c
parentec494e6c836909e7478000d9316c945b51d4a25c (diff)
avcodec/dnxhddec: Disable 12bit by default
The DC VLC table used is too small, fixing this requires a sample, thus request a sample. Some samples are said to work even though the table has the wrong size, thus this is left enabled if the user enables experimental features. Fixes: 2abd25478c62a675f335fac00b467023/asan_static-oob_10aff98_1227_8811480c6ef1e970a7977ceb7e5a9958.mxf Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Approved-by: kurosu Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/dnxhddec.c')
-rw-r--r--libavcodec/dnxhddec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/dnxhddec.c b/libavcodec/dnxhddec.c
index f0fdbb9ea8..20ca262fbd 100644
--- a/libavcodec/dnxhddec.c
+++ b/libavcodec/dnxhddec.c
@@ -118,6 +118,11 @@ static int dnxhd_init_vlc(DNXHDContext *ctx, uint32_t cid, int bitdepth)
av_log(ctx->avctx, AV_LOG_ERROR, "bit depth mismatches %d %d\n", ff_dnxhd_cid_table[index].bit_depth, bitdepth);
return AVERROR_INVALIDDATA;
}
+ if (bitdepth > 10) {
+ avpriv_request_sample(ctx->avctx, "DNXHR 12-bit");
+ if (ctx->avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL)
+ return AVERROR_PATCHWELCOME;
+ }
ctx->cid_table = &ff_dnxhd_cid_table[index];
av_log(ctx->avctx, AV_LOG_VERBOSE, "Profile cid %d.\n", cid);