[SCM] libav/experimental: unroll another common case in vorbis_residue_decode
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 16:25:26 UTC 2013
The following commit has been merged in the experimental branch:
commit 1a32536737ce600af24dd325e6bb4f61c2463cf3
Author: Loren Merritt <lorenm at u.washington.edu>
Date: Tue Jul 15 23:01:15 2008 +0000
unroll another common case in vorbis_residue_decode
Originally committed as revision 14250 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavcodec/vorbis_dec.c b/libavcodec/vorbis_dec.c
index d4a5402..2143db7 100644
--- a/libavcodec/vorbis_dec.c
+++ b/libavcodec/vorbis_dec.c
@@ -1330,6 +1330,14 @@ static int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, uint_fa
vec[voffs+k ]+=codebook.codevectors[coffs ]; // FPMATH
vec[voffs+k+vlen]+=codebook.codevectors[coffs+1]; // FPMATH
}
+ } else if(dim==4) {
+ for(k=0;k<step;++k, voffs+=2) {
+ coffs=get_vlc2(gb, codebook.vlc.table, codebook.nb_bits, 3) * 4;
+ vec[voffs ]+=codebook.codevectors[coffs ]; // FPMATH
+ vec[voffs+1 ]+=codebook.codevectors[coffs+2]; // FPMATH
+ vec[voffs+vlen ]+=codebook.codevectors[coffs+1]; // FPMATH
+ vec[voffs+vlen+1]+=codebook.codevectors[coffs+3]; // FPMATH
+ }
} else
for(k=0;k<step;++k) {
coffs=get_vlc2(gb, codebook.vlc.table, codebook.nb_bits, 3) * dim;
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list