diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2017-02-21 02:22:51 +0300 |
---|---|---|
committer | Rostislav Pehlivanov <atomnuker@gmail.com> | 2017-05-08 07:56:14 +0300 |
commit | b8c2b9c39279171f647d9c81f34ffa3d3ae93c47 (patch) | |
tree | fc50e13f8009274c05ab06eeeb80757b6dc10a94 /libavcodec/dcaenc.h | |
parent | 5f928c5201c077b9765610bc5304235c3f1d9bd6 (diff) |
avcodec/dcaenc: Initial implementation of ADPCM encoding for DCA encoder
Diffstat (limited to 'libavcodec/dcaenc.h')
-rw-r--r-- | libavcodec/dcaenc.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/dcaenc.h b/libavcodec/dcaenc.h index 06816c233d..63fdaf074e 100644 --- a/libavcodec/dcaenc.h +++ b/libavcodec/dcaenc.h @@ -24,6 +24,8 @@ #include <stdint.h> +#include "dcamath.h" + typedef struct { int32_t m; int32_t e; @@ -144,4 +146,13 @@ static const int8_t channel_reorder_nolfe[16][9] = { { 3, 2, 4, 0, 1, 5, 7, 6, -1 }, }; +static inline int32_t quantize_value(int32_t value, softfloat quant) +{ + int32_t offset = 1 << (quant.e - 1); + + value = mul32(value, quant.m) + offset; + value = value >> quant.e; + return value; +} + #endif /* AVCODEC_DCAENC_H */ |