mirror of https://git.ffmpeg.org/ffmpeg.git
aacdec_usac: always zero out alpha_q values for stereo streams
The issue is that if a frame has no complex stereo prediction, the alpha values must all be assumed to be zero if the next frame has complex prediction and uses delta coding.
This commit is contained in:
parent
d79fbad366
commit
bdd3c6ca50
|
@ -690,10 +690,6 @@ static int decode_usac_stereo_cplx(AACDecContext *ac, AACUsacStereo *us,
|
|||
if (!indep_flag)
|
||||
delta_code_time = get_bits1(gb);
|
||||
|
||||
/* Alpha values must be zeroed out if pred_used is 0. */
|
||||
memset(us->alpha_q_re, 0, sizeof(us->alpha_q_re));
|
||||
memset(us->alpha_q_im, 0, sizeof(us->alpha_q_im));
|
||||
|
||||
/* TODO: shouldn't be needed */
|
||||
for (int g = 0; g < num_window_groups; g++) {
|
||||
for (int sfb = 0; sfb < cpe->max_sfb_ste; sfb += SFB_PER_PRED_BAND) {
|
||||
|
@ -828,6 +824,11 @@ static int decode_usac_stereo_info(AACDecContext *ac, AACUSACConfig *usac,
|
|||
us->common_window = 0;
|
||||
us->common_tw = 0;
|
||||
|
||||
/* Alpha values must always be zeroed out for the current frame,
|
||||
* as they are propagated to the next frame and may be used. */
|
||||
memset(us->alpha_q_re, 0, sizeof(us->alpha_q_re));
|
||||
memset(us->alpha_q_im, 0, sizeof(us->alpha_q_im));
|
||||
|
||||
if (!(!ue1->core_mode && !ue2->core_mode))
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue