X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fac3dsp.h;h=c33a0bee84fb92112d4a307c8f19595c97664519;hb=f5950b8fd61ec85e0ad8790bea56b37ceea19436;hp=882eb7681aced6fdb84c2c10e856dd6f13192494;hpb=30b39164256999efc8d77edc85e2e0b963c24834;p=ffmpeg diff --git a/libavcodec/ac3dsp.h b/libavcodec/ac3dsp.h index 882eb7681ac..c33a0bee84f 100644 --- a/libavcodec/ac3dsp.h +++ b/libavcodec/ac3dsp.h @@ -1,5 +1,5 @@ /* - * AC-3 DSP utils + * AC-3 DSP functions * Copyright (c) 2011 Justin Ruggles * * This file is part of Libav. @@ -126,12 +126,31 @@ typedef struct AC3DSPContext { void (*extract_exponents)(uint8_t *exp, int32_t *coef, int nb_coefs); - void (*downmix)(float **samples, float (*matrix)[2], int out_ch, - int in_ch, int len); + int out_channels; + int in_channels; + void (*downmix)(float **samples, float **matrix, int len); + + /** + * Apply symmetric window in 16-bit fixed-point. + * @param output destination array + * constraints: 16-byte aligned + * @param input source array + * constraints: 16-byte aligned + * @param window window array + * constraints: 16-byte aligned, at least len/2 elements + * @param len full window length + * constraints: multiple of ? greater than zero + */ + void (*apply_window_int16)(int16_t *output, const int16_t *input, + const int16_t *window, unsigned int len); } AC3DSPContext; void ff_ac3dsp_init (AC3DSPContext *c, int bit_exact); void ff_ac3dsp_init_arm(AC3DSPContext *c, int bit_exact); void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact); +void ff_ac3dsp_downmix(AC3DSPContext *c, float **samples, float **matrix, + int out_ch, int in_ch, int len); +void ff_ac3dsp_set_downmix_x86(AC3DSPContext *c); + #endif /* AVCODEC_AC3DSP_H */