From 43a4771cd06600fa95dbea7ddc8774537d537771 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 14 Mar 2026 20:29:36 +0100 Subject: [PATCH] opus/dec_celt: avoid emph_coeff becoming a subnormal This happens for silence frames, which on many CPUs massively slows down processing the decoded output. Cf. https://github.com/Genymobile/scrcpy/issues/6715 (cherry picked from commit 5b112b17c009b57a0063ca965dd49dc7e018d771) --- libavcodec/opus/dec_celt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/opus/dec_celt.c b/libavcodec/opus/dec_celt.c index 3feb4a4e47..a43d63d9db 100644 --- a/libavcodec/opus/dec_celt.c +++ b/libavcodec/opus/dec_celt.c @@ -463,6 +463,8 @@ int ff_celt_decode_frame(CeltFrame *f, OpusRangeCoder *rc, block->emph_coeff, ff_opus_deemph_weights, frame_size); + if (!isnormal(block->emph_coeff)) + block->emph_coeff = 0.0; } if (channels == 1)