diff options
author | Alexandra Hájková <alexandra.khirnova@gmail.com> | 2015-12-17 15:52:47 +0100 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2015-12-23 11:50:18 +0100 |
commit | aebf07075f4244caf591a3af71e5872fe314e87b (patch) | |
tree | 6341986176d7d58b58e7f25cbde1b25ba8445efa /libavcodec/fmtconvert.h | |
parent | 85990140e7302d1e7fcc9fc0eea316178c19fe03 (diff) | |
download | ffmpeg-aebf07075f4244caf591a3af71e5872fe314e87b.tar.gz |
dca: change the core to work with integer coefficients.
The DCA core decoder converts integer coefficients read from the
bitstream to floats just after reading them (along with dequantization).
All the other steps of the audio reconstruction are done with floats
which makes the output for the DTS lossless extension (XLL)
actually lossy.
This patch changes the DCA core to work with integer coefficients
until QMF. At this point the integer coefficients are converted to floats.
The coefficients for the LFE channel (lfe_data) are not touched.
This is the first step for the really lossless XLL decoding.
Diffstat (limited to 'libavcodec/fmtconvert.h')
-rw-r--r-- | libavcodec/fmtconvert.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/fmtconvert.h b/libavcodec/fmtconvert.h index dd603f9967..b2c2356778 100644 --- a/libavcodec/fmtconvert.h +++ b/libavcodec/fmtconvert.h @@ -37,6 +37,16 @@ typedef struct FmtConvertContext { */ void (*int32_to_float_fmul_scalar)(float *dst, const int32_t *src, float mul, int len); + /** + * Convert an array of int32_t to float. + * @param dst destination array of float. + * constraints: 32-byte aligned + * @param src source array of int32_t. + * constraints: 32-byte aligned + * @param len number of elements to convert. + * constraints: multiple of 8 + */ + void (*int32_to_float)(float *dst, const int32_t *src, intptr_t len); /** * Convert an array of int32_t to float and multiply by a float value from another array, |