src/aacplusenc.c: AacInitDefaultConfig(&aacp->config); src/aacplusenc.c: aacp->config.nChannelsIn = numChannels; src/aacplusenc.c: aacp->config.sampleRate = sampleRate; src/aacplusenc.c: aacp->writeOffset = INPUT_DELAY*MAX_CHANNELS; src/aacplusenc.c: aacplusEncInitSBRAACRam(&aacp->aacEnc); src/aacplusenc.c: init_plans(&aacp->fftctx); src/aacplusenc.c: return &aacp->config; src/aacplusenc.c: if(cfg != &aacp->config) src/aacplusenc.c: memcpy(&aacp->config, cfg, sizeof(aacplusEncConfiguration)); src/aacplusenc.c: int sampleRateAAC = aacp->config.sampleRate; src/aacplusenc.c: if(!aacp->config.nChannelsOut) src/aacplusenc.c: aacp->config.nChannelsOut = aacp->config.nChannelsIn; src/aacplusenc.c: if(!aacp->config.bitRate) src/aacplusenc.c: if(aacp->config.bandWidth > aacp->config.sampleRate/2) src/aacplusenc.c: aacp->config.inputSamples = aacp->config.nSamplesPerFrame * 2 * aacp->config.nChannelsIn; src/aacplusenc.c: if ( (aacp->config.nChannelsOut == 2) && (aacp->config.bitRate >= 16000) && (aacp->config.bitRate < 44001) ) { src/aacplusenc.c: aacp->config.nChannelsOut=1; src/aacplusenc.c: aacp->useParametricStereo=1; src/aacplusenc.c: aacp->envReadOffset = (MAX_DS_FILTER_DELAY + INPUT_DELAY)*MAX_CHANNELS; src/aacplusenc.c: aacp->coreWriteOffset = CORE_INPUT_OFFSET_PS; src/aacplusenc.c: aacp->writeOffset = aacp->envReadOffset; src/aacplusenc.c: InitIIR21_Resampler(&aacp->IIR21_reSampler[0]); src/aacplusenc.c: InitIIR21_Resampler(&aacp->IIR21_reSampler[1]); src/aacplusenc.c: assert(aacp->IIR21_reSampler[0].delay <= MAX_DS_FILTER_DELAY); src/aacplusenc.c: aacp->writeOffset += aacp->IIR21_reSampler[0].delay*MAX_CHANNELS; src/aacplusenc.c: if(!IsSbrSettingAvail(aacp->config.bitRate, aacp->config.nChannelsOut, sampleRateAAC, &sampleRateAAC)) { src/aacplusenc.c: aacp->config.bitRate, aacp->config.nChannelsOut, sampleRateAAC); src/aacplusenc.c: InitializeSbrDefaults (&aacp->sbrConfig); src/aacplusenc.c: aacp->sbrConfig.usePs = aacp->useParametricStereo; src/aacplusenc.c: if(!AdjustSbrSettings( &aacp->sbrConfig, aacp->config.bitRate, aacp->config.nChannelsOut, sampleRateAAC, AACENC_TRANS_FAC, 24000)) { src/aacplusenc.c: aacp->config.bitRate, aacp->config.nChannelsOut, sampleRateAAC, aacp->sbrConfig.usePs); src/aacplusenc.c: if(EnvOpen(aacp->aacEnc.sbr_ram, src/aacplusenc.c: &aacp->hEnvEnc, src/aacplusenc.c: &aacp->inBuf[aacp->coreWriteOffset], src/aacplusenc.c: &aacp->sbrConfig, src/aacplusenc.c: &aacp->config.bandWidth) != 0){ src/aacplusenc.c: EnvClose (&aacp->hEnvEnc); src/aacplusenc.c: aacp->hEnvEnc.fftctx = &aacp->fftctx; src/aacplusenc.c: aacp->config.sampleRate = sampleRateAAC; src/aacplusenc.c: if (AacEncOpen( &aacp->aacEnc, &aacp->config) != 0){ src/aacplusenc.c: AacEncClose(&aacp->aacEnc); src/aacplusenc.c: aacp->aacEnc.fftctx = &aacp->fftctx; src/aacplusenc.c: aacp->adts = calloc(1, sizeof(ADTSContext_t)); src/aacplusenc.c: if(!aacp->adts) { src/aacplusenc.c: adts_hdr_init(aacp->adts, &aacp->config, &aacp->aacEnc.bitStream); src/aacplusenc.c: if(aacp->useParametricStereo) src/aacplusenc.c: srate_idx = FindSRIndex(aacp->config.sampleRate); src/aacplusenc.c: ch_idx = FindCHIndex(aacp->config.nChannelsOut); src/aacplusenc.c: if(aacp->config.nSamplesPerFrame != AACENC_BLOCKSIZE) src/aacplusenc.c: srate_idx = FindSRIndex(aacp->config.sampleRate * 2); src/aacplusenc.c: if(samplesInput > aacp->config.inputSamples) src/aacplusenc.c: switch (aacp->config.inputFormat){ src/aacplusenc.c: aacp->inBuf[(2/aacp->config.nChannelsIn)*i+aacp->writeOffset+aacp->writtenSamples] = (float) inbuff[i]; src/aacplusenc.c: aacp->inBuf[(2/aacp->config.nChannelsIn)*i+aacp->writeOffset+aacp->writtenSamples] = inbuff[i] * SHRT_MAX; src/aacplusenc.c: if((aacp->config.nChannelsIn == 2) && src/aacplusenc.c: (aacp->config.nChannelsOut == 1) && !aacp->useParametricStereo) { src/aacplusenc.c: aacp->inBuf[i+aacp->writeOffset+aacp->writtenSamples] = (aacp->inBuf[i+aacp->writeOffset+aacp->writtenSamples] src/aacplusenc.c: + aacp->inBuf[i+aacp->writeOffset+aacp->writtenSamples+1])*0.5f; src/aacplusenc.c: aacp->writtenSamples+=samplesInput; src/aacplusenc.c: if (aacp->writtenSamples < aacp->config.inputSamples) src/aacplusenc.c: if(aacp->adts) adts_offset=ADTS_HEADER_SIZE; src/aacplusenc.c: EnvEncodeFrame( &aacp->hEnvEnc, src/aacplusenc.c: &aacp->inBuf[aacp->envReadOffset], src/aacplusenc.c: &aacp->inBuf[aacp->coreWriteOffset], src/aacplusenc.c: &aacp->numAncDataBytes, src/aacplusenc.c: aacp->ancDataBytes); src/aacplusenc.c: if (!aacp->useParametricStereo) src/aacplusenc.c: for( ch=0; chconfig.nChannelsIn; ch++ ) src/aacplusenc.c: IIR21_Downsample( &aacp->IIR21_reSampler[ch], src/aacplusenc.c: &aacp->inBuf[aacp->writeOffset+ch], src/aacplusenc.c: aacp->config.nSamplesPerFrame * 2, //aacp->writtenSamples, src/aacplusenc.c: &aacp->inBuf[ch], src/aacplusenc.c: AacEncEncode( &aacp->aacEnc, src/aacplusenc.c: aacp->inBuf, src/aacplusenc.c: aacp->useParametricStereo ? 1 : MAX_CHANNELS, /* stride (step) */ src/aacplusenc.c: aacp->ancDataBytes, src/aacplusenc.c: &aacp->numAncDataBytes, src/aacplusenc.c: if (aacp->useParametricStereo) { src/aacplusenc.c: memcpy( aacp->inBuf,&aacp->inBuf[aacp->config.nSamplesPerFrame],CORE_INPUT_OFFSET_PS*sizeof(float)); src/aacplusenc.c: memmove( aacp->inBuf,&aacp->inBuf[aacp->config.nSamplesPerFrame*2*MAX_CHANNELS], src/aacplusenc.c: aacp->writeOffset*sizeof(float)); src/aacplusenc.c: if(numOutBytes > 0 && aacp->adts) { src/aacplusenc.c: adts_hdr_up(aacp->adts, outputBuffer, numOutBytes); src/aacplusenc.c: aacp->writtenSamples=0; src/aacplusenc.c: AacEncClose(&aacp->aacEnc); src/aacplusenc.c: EnvClose(&aacp->hEnvEnc); src/aacplusenc.c: destroy_plans(&aacp->fftctx); src/aacplusenc.c: aacplusEncFreeSBRAACRam(&aacp->aacEnc); src/aacplusenc.c: if(aacp->adts) src/aacplusenc.c: free(aacp->adts);