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/dcadsp.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/dcadsp.h')
-rw-r--r-- | libavcodec/dcadsp.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/dcadsp.h b/libavcodec/dcadsp.h index 0669128cbc..eac9de977c 100644 --- a/libavcodec/dcadsp.h +++ b/libavcodec/dcadsp.h @@ -37,6 +37,12 @@ typedef struct DCADSPContext { const int8_t hf_vq[1024][32], intptr_t vq_offset, int32_t scale[DCA_SUBBANDS][2], intptr_t start, intptr_t end); + void (*decode_hf_int)(int32_t dst[DCA_SUBBANDS][8], + const int32_t vq_num[DCA_SUBBANDS], + const int8_t hf_vq[1024][32], intptr_t vq_offset, + int32_t scale[DCA_SUBBANDS][2], + intptr_t start, intptr_t end); + void (*dequantize)(int32_t *samples, uint32_t step_size, uint64_t scale); } DCADSPContext; void ff_dcadsp_init(DCADSPContext *s); |