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 03/18] avradio/sdr: Add fm multiple parameter
Date: Sat,  8 Jul 2023 23:25:15 +0200
Message-ID: <20230708212530.109692-3-michael@niedermayer.cc> (raw)
In-Reply-To: <20230708212530.109692-1-michael@niedermayer.cc>

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 doc/demuxers.texi     | 7 +++++++
 libavradio/sdr.h      | 1 +
 libavradio/sdrdemux.c | 9 +++++++++
 3 files changed, 17 insertions(+)

diff --git a/doc/demuxers.texi b/doc/demuxers.texi
index 81c46ce08f..86f031b9ed 100644
--- a/doc/demuxers.texi
+++ b/doc/demuxers.texi
@@ -965,6 +965,13 @@ it can also result in the detection of SDR artifacts such as reflections of stro
 as weak stations. Future versions may be better able to separate weak stations from artifacts
 looking like weak stations.
 
+@item fm_multiple
+Multiple of frequency in hz at which to search for stations.
+you can set this to 100000 to probe stations at 0.1MHz increments
+Most SDR artifacts are not at exact multiplies, this is thus an effective
+way to eliminate these artifacts.
+disabled by default.
+
 @item am_mode
 AM Demodulation method. Several different methods are supported.
 @table @samp
diff --git a/libavradio/sdr.h b/libavradio/sdr.h
index 1053e45efe..ff4bfcaa1f 100644
--- a/libavradio/sdr.h
+++ b/libavradio/sdr.h
@@ -159,6 +159,7 @@ typedef struct SDRContext {
 
     float am_threshold;
     float fm_threshold;
+    float fm_multiple;
 
     pthread_t hw_thread;
     int thread_started;
diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index 1f2d778978..13cec10505 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -915,6 +915,14 @@ static int probe_fm(SDRContext *sdr)
 
                     if (fabs(f2 - f) > 1000)
                         continue;
+
+                    if (sdr->fm_multiple) {
+                        double f3 = lrint(f2 / sdr->fm_multiple) * sdr->fm_multiple;
+                        if (fabs(f2 - f3) > FM_FREQ_TOLERANCE)
+                            continue;
+                        f2 = f3;
+                    }
+
                     create_candidate_station(sdr, FM, f2, bandwidth_f, bandwidth_p2, score);
                 }
             }
@@ -2169,6 +2177,7 @@ const AVOption avpriv_sdr_options[] = {
 
     { "am_threshold"     , "AM detection threshold", OFFSET(am_threshold), AV_OPT_TYPE_FLOAT, {.dbl = 20}, 0, FLT_MAX, DEC},
     { "fm_threshold"     , "FM detection threshold", OFFSET(fm_threshold), AV_OPT_TYPE_FLOAT, {.dbl = 50}, 0, FLT_MAX, DEC},
+    { "fm_multiple"      , "FM frequency mutiple",   OFFSET(fm_multiple ), AV_OPT_TYPE_FLOAT, {.dbl =  0}, 0, FLT_MAX, DEC},
 
     { NULL },
 };
-- 
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-08 21:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-08 21:25 [FFmpeg-devel] [PATCH 01/18] avradio/sdrdemux: Fix uninitialized access Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 02/18] avradio/sdrdemux: factor frequency tolerance constants out Michael Niedermayer
2023-07-08 21:25 ` Michael Niedermayer [this message]
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 04/18] avradio/sdrinradio: Dont automatically select 2.56Mhz on the rtlsdr Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 05/18] avradio/sdrdemux: Do not timeout negative stations Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 06/18] avradio/sdrinradio: Factor print_and_free_list() out Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 07/18] avradio/sdrinradio: Print list of Time Sources Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 08/18] avradio: split out vissualization code Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 09/18] avradio/sdrdemux: The RTLSDR DC artifact is not consistent Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 10/18] avradio/sdr: eliminate avpriv_* Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 11/18] avradio/vissualize: rotate waterfall Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 12/18] avradio/sdrdemux: Set AVFMTCTX_NOHEADER Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 13/18] avradio/sdrdemux: fix bug adding candidate stations and then crashing Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 14/18] avradio/sdrdemux: fm_probe: dont allow bandwidh=sample rate Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 15/18] doc: add sdr examples Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 16/18] avradio/sdr: rename fft_p2 Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 17/18] avradio/sdrdemux: more correct phase 2 bandwidth of FM demodulation Michael Niedermayer
2023-07-08 21:25 ` [FFmpeg-devel] [PATCH 18/18] avradio/sdrdemux: Fix DC offset issue in AM demodulation Michael Niedermayer
2023-07-09 23:43 ` [FFmpeg-devel] [PATCH 01/18] avradio/sdrdemux: Fix uninitialized access 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=20230708212530.109692-3-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