diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-12-07 15:21:41 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-12-07 15:21:41 +0100 |
commit | af164d7d9f12f9c2a4b284957eb92ad74cd49b3d (patch) | |
tree | 942f8ceec8738f4436612742a0d08c180c67193d /libavcodec/aacsbr.c | |
parent | 8ca8b43d7108b9d7e6887fd553d13a71afa670c6 (diff) | |
parent | c25fc5c2bb6ae8c93541c9427df3e47206d95152 (diff) | |
download | ffmpeg-af164d7d9f12f9c2a4b284957eb92ad74cd49b3d.tar.gz |
Merge commit 'c25fc5c2bb6ae8c93541c9427df3e47206d95152'
* commit 'c25fc5c2bb6ae8c93541c9427df3e47206d95152':
fate: dpcm: Add dependencies
SBR DSP x86: implement SSE sbr_hf_gen
AAC SBR: use AVFloatDSPContext's vector_fmul
fate: image: Add dependencies
Changelog: add an entry for deprecating the avconv -vol option
x86: float_dsp: fix compilation of ff_vector_dmul_scalar_avx() on x86-32
Conflicts:
Changelog
libavutil/x86/float_dsp.asm
tests/fate/image.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/aacsbr.c')
-rw-r--r-- | libavcodec/aacsbr.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c index e46b4a44b8..714e48c1ff 100644 --- a/libavcodec/aacsbr.c +++ b/libavcodec/aacsbr.c @@ -76,7 +76,6 @@ enum { static VLC vlc_sbr[10]; static const int8_t vlc_sbr_lav[10] = { 60, 60, 24, 24, 31, 31, 12, 12, 31, 12 }; -static const DECLARE_ALIGNED(16, float, zero64)[64]; #define SBR_INIT_VLC_STATIC(num, size) \ INIT_VLC_STATIC(&vlc_sbr[num], 9, sbr_tmp[num].table_size / sbr_tmp[num].elem_size, \ @@ -1180,7 +1179,7 @@ static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct, * (14496-3 sp04 p206) */ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct, - SBRDSPContext *sbrdsp, + SBRDSPContext *sbrdsp, AVFloatDSPContext *fdsp, float *out, float X[2][38][64], float mdct_buf[2][64], float *v0, int *v_off, const unsigned int div) @@ -1211,7 +1210,7 @@ static void sbr_qmf_synthesis(DSPContext *dsp, FFTContext *mdct, mdct->imdct_half(mdct, mdct_buf[1], X[1][i]); sbrdsp->qmf_deint_bfly(v, mdct_buf[1], mdct_buf[0]); } - dsp->vector_fmul_add(out, v , sbr_qmf_window , zero64, 64 >> div); + fdsp->vector_fmul (out, v , sbr_qmf_window , 64 >> div); dsp->vector_fmul_add(out, v + ( 192 >> div), sbr_qmf_window + ( 64 >> div), out , 64 >> div); dsp->vector_fmul_add(out, v + ( 256 >> div), sbr_qmf_window + (128 >> div), out , 64 >> div); dsp->vector_fmul_add(out, v + ( 448 >> div), sbr_qmf_window + (192 >> div), out , 64 >> div); @@ -1708,12 +1707,14 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac, nch = 2; } - sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, L, sbr->X[0], sbr->qmf_filter_scratch, + sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, &ac->fdsp, + L, sbr->X[0], sbr->qmf_filter_scratch, sbr->data[0].synthesis_filterbank_samples, &sbr->data[0].synthesis_filterbank_samples_offset, downsampled); if (nch == 2) - sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, R, sbr->X[1], sbr->qmf_filter_scratch, + sbr_qmf_synthesis(&ac->dsp, &sbr->mdct, &sbr->dsp, &ac->fdsp, + R, sbr->X[1], sbr->qmf_filter_scratch, sbr->data[1].synthesis_filterbank_samples, &sbr->data[1].synthesis_filterbank_samples_offset, downsampled); |