diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index e230c877334f6553f2417f7c27c466326b325982..d980ae0e225b8e28940f58c4cb5355a5faca9d2f 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -134,7 +134,7 @@ static av_cold int che_configure(AACContext *ac, if (!ac->che[type][id]) { if (!(ac->che[type][id] = av_mallocz(sizeof(ChannelElement)))) return AVERROR(ENOMEM); - AAC_RENAME(ff_aac_sbr_ctx_init)(ac, &ac->che[type][id]->sbr); + AAC_RENAME(ff_aac_sbr_ctx_init)(ac, &ac->che[type][id]->sbr, type); } if (type != TYPE_CCE) { if (*channels >= MAX_CHANNELS - (type == TYPE_CPE || (type == TYPE_SCE && ac->oc[1].m4ac.ps == 1))) { diff --git a/libavcodec/aacsbr.h b/libavcodec/aacsbr.h index 88c4d8a916de803f68d6782f8b8fa5d32e51af26..dd8b66c7bbc874439703701e0d3efb54a36ae3ca 100644 --- a/libavcodec/aacsbr.h +++ b/libavcodec/aacsbr.h @@ -81,7 +81,7 @@ static const int8_t vlc_sbr_lav[10] = /** Initialize SBR. */ void AAC_RENAME(ff_aac_sbr_init)(void); /** Initialize one SBR context. */ -void AAC_RENAME(ff_aac_sbr_ctx_init)(AACContext *ac, SpectralBandReplication *sbr); +void AAC_RENAME(ff_aac_sbr_ctx_init)(AACContext *ac, SpectralBandReplication *sbr, int id_aac); /** Close one SBR context. */ void AAC_RENAME(ff_aac_sbr_ctx_close)(SpectralBandReplication *sbr); /** Decode one SBR element. */ diff --git a/libavcodec/aacsbr_template.c b/libavcodec/aacsbr_template.c index 511054276a789a331c4e2f2251e5f3bbe027d700..f8aa4854dfcc688f3b48535ee49f07fc37b1c2ad 100644 --- a/libavcodec/aacsbr_template.c +++ b/libavcodec/aacsbr_template.c @@ -81,11 +81,12 @@ static void sbr_turnoff(SpectralBandReplication *sbr) { memset(&sbr->spectrum_params, -1, sizeof(SpectrumParameters)); } -av_cold void AAC_RENAME(ff_aac_sbr_ctx_init)(AACContext *ac, SpectralBandReplication *sbr) +av_cold void AAC_RENAME(ff_aac_sbr_ctx_init)(AACContext *ac, SpectralBandReplication *sbr, int id_aac) { if(sbr->mdct.mdct_bits) return; sbr->kx[0] = sbr->kx[1]; + sbr->id_aac = id_aac; sbr_turnoff(sbr); sbr->data[0].synthesis_filterbank_samples_offset = SBR_SYNTHESIS_BUF_SIZE - (1280 - 128); sbr->data[1].synthesis_filterbank_samples_offset = SBR_SYNTHESIS_BUF_SIZE - (1280 - 128);