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

Reply via email to