On 2015-12-17 15:52:47 +0100, Alexandra Hájková wrote:
> 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.
> ---
> with applied comments from janne
> after the irc discussion: * int32_to_float is kept as multidimensional
> arrays are guaranteed to be consecutive in memory
> * the shift is kept for now because of the
> bit-exact refference
>
> libavcodec/dca.h | 8 ++--
> libavcodec/dcadec.c | 111
> +++++++++++++++++++++++++-----------------------
> libavcodec/dcadsp.c | 34 +++++++++++++++
> libavcodec/dcadsp.h | 6 +++
> libavcodec/fmtconvert.c | 9 ++++
> libavcodec/fmtconvert.h | 10 +++++
> tests/fate/audio.mak | 2 +-
> 7 files changed, 122 insertions(+), 58 deletions(-)
>
> diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c
> index 9105a4c..c333f4a 100644
> --- a/libavcodec/dcadsp.c
> +++ b/libavcodec/dcadsp.c
[...]
> +static void dequantize_c(int32_t *samples, uint32_t step_size, uint32_t
> scale)
see below
> diff --git a/libavcodec/dcadsp.h b/libavcodec/dcadsp.h
> index 0669128..eac9de9 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);
mismatch in function declaration. already fixed locally. Looks otherwise
ok to me. I'll push after 24h passed to make sure the new fate reference
file is distributed.
Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel