From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id B946E46FBE for ; Mon, 24 Jul 2023 18:36:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B0F8C68C7B5; Mon, 24 Jul 2023 21:35:51 +0300 (EEST) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0925668C7AA for ; Mon, 24 Jul 2023 21:35:43 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 37CD7E0002 for ; Mon, 24 Jul 2023 18:35:42 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 24 Jul 2023 20:35:35 +0200 Message-Id: <20230724183535.2677937-6-michael@niedermayer.cc> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230724183535.2677937-1-michael@niedermayer.cc> References: <20230724183535.2677937-1-michael@niedermayer.cc> MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 6/6] avradio/sdr: Add am_multiple parameter to allow restricting detected AM stations X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: Michael Niedermayer --- libavradio/sdr.h | 2 ++ libavradio/sdrdemux.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libavradio/sdr.h b/libavradio/sdr.h index a5a291ee37..6d11ef794f 100644 --- a/libavradio/sdr.h +++ b/libavradio/sdr.h @@ -212,7 +212,9 @@ typedef struct SDRContext { float am_threshold; float fm_threshold; + float am_multiple; float fm_multiple; + float am_multiple_tolerance; pthread_t hw_thread; int thread_started; diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c index 25f0012777..3b24cfedef 100644 --- a/libavradio/sdrdemux.c +++ b/libavradio/sdrdemux.c @@ -589,6 +589,7 @@ static int probe_am(SDRContext *sdr) if (max_in_range(sdr, i-half_bw_i, i-4) < mid*AM_MAX4 && max_in_range(sdr, i+4, i+half_bw_i) < mid*AM_MAX4) { double peak_i = find_peak_macleod(sdr, sdr->block, i, 2*sdr->block_size, NULL); + double f = INDEX2F(peak_i); if (peak_i < 0) continue; if (fabs(peak_i-i) > 1.0) { @@ -604,7 +605,13 @@ static int probe_am(SDRContext *sdr) } } - create_candidate_station(sdr, AM, INDEX2F(peak_i), bandwidth_f, score); + if (sdr->am_multiple) { + double f2 = lrint(f / sdr->am_multiple) * sdr->am_multiple; + if (fabs(f2 - f) > sdr->am_multiple_tolerance) + continue; + } + + create_candidate_station(sdr, AM, f, bandwidth_f, score); } } } @@ -2319,7 +2326,9 @@ const AVOption ff_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}, + { "am_multiple" , "AM frequency mutiple", OFFSET(am_multiple ), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0, FLT_MAX, DEC}, { "fm_multiple" , "FM frequency mutiple", OFFSET(fm_multiple ), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0, FLT_MAX, DEC}, + { "am_multiple_tolerance", "AM frequency mutiple tolerance", OFFSET(am_multiple_tolerance), AV_OPT_TYPE_FLOAT, {.dbl = 60}, 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".