From d6ac8a4ee2f08a6d3cab7e7500d740c661062c9f Mon Sep 17 00:00:00 2001
From: Gagandeep Singh <deepgagan231197@gmail.com>
Date: Tue, 14 Aug 2018 00:20:06 +0530
Subject: [GSOC][FFmpeg-devel][PATCH 2/3] lavc/cfhd:corrected decompanding for table 9 used in cfhd
---
libavcodec/cfhd.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
@@ -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