diff mbox series

[FFmpeg-devel,03/14] avradio/sdrdemux: Fix seeking to stations at the edge of the range

Message ID 20230718214542.685375-3-michael@niedermayer.cc
State New
Headers show
Series [FFmpeg-devel,01/14] avradio/sdrdemux: Add Mittelwelle / Mediumwave / Mediumfrequency band | expand

Checks

Context Check Description
andriy/configure_x86 warning Failed to apply patch
yinshiyou/configure_loongarch64 warning Failed to apply patch

Commit Message

Michael Niedermayer July 18, 2023, 9:45 p.m. UTC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavradio/sdrdemux.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index 6b1553b130..ca0a9c5cf9 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -1322,6 +1322,7 @@  static int snap2station(SDRContext *sdr, int *seek_direction) {
     av_assert0(!best_station || best_station != sst->station);
 
     if (best_station) {
+        int64_t wanted_freq = av_clip64(lrint(best_station->frequency + 213*1000), sdr->min_center_freq, sdr->max_center_freq); // We target a bit off teh exact frequency to avoid artifacts
         int ret = setup_stream(sdr, sdr->single_ch_audio_st_index, best_station);
         if (ret < 0) {
             av_log(avfmt, AV_LOG_DEBUG, "setup_stream failed\n");
@@ -1331,7 +1332,7 @@  static int snap2station(SDRContext *sdr, int *seek_direction) {
         pthread_mutex_lock(&sdr->mutex);
         *seek_direction     =
         sdr->seek_direction = 0;
-        sdr->wanted_freq = lrint(best_station->frequency + 213*1000); // We target a bit off teh exact frequency to avoid artifacts
+        sdr->wanted_freq = wanted_freq;
         //200*1000 had artifacts
 
         av_log(avfmt, AV_LOG_DEBUG, "request f = %"PRId64"\n", sdr->wanted_freq);