nl_tokens: / * ========= decoding ==========
pl_tokens: public void decode ( IBitStream _in , boolean commonWindow , AACDecoderConfig conf ) throws AACException { if ( conf . isScalefactorResilienceUsed ( ) && rvlc == null ) rvlc = new RVLC ( ) ; final boolean er = conf . getProfile ( ) . isErrorResilientProfile ( ) ; globalGain = _in . readBits ( 8 ) ; if ( ! commonWindow ) info . decode ( _in , conf , commonWindow ) ; decodeSectionData ( _in , conf . isSectionDataResilienceUsed ( ) ) ; //if(conf.isScalefactorResilienceUsed()) rvlc.decode(_in, this, scaleFactors); /*else*/ decodeScaleFactors ( _in ) ; pulseDataPresent = _in . readBool ( ) ; if ( pulseDataPresent ) { if ( info . isEightShortFrame ( ) ) throw new AACException ( "pulse data not allowed for short frames" ) ; Logger . debug ( "PULSE" ) ; decodePulseData ( _in ) ; } tnsDataPresent = _in . readBool ( ) ; if ( tnsDataPresent && ! er ) { if ( tns == null ) tns = new TNS ( ) ; tns . decode ( _in , info ) ; } gainControlPresent = _in . readBool ( ) ; if ( gainControlPresent ) { if ( gainControl == null ) gainControl = new GainControl ( frameLength ) ; Logger . debug ( "GAIN" ) ; gainControl . decode ( _in , info . getWindowSequence ( ) ) ; } //RVLC spectral data //if(conf.isScalefactorResilienceUsed()) rvlc.decodeScalefactors(this, _in, scaleFactors); if ( conf . isSpectralDataResilienceUsed ( ) ) { int <mask> = ( conf . getChannelConfiguration ( ) == ChannelConfiguration . CHANNEL_CONFIG_STEREO ) ? 6144 : 12288 ; reorderedSpectralDataLen = Math . max ( _in . readBits ( 14 ) , max ) ; longestCodewordLen = Math . max ( _in . readBits ( 6 ) , 49 ) ; //HCR.decodeReorderedSpectralData(this, _in, data, conf.isSectionDataResilienceUsed()); } else decodeSpectralData ( _in ) ; }