Commit 7d49abdf authored by Claudio Freire's avatar Claudio Freire

AAC encoder: fix filling of wi.clipping array

Fill all windows in all window groups instead of only the first
window of each group.

Also avoid uninitialized access of window_type.
parent a07934d5
...@@ -685,7 +685,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel, ...@@ -685,7 +685,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
band->thr_quiet = band->thr = FFMAX(band->thr, coeffs[g].ath); band->thr_quiet = band->thr = FFMAX(band->thr, coeffs[g].ath);
//5.4.2.5 "Pre-echo control" //5.4.2.5 "Pre-echo control"
if (!(wi->window_type[0] == LONG_STOP_SEQUENCE || (wi->window_type[1] == LONG_START_SEQUENCE && !w))) if (!(wi->window_type[0] == LONG_STOP_SEQUENCE || (!w && wi->window_type[1] == LONG_START_SEQUENCE)))
band->thr = FFMAX(PSY_3GPP_RPEMIN*band->thr, FFMIN(band->thr, band->thr = FFMAX(PSY_3GPP_RPEMIN*band->thr, FFMIN(band->thr,
PSY_3GPP_RPELEV*pch->prev_band[w+g].thr_quiet)); PSY_3GPP_RPELEV*pch->prev_band[w+g].thr_quiet));
...@@ -1018,9 +1018,10 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio, ...@@ -1018,9 +1018,10 @@ static FFPsyWindowInfo psy_lame_window(FFPsyContext *ctx, const float *audio,
for (i = 0; i < 8; i += wi.grouping[i]) { for (i = 0; i < 8; i += wi.grouping[i]) {
int w; int w;
float clipping = 0.0f; float clipping = 0.0f;
for (w = 0; w < wi.grouping[i] && !clipping; w++) for (w = 0; w < wi.grouping[i]; w++)
clipping = FFMAX(clipping, clippings[i+w]); clipping = FFMAX(clipping, clippings[i+w]);
wi.clipping[i] = clipping; for (w = 0; w < wi.grouping[i]; w++)
wi.clipping[i+w] = clipping;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment