if bandwidth is set incorrectly the noise floor can be very wrong, which
causes issues as the threshold is based on the noise floor

Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
---
 libavradio/sdrdemux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index 5300311c3a..b51fa4296a 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -843,7 +843,7 @@ static int probe_fm(SDRContext *sdr)
     int bandwidth_p2 =  38*1000; //phase 2 bandwidth
     int half_bw_i = bandwidth_f * (int64_t)sdr->block_size / 
sdr->sdr_sample_rate;
     float last_score[3] = {FLT_MAX, FLT_MAX, FLT_MAX};
-    int border_i = (sdr->sdr_sample_rate - sdr->bandwidth) * sdr->block_size / 
sdr->sdr_sample_rate;
+    int border_i = (sdr->sdr_sample_rate - FFMIN(sdr->bandwidth, 
sdr->sdr_sample_rate*7/8)) * sdr->block_size / sdr->sdr_sample_rate;
     double noise_floor = FLT_MAX;
 
     if (2*half_bw_i > 2*sdr->block_size)
-- 
2.31.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to