X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdcadsp.h;h=8c8db854a4d87e899c0b3baf40a4d81f3dfe75dc;hb=7158ce778f82b3d323851283f6c1b9145f408823;hp=abf577b61fa679819c5f1fbc94397ba394361b2e;hpb=f95385dd580604aa287b41093edd692f34c7613b;p=ffmpeg diff --git a/libavcodec/dcadsp.h b/libavcodec/dcadsp.h index abf577b61fa..8c8db854a4d 100644 --- a/libavcodec/dcadsp.h +++ b/libavcodec/dcadsp.h @@ -22,24 +22,29 @@ #include "avfft.h" #include "synth_filter.h" -#define DCA_SUBBANDS 64 +#define DCA_SUBBANDS_X96K 64 +#define DCA_SUBBANDS 64 +#define SAMPLES_PER_SUBBAND 8 // number of samples per subband per subsubframe + typedef struct DCADSPContext { void (*lfe_fir[2])(float *out, const float *in, const float *coefs); - void (*qmf_32_subbands)(float samples_in[32][8], int sb_act, + void (*qmf_32_subbands)(float samples_in[DCA_SUBBANDS][SAMPLES_PER_SUBBAND], int sb_act, SynthFilterContext *synth, FFTContext *imdct, float synth_buf_ptr[512], int *synth_buf_offset, float synth_buf2[32], const float window[512], float *samples_out, float raXin[32], float scale); - void (*decode_hf)(float dst[DCA_SUBBANDS][8], + void (*decode_hf)(int32_t dst[DCA_SUBBANDS][SAMPLES_PER_SUBBAND], 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, uint32_t scale); } DCADSPContext; void ff_dcadsp_init(DCADSPContext *s); +void ff_dcadsp_init_aarch64(DCADSPContext *s); void ff_dcadsp_init_arm(DCADSPContext *s); void ff_dcadsp_init_x86(DCADSPContext *s);