Files
FFmpeg/libavcodec
Lynne 3a8a1a7c6a avcodec/aacpsy: fix the attack lookback
This fixes a 15+ year old bug.

The novelty check read its previous-frame envelope from
prev_energy_subshort after the sub-block loop had already overwritten
it with current-frame values, so early sub-blocks were compared
against the frame's own future instead of the past. That accident
suppressed short-period pitch trains well enough, but also suppressed
genuine onsets, and could not see pulse periods beyond ~12ms at all:
on quiet slow pulse trains (engine-idle buzz and the like) the ratio
test leaks sporadic isolated short excursions, each an audible click -
reported against this encoder since 2015, at every bitrate, and
immune to disabling every coding tool.

Keep a rolling two-frame history of HP sub-block peaks instead and
require an attack to tower over it: within ~12ms unconditionally
(pitch-rate trains), and within ~44ms when coming from steady
long-window state (slow trains, where an isolated short excursion can
only click). Dense irregular transients tower locally and reset
frames_since_short, so their block switching is untouched.
2026-07-19 23:50:55 +08:00
..
2026-06-17 17:34:24 +09:00
…
…
…
2026-07-16 11:17:00 +02:00
…
…
…
…
…
2026-07-01 21:05:27 +09:00
2026-07-01 21:05:27 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-04-28 14:31:19 +02:00
…
…
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-03 16:56:43 +02:00
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-03 14:12:50 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
2026-05-03 18:23:03 +02:00
…
…
…
…
2026-07-07 17:35:58 +00:00
2026-07-07 17:35:58 +00:00
…
…
…
…
…
…
…
…
…
…
2026-06-13 15:55:40 +00:00
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-02 21:39:02 +00:00
…
…
…
…
…
…
…
…
…
…
2026-06-23 17:15:02 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-07-01 21:05:27 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
…
…
…
…
…
…
…
2026-05-03 18:22:24 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-03 18:22:18 +02:00
…
…
…
…
…
…
2026-05-03 18:22:13 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:18 +01:00
…
…
…
2026-06-23 19:15:57 +02:00
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
2026-06-23 19:13:06 +02:00
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-16 10:24:33 +00:00
…
…
…
…
…
…
…