Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: [FFmpeg-devel] [PATCH 06/14] avradio/sdrdemux: do not hack bandwidth value in random places
Date: Tue, 18 Jul 2023 23:45:34 +0200
Message-ID: <20230718214542.685375-6-michael@niedermayer.cc> (raw)
In-Reply-To: <20230718214542.685375-1-michael@niedermayer.cc>

Instead do a basic check for totally invalid values during setup
and warn the user for things that are still suspicious

Bounding the value in the middle of the code would lead to
growing complexity to consider that.
Instead the code assumes now the value is correct after setup

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavradio/sdrdemux.c   | 5 ++++-
 libavradio/sdrinradio.c | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index 07b43dec1c..c284f7d8d8 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -863,7 +863,7 @@ static int probe_fm(SDRContext *sdr)
     int half_bw_i = 200*1000 * (int64_t)sdr->block_size / sdr->sdr_sample_rate;
     int floor_bw_i = 10*1000 * (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 - FFMIN(sdr->bandwidth, sdr->sdr_sample_rate*7/8)) * sdr->block_size / sdr->sdr_sample_rate;
+    int border_i = (sdr->sdr_sample_rate - sdr->bandwidth) * sdr->block_size / sdr->sdr_sample_rate;
 
     if (2*half_bw_i > 2*sdr->block_size)
         return 0;
@@ -1516,6 +1516,9 @@ int ff_sdr_common_init(AVFormatContext *s)
     sdr->avfmt = s;
     s->ctx_flags |= AVFMTCTX_NOHEADER;
 
+    if (sdr->bandwidth > sdr->sdr_sample_rate * 7 / 8)
+        av_log(s, AV_LOG_WARNING, "Bandwidth looks suspicious\n");
+
     if (sdr->width>1 && sdr->height>1) {
         /* video stream */
         st = avformat_new_stream(s, NULL);
diff --git a/libavradio/sdrinradio.c b/libavradio/sdrinradio.c
index f824a1d190..d569842a9c 100644
--- a/libavradio/sdrinradio.c
+++ b/libavradio/sdrinradio.c
@@ -379,7 +379,7 @@ static int sdrindev_initial_hw_setup(AVFormatContext *s)
     sdr->bandwidth = SoapySDRDevice_getBandwidth(soapy, SOAPY_SDR_RX, 0);
 
     // rtlsdr doesnt return a valid value
-    if (!sdr->bandwidth)
+    if (!sdr->bandwidth || sdr->bandwidth >= sdr->sdr_sample_rate)
         sdr->bandwidth = sdr->sdr_sample_rate * 4 / 5;
     av_log(s, AV_LOG_INFO, "bandwidth %"PRId64"\n", sdr->bandwidth);
 
-- 
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-request@ffmpeg.org with subject "unsubscribe".

  parent reply	other threads:[~2023-07-18 21:46 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-18 21:45 [FFmpeg-devel] [PATCH 01/14] avradio/sdrdemux: Add Mittelwelle / Mediumwave / Mediumfrequency band Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 02/14] avradio/sdrdemux: Fix corner case in snap2band Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 03/14] avradio/sdrdemux: Fix seeking to stations at the edge of the range Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 04/14] avradio/sdrdemux: snap2station() should look only at the vissible window Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 05/14] avradio/sdr: snap2station() documentation Michael Niedermayer
2023-07-18 21:45 ` Michael Niedermayer [this message]
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 07/14] avradio/sdrdemux: snap2station consider more distant stations Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 08/14] tests: Add avradio/sdrdemux tests Michael Niedermayer
2023-07-21 18:42   ` Michael Niedermayer
2023-07-21 23:51     ` Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 09/14] avradio/sdr: Remove code setting frequency from variable being 0 Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 10/14] avradio/sdrdemux: no need to set wanted_freq from sdrfile_initial_setup() Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 11/14] avradio/sdr: More atomics, less Mutexes Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 12/14] avradio/sdrdemux: + vs. - bug Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 13/14] avradio/sdrdemux: snap2band doesnt change anything so use const Michael Niedermayer
2023-07-18 21:45 ` [FFmpeg-devel] [PATCH 14/14] avradio/sdrdemux: Fix wraparound with seeking Michael Niedermayer
2023-07-22 13:30 ` [FFmpeg-devel] [PATCH 01/14] avradio/sdrdemux: Add Mittelwelle / Mediumwave / Mediumfrequency band Michael Niedermayer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230718214542.685375-6-michael@niedermayer.cc \
    --to=michael@niedermayer.cc \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git