X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Faacsbr.c;h=4d2ac6cbd26469e4d6f2fd2cbaa85ecc25f94ae4;hb=65b8b6c476454d201348737527a1d9471f689278;hp=de63b8025d4724f33135edd0cdec94c609fe894f;hpb=63d744e2be39466e3a734c2987cd713e0bac101e;p=ffmpeg diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c index de63b8025d4..4d2ac6cbd26 100644 --- a/libavcodec/aacsbr.c +++ b/libavcodec/aacsbr.c @@ -919,6 +919,7 @@ static void read_sbr_extension(AACContext *ac, SpectralBandReplication *sbr, } else { #if 1 *num_bits_left -= ff_ps_read_data(ac->avctx, gb, &sbr->ps, *num_bits_left); + ac->avctx->profile = FF_PROFILE_AAC_HE_V2; #else avpriv_report_missing_feature(ac->avctx, "Parametric Stereo"); skip_bits_long(gb, *num_bits_left); // bs_fill_bits @@ -927,7 +928,7 @@ static void read_sbr_extension(AACContext *ac, SpectralBandReplication *sbr, } break; default: - av_log_missing_feature(ac->avctx, "Reserved SBR extensions", 1); + avpriv_request_sample(ac->avctx, "Reserved SBR extensions"); skip_bits_long(gb, *num_bits_left); // bs_fill_bits *num_bits_left = 0; break; @@ -1667,12 +1668,18 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac, sbr_qmf_analysis(&ac->fdsp, &sbr->mdct_ana, &sbr->dsp, ch ? R : L, sbr->data[ch].analysis_filterbank_samples, (float*)sbr->qmf_filter_scratch, sbr->data[ch].W, sbr->data[ch].Ypos); - sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W, sbr->data[ch].Ypos); + sbr_lf_gen(ac, sbr, sbr->X_low, + (const float (*)[32][32][2]) sbr->data[ch].W, + sbr->data[ch].Ypos); sbr->data[ch].Ypos ^= 1; if (sbr->start) { - sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]); + sbr_hf_inverse_filter(&sbr->dsp, sbr->alpha0, sbr->alpha1, + (const float (*)[40][2]) sbr->X_low, sbr->k[0]); sbr_chirp(sbr, &sbr->data[ch]); - sbr_hf_gen(ac, sbr, sbr->X_high, sbr->X_low, sbr->alpha0, sbr->alpha1, + sbr_hf_gen(ac, sbr, sbr->X_high, + (const float (*)[40][2]) sbr->X_low, + (const float (*)[2]) sbr->alpha0, + (const float (*)[2]) sbr->alpha1, sbr->data[ch].bw_array, sbr->data[ch].t_env, sbr->data[ch].bs_num_env); @@ -1682,16 +1689,17 @@ void ff_sbr_apply(AACContext *ac, SpectralBandReplication *sbr, int id_aac, sbr_env_estimate(sbr->e_curr, sbr->X_high, sbr, &sbr->data[ch]); sbr_gain_calc(ac, sbr, &sbr->data[ch], sbr->data[ch].e_a); sbr_hf_assemble(sbr->data[ch].Y[sbr->data[ch].Ypos], - sbr->X_high, sbr, &sbr->data[ch], + (const float (*)[40][2]) sbr->X_high, + sbr, &sbr->data[ch], sbr->data[ch].e_a); } } /* synthesis */ sbr_x_gen(sbr, sbr->X[ch], - sbr->data[ch].Y[1-sbr->data[ch].Ypos], - sbr->data[ch].Y[ sbr->data[ch].Ypos], - sbr->X_low, ch); + (const float (*)[64][2]) sbr->data[ch].Y[1-sbr->data[ch].Ypos], + (const float (*)[64][2]) sbr->data[ch].Y[ sbr->data[ch].Ypos], + (const float (*)[40][2]) sbr->X_low, ch); } if (ac->oc[1].m4ac.ps == 1) {