[FFmpeg-cvslog] [ffmpeg-radio] 10/13: avradio/avformat/sdrdemux: fix off by 2 FM bandwidth error
Michael Niedermayer
ffmpeg-git at ffmpeg.org
Sat Sep 16 21:38:26 EEST 2023
This is an automated email from the git hooks/post-receive script.
Git pushed a commit to branch master
in repository libavradio.
commit 8c02929e998bf6ee2cca84cd75e331ad2a20a0fb
Author: Michael Niedermayer <michael at niedermayer.cc>
AuthorDate: Sat Jul 29 21:07:07 2023 +0200
Commit: Michael Niedermayer <michael at niedermayer.cc>
CommitDate: Sun Jul 30 23:11:56 2023 +0200
avradio/avformat/sdrdemux: fix off by 2 FM bandwidth error
Also adjust related parameters
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavformat/sdrdemux.c | 8 ++++----
tests/ref/fate/sdr-am | 25 ++++++++++++-------------
tests/ref/fate/sdr-fm | 14 +++++++-------
3 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/libavformat/sdrdemux.c b/libavformat/sdrdemux.c
index 0e327f4860..a40346ff31 100644
--- a/libavformat/sdrdemux.c
+++ b/libavformat/sdrdemux.c
@@ -704,7 +704,7 @@ static int demodulate_am(SDRContext *sdr, Station *station, AVStream *st, AVPack
double freq = station->frequency;
int64_t bandwidth = station->bandwidth;
int index = lrint(F2INDEX(freq));
- int len = (bandwidth * 2ll * sdr->block_size + sdr->sdr_sample_rate/2) / sdr->sdr_sample_rate;
+ int len = (bandwidth * 1ll * sdr->block_size + sdr->sdr_sample_rate/2) / sdr->sdr_sample_rate;
float *newbuf;
float scale;
int sample_rate = sdr->sdr_sample_rate * (int64_t)sdr->am_block_size / sdr->block_size;
@@ -1030,7 +1030,7 @@ static int demodulate_fm(SDRContext *sdr, Station *station, AVStream *st, AVPack
double freq = station->frequency;
int64_t bandwidth = station->bandwidth;
int index = lrint(F2INDEX(freq));
- int len = (bandwidth * 2ll * sdr->block_size + sdr->sdr_sample_rate/2) / sdr->sdr_sample_rate;
+ int len = (bandwidth * 1ll * sdr->block_size + sdr->sdr_sample_rate/2) / sdr->sdr_sample_rate;
float *newbuf;
float scale;
int sample_rate = sdr->sdr_sample_rate * (int64_t)sdr->fm_block_size / sdr->block_size;
@@ -1687,11 +1687,11 @@ int avpriv_sdr_common_init(AVFormatContext *s)
av_log(s, AV_LOG_INFO, "Block size %d\n", sdr->block_size);
sdr->block_time = sdr->block_size / (double)sdr->sdr_sample_rate;
- sdr->am_bandwidth = 6 * 1000;
+ sdr->am_bandwidth = 12 * 1000;
sdr->fm_bandwidth = 180 * 1000;
sdr->fm_bandwidth_p2 = 16.5 * 1000; // Officially Stereo Broadcast FM has 15khz audio bandwidth
- sdr->am_block_size = find_block_size(sdr, sdr->am_bandwidth);
+ sdr->am_block_size = find_block_size(sdr, sdr->am_bandwidth / 2);
sdr->fm_block_size = find_block_size(sdr, sdr->fm_bandwidth);
sdr->fm_block_size_p2 = find_block_size(sdr, sdr->fm_bandwidth_p2);
diff --git a/tests/ref/fate/sdr-am b/tests/ref/fate/sdr-am
index e2ae353902..992ec1936d 100644
--- a/tests/ref/fate/sdr-am
+++ b/tests/ref/fate/sdr-am
@@ -30,18 +30,17 @@
#channel_layout_name 5: stereo
0, 0, 0, 1, 320000, 0x816a0964
0, 1, 1, 1, 320000, 0x140ce2da
-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
+1, 2048, 2048, 1024, 2048, 0x3cd002ad
+2, 2048, 2048, 1024, 2048, 0x8bdd034d
+3, 2048, 2048, 1024, 2048, 0xc6430169
+1, 3072, 3072, 1024, 2048, 0x3f6d01d4
+2, 3072, 3072, 1024, 2048, 0x2de9fde9
+3, 3072, 3072, 1024, 2048, 0xad7efe6f
+4, 3072, 3072, 1024, 2048, 0x2c18fef7
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
+1, 4096, 4096, 1024, 2048, 0x6561fc7b
+2, 4096, 4096, 1024, 2048, 0xdcd6ff8d
+3, 4096, 4096, 1024, 2048, 0xedac0493
+4, 4096, 4096, 1024, 2048, 0x7e7cfe03
5, 4096, 4096, 1024, 2048, 0x970a0066
-0, 3, 3, 1, 320000, 0x6ea8fa49
+0, 3, 3, 1, 320000, 0x76d901a2
diff --git a/tests/ref/fate/sdr-fm b/tests/ref/fate/sdr-fm
index 3ae5adc2c0..97a2320a2a 100644
--- a/tests/ref/fate/sdr-fm
+++ b/tests/ref/fate/sdr-fm
@@ -15,11 +15,11 @@
#channel_layout_name 2: stereo
0, 0, 0, 1, 320000, 0xf553af75
0, 1, 1, 1, 320000, 0xeabc15b3
-1, 8196, 8196, 4096, 8192, 0x585d090e
-2, 8196, 8196, 4096, 8192, 0xb966fb19
-1, 12292, 12292, 4096, 8192, 0x6d8ffe6e
-2, 12292, 12292, 4096, 8192, 0x51d1fb50
+1, 8196, 8196, 4096, 8192, 0x4af5090c
+2, 8196, 8196, 4096, 8192, 0x8e43fafd
+1, 12292, 12292, 4096, 8192, 0x39fbfe6a
+2, 12292, 12292, 4096, 8192, 0x7febfb59
0, 3, 3, 1, 320000, 0xf8b7b144
-1, 16388, 16388, 4096, 8192, 0x8c000600
-2, 16388, 16388, 4096, 8192, 0x335ff20c
-0, 4, 4, 1, 320000, 0xab42bbc7
+1, 16388, 16388, 4096, 8192, 0x886a05fe
+2, 16388, 16388, 4096, 8192, 0x0b2cf20d
+0, 4, 4, 1, 320000, 0xf3a3bf66
More information about the ffmpeg-cvslog
mailing list