@@ -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);
@@ -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
@@ -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
Also adjust related parameters Signed-off-by: Michael Niedermayer <michael@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(-)