From 9be52e5dd8d5b4ae56dfd68430191c818f646beb Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Thu, 16 Jun 2022 03:12:44 +0200 Subject: ad_lavc: strip non-normalized floats `opus` codec likes returning denormalized floats in some cases, causing wacky issues. Fixes #10290 --- audio/decode/ad_lavc.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'audio/decode/ad_lavc.c') diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c index 34c3a183eb..6ae7d80bf5 100644 --- a/audio/decode/ad_lavc.c +++ b/audio/decode/ad_lavc.c @@ -260,6 +260,9 @@ static int receive_frame(struct mp_filter *da, struct mp_frame *out) priv->trim_samples -= trim; } + // Strip possibly bogus float values like Infinity, NaN, denormalized + mp_aframe_sanitize_float(mpframe); + if (mp_aframe_get_size(mpframe) > 0) { *out = MAKE_FRAME(MP_FRAME_AUDIO, mpframe); } else { -- cgit v1.2.3