mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-12 10:15:22 +00:00
aacenc: Fix the conditions under which 3GPP pre-echo control is run.
According to the 3GPP spec: "Thus the pre-echo control is inactive for the first short window (but not all short windows in a short frame) after a start block and for all frames with a stop window sequence." Currently, pre-echo control is only run when the current frame is not a short frame, and the previous frame is not a short frame. patch by Nathan Caldwell saintdev (at) gmail Originally committed as revision 25587 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
042ca05f0f
commit
eafadadaf5
@ -420,7 +420,7 @@ static void psy_3gpp_analyze(FFPsyContext *ctx, int channel,
|
|||||||
band[g].thr = FFMAX(band[g].thr, band[g+1].thr * coeffs->spread_hi [g]);
|
band[g].thr = FFMAX(band[g].thr, band[g+1].thr * coeffs->spread_hi [g]);
|
||||||
for (g = 0; g < num_bands; g++) {
|
for (g = 0; g < num_bands; g++) {
|
||||||
band[g].thr_quiet = FFMAX(band[g].thr, coeffs->ath[g]);
|
band[g].thr_quiet = FFMAX(band[g].thr, coeffs->ath[g]);
|
||||||
if (wi->num_windows != 8 && wi->window_type[1] != EIGHT_SHORT_SEQUENCE)
|
if (!(wi->window_type[0] == LONG_STOP_SEQUENCE || (wi->window_type[1] == LONG_START_SEQUENCE && !w)))
|
||||||
band[g].thr_quiet = FFMAX(PSY_3GPP_RPEMIN*band[g].thr_quiet,
|
band[g].thr_quiet = FFMAX(PSY_3GPP_RPEMIN*band[g].thr_quiet,
|
||||||
FFMIN(band[g].thr_quiet,
|
FFMIN(band[g].thr_quiet,
|
||||||
PSY_3GPP_RPELEV*pch->prev_band[w+g].thr_quiet));
|
PSY_3GPP_RPELEV*pch->prev_band[w+g].thr_quiet));
|
||||||
|
Loading…
Reference in New Issue
Block a user