From: Michael Niedermayer <michael@niedermayer.cc> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: [FFmpeg-devel] [PATCH 4/6] avradio/sdrdemux: Skiping detection of AM stations at DC point Date: Mon, 24 Jul 2023 20:35:33 +0200 Message-ID: <20230724183535.2677937-4-michael@niedermayer.cc> (raw) In-Reply-To: <20230724183535.2677937-1-michael@niedermayer.cc> Also use this to detect a DC offset instead of the driver Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavradio/sdr.h | 1 + libavradio/sdrdemux.c | 11 ++++++++++- tests/ref/fate/sdr-am | 38 +++++++++++++++----------------------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/libavradio/sdr.h b/libavradio/sdr.h index 7d7bfd6806..a5a291ee37 100644 --- a/libavradio/sdr.h +++ b/libavradio/sdr.h @@ -260,6 +260,7 @@ typedef struct SDRContext { int rtlsdr_fixes; int sdrplay_fixes; + int dc_fix; } SDRContext; typedef struct ModulationDescriptor { diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c index 123a1a9d0f..25f0012777 100644 --- a/libavradio/sdrdemux.c +++ b/libavradio/sdrdemux.c @@ -596,6 +596,14 @@ static int probe_am(SDRContext *sdr) continue; } + if (i == sdr->block_size) { + if (sdr->dc_fix < 0) { + sdr->dc_fix = 1; + av_log(sdr->avfmt, AV_LOG_INFO, "Skiping AM station detection at DC point and enabling DC correction\n"); + continue; + } + } + create_candidate_station(sdr, AM, INDEX2F(peak_i), bandwidth_f, score); } } @@ -1931,7 +1939,7 @@ process_next_block: if (sdr->sample_size == 2) { const int8_t *halfblock0 = fifo_element[0].halfblock; const int8_t *halfblock1 = fifo_element[1].halfblock; - if (sdr->rtlsdr_fixes>0) { + if (sdr->dc_fix>0) { int sum = 0; float offset; for (i = 0; i<2*sdr->block_size; i++) @@ -2274,6 +2282,7 @@ const AVOption ff_sdr_options[] = { { "driver" , "sdr driver name" , OFFSET(driver_name), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC}, { "rtlsdr_fixes" , "workaround rtlsdr issues", OFFSET(rtlsdr_fixes), AV_OPT_TYPE_INT , {.i64 = -1}, -1, 1, DEC}, { "sdrplay_fixes" , "workaround sdrplay issues", OFFSET(sdrplay_fixes), AV_OPT_TYPE_INT , {.i64 = -1}, -1, 1, DEC}, + { "dc_fix" , "Apply DC correction", OFFSET(dc_fix), AV_OPT_TYPE_INT , {.i64 = -1}, -1, 1, DEC}, { "sdr_sr" , "sdr sample rate" , OFFSET(sdr_sample_rate ), AV_OPT_TYPE_INT , {.i64 = 0}, 0, INT_MAX, DEC}, { "sdr_freq", "sdr frequency" , OFFSET(user_wanted_freq), AV_OPT_TYPE_INT64 , {.i64 = 9000000}, 0, INT64_MAX, DEC}, { "gain" , "sdr overall gain", OFFSET(sdr_gain), AV_OPT_TYPE_INT , {.i64 = GAIN_SDR_AGC}, -3, INT_MAX, DEC, "gain"}, diff --git a/tests/ref/fate/sdr-am b/tests/ref/fate/sdr-am index b8a34ee488..e2ae353902 100644 --- a/tests/ref/fate/sdr-am +++ b/tests/ref/fate/sdr-am @@ -28,28 +28,20 @@ #codec_id 5: pcm_u8 #sample_rate 5: 16000 #channel_layout_name 5: stereo -#tb 6: 1/16000 -#media_type 6: audio -#codec_id 6: pcm_u8 -#sample_rate 6: 16000 -#channel_layout_name 6: stereo 0, 0, 0, 1, 320000, 0x816a0964 0, 1, 1, 1, 320000, 0x140ce2da -1, 2048, 2048, 1024, 2048, 0x2276fdd1 -2, 2048, 2048, 1024, 2048, 0x4d31ff0f -3, 2048, 2048, 1024, 2048, 0x3cd002ad -4, 2048, 2048, 1024, 2048, 0x8bdd034d -5, 2048, 2048, 1024, 2048, 0xc6430169 -1, 3072, 3072, 1024, 2048, 0xa0810031 -2, 3072, 3072, 1024, 2048, 0xb307000d -3, 3072, 3072, 1024, 2048, 0x3f6d01d4 -4, 3072, 3072, 1024, 2048, 0x2de9fde9 -5, 3072, 3072, 1024, 2048, 0xad7efe6f -6, 3072, 3072, 1024, 2048, 0x9c840168 -1, 4096, 4096, 1024, 2048, 0x61a50250 -2, 4096, 4096, 1024, 2048, 0x7e7cfe03 -3, 4096, 4096, 1024, 2048, 0x6561fc7b -4, 4096, 4096, 1024, 2048, 0xdcd6ff8d -5, 4096, 4096, 1024, 2048, 0xedac0493 -6, 4096, 4096, 1024, 2048, 0x970a0066 -0, 3, 3, 1, 320000, 0x9fb0c309 +1, 2048, 2048, 1024, 2048, 0x4d31ff0f +2, 2048, 2048, 1024, 2048, 0x3cd002ad +3, 2048, 2048, 1024, 2048, 0x8bdd034d +4, 2048, 2048, 1024, 2048, 0xc6430169 +1, 3072, 3072, 1024, 2048, 0xb307000d +2, 3072, 3072, 1024, 2048, 0x3f6d01d4 +3, 3072, 3072, 1024, 2048, 0x2de9fde9 +4, 3072, 3072, 1024, 2048, 0xad7efe6f +5, 3072, 3072, 1024, 2048, 0x9c840168 +1, 4096, 4096, 1024, 2048, 0x7e7cfe03 +2, 4096, 4096, 1024, 2048, 0x6561fc7b +3, 4096, 4096, 1024, 2048, 0xdcd6ff8d +4, 4096, 4096, 1024, 2048, 0xedac0493 +5, 4096, 4096, 1024, 2048, 0x970a0066 +0, 3, 3, 1, 320000, 0x6ea8fa49 -- 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".
next prev parent reply other threads:[~2023-07-24 18:36 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-07-24 18:35 [FFmpeg-devel] [PATCH 1/6] avradio/sdrinradio: Check tuner before applying rtlsdr frequency correction Michael Niedermayer 2023-07-24 18:35 ` [FFmpeg-devel] [PATCH 2/6] avradio/sdr: Factor bug workaround detection code out Michael Niedermayer 2023-07-24 18:35 ` [FFmpeg-devel] [PATCH 3/6] avradio/sdrdemux: Call ff_sdr_autodetect_workarounds() from common init Michael Niedermayer 2023-07-24 18:35 ` Michael Niedermayer [this message] 2023-07-24 18:35 ` [FFmpeg-devel] [PATCH 5/6] avradio/sdrinradio: apply R820T correction only for non direct mode Michael Niedermayer 2023-07-24 18:35 ` [FFmpeg-devel] [PATCH 6/6] avradio/sdr: Add am_multiple parameter to allow restricting detected AM stations Michael Niedermayer 2023-07-27 20:18 ` [FFmpeg-devel] [PATCH 1/6] avradio/sdrinradio: Check tuner before applying rtlsdr frequency correction 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=20230724183535.2677937-4-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