[FFmpeg-soc] [soc]: r4296 - wmapro/wma3dec.c
faust3
subversion at mplayerhq.hu
Sat May 23 11:00:06 CEST 2009
Author: faust3
Date: Sat May 23 11:00:06 2009
New Revision: 4296
Log:
move the calculation of the first dpcm coded scale factor out of the scale factor decode loop
Modified:
wmapro/wma3dec.c
Modified: wmapro/wma3dec.c
==============================================================================
--- wmapro/wma3dec.c Sat May 23 10:00:27 2009 (r4295)
+++ wmapro/wma3dec.c Sat May 23 11:00:06 2009 (r4296)
@@ -894,15 +894,15 @@ static int wma_decode_scale_factors(WMA3
if(s->channel[c].transmit_sf){
int b;
- if(!s->channel[c].reuse_sf){
+ if(!s->channel[c].reuse_sf){ //DPCM coded
int i;
+ int val;
s->channel[c].scale_factor_step = get_bits(&s->getbit,2) + 1;
- for(i=0;i<s->num_bands;i++){
- int val = get_vlc2(&s->getbit, s->sf_vlc.table, SCALEVLCBITS, ((FF_WMA3_HUFF_SCALE_MAXBITS+SCALEVLCBITS-1)/SCALEVLCBITS)); // DPCM-coded
- if(!i)
- s->channel[c].scale_factors[i] = 45 / s->channel[c].scale_factor_step + val - 60;
- else
- s->channel[c].scale_factors[i] = s->channel[c].scale_factors[i-1] + val - 60;
+ val = get_vlc2(&s->getbit, s->sf_vlc.table, SCALEVLCBITS, ((FF_WMA3_HUFF_SCALE_MAXBITS+SCALEVLCBITS-1)/SCALEVLCBITS));
+ s->channel[c].scale_factors[0] = 45 / s->channel[c].scale_factor_step + val - 60;
+ for(i=1;i<s->num_bands;i++){
+ val = get_vlc2(&s->getbit, s->sf_vlc.table, SCALEVLCBITS, ((FF_WMA3_HUFF_SCALE_MAXBITS+SCALEVLCBITS-1)/SCALEVLCBITS));
+ s->channel[c].scale_factors[i] = s->channel[c].scale_factors[i-1] + val - 60;
}
}else{ // rl-coded
int i;
More information about the FFmpeg-soc
mailing list