diff options
author | Michael Niedermayer | 2015-11-28 12:41:19 +0100 |
---|---|---|
committer | Michael Niedermayer | 2015-11-29 21:30:37 +0100 |
commit | 55711e6fd0528f2cb17f1ce64c8da3f92bba14a4 (patch) | |
tree | 745a916e2919bace1f34bb74371534b513e214ec | |
parent | ec494e6c836909e7478000d9316c945b51d4a25c (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>
-rw-r--r-- | libavcodec/dnxhddec.c | 5 |
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); |