>
> It's a part of preemphasis() (loop.c)
>
> > if ( gr == 1 )
> > {
> > /*
> > If the second granule is being coded and scfsi is active in
> > at least one scfsi_band, the preemphasis in the second granule
> > is set equal to the setting in the first granule
> > */
> > for ( scfsi_band = 0; scfsi_band < 4; scfsi_band++ )
> > if ( l3_side->scfsi[ch][scfsi_band] )
> > {
> > cod_info->preflag = l3_side->gr[0].ch[ch].tt.preflag;
> > return 0;
> > }
> >
> > }
> >
>
> It seems to me that we have to emphasise spectrum of that second
> granule here before "return 0" in the case when preflag is set for the
> first granule, and then return 1. I.e. to do the same as under
> "if (over == 4 )" condition (see preemphasis() below).
> Otherwise it will be decoded the wrong way - HF will be too loud.
> Is it right?
I think all that code should just be deleted, since in LAME it will
never be activated. in LAME, scfsi[ch][] should always be 0. When it
is non-zero, some of the side information for gr=1 is not encoded and
the information for gr=0 is used instead. The ISO code never
activated this feature, although a lot of the code seems to be there.
In the 128kbs FhG samples I've looked at, I've never seen them use
scfsi. At low bitrates, there is only 1 granule per frame, and
thus I dont think MPEG2 uses it either, but I'm not sure.
Mark
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )