diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-08 23:02:54 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-08 23:59:09 +0200 |
commit | 7e22514d98ecd56cc4e55dac7c813551e2152b80 (patch) | |
tree | 13c47e1e1215525323177a008d5406a7d61a418a /libavcodec/vorbisdec.c | |
parent | e016e3c9d7ce1493b952bdd8232f7e03077469a3 (diff) | |
parent | 3b81a18ba30bf18bab78f56744d8f3e1e4060104 (diff) | |
download | ffmpeg-7e22514d98ecd56cc4e55dac7c813551e2152b80.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
float_dsp: ppc: add a separate header for Altivec function prototypes
ARM: fix float_dsp breakage from d5a7229
Add a float DSP framework to libavutil
PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil
ARM: Move asm.S from libavcodec to libavutil
vc1dsp: mark put/avg_vc1_mspel_mc() always_inline
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vorbisdec.c')
-rw-r--r-- | libavcodec/vorbisdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 6785105460..65bfb218ea 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -30,6 +30,7 @@ #include <math.h> #define BITSTREAM_READER_LE +#include "libavutil/float_dsp.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" @@ -128,6 +129,7 @@ typedef struct vorbis_context_s { AVFrame frame; GetBitContext gb; DSPContext dsp; + AVFloatDSPContext fdsp; FmtConvertContext fmt_conv; FFTContext mdct[2]; @@ -987,6 +989,7 @@ static av_cold int vorbis_decode_init(AVCodecContext *avccontext) vc->avccontext = avccontext; ff_dsputil_init(&vc->dsp, avccontext); + avpriv_float_dsp_init(&vc->fdsp, avccontext->flags & CODEC_FLAG_BITEXACT); ff_fmt_convert_init(&vc->fmt_conv, avccontext); if (avccontext->request_sample_fmt == AV_SAMPLE_FMT_FLT) { @@ -1609,7 +1612,7 @@ static int vorbis_parse_audio_packet(vorbis_context *vc) for (j = vc->audio_channels-1;j >= 0; j--) { ch_floor_ptr = vc->channel_floors + j * blocksize / 2; ch_res_ptr = vc->channel_residues + res_chan[j] * blocksize / 2; - vc->dsp.vector_fmul(ch_floor_ptr, ch_floor_ptr, ch_res_ptr, blocksize / 2); + vc->fdsp.vector_fmul(ch_floor_ptr, ch_floor_ptr, ch_res_ptr, blocksize / 2); mdct->imdct_half(mdct, ch_res_ptr, ch_floor_ptr); } |