--- libavcodec/cfhd.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 3906d7a86d..2c538f0bbd 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -114,7 +114,30 @@ static inline int dequant_and_decompand(int level, int quantisation, int codeboo { if (lossless) return level; - if (codebook == 0 || codebook == 1) { + if (codebook == 0) { + if (level >= 40 && level < 264) { + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + } else if (level <= -40) { + level = -level; + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + level = -level; + } + return level * quantisation; + } else if (codebook == 1) { int64_t abslevel = abs(level); if (level < 264) return (abslevel + ((768 * abslevel * abslevel * abslevel) / (255 * 255 * 255))) * -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel