[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