[FFmpeg-devel] [PATCH 12/12] avradio/avformat/sdrdemux: replace heuristic FM scaling by logic

Michael Niedermayer michael at niedermayer.cc
Mon Jul 31 01:11:31 EEST 2023


Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavformat/sdrdemux.c |  4 +++-
 tests/ref/fate/sdr-fm  | 12 ++++++------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/libavformat/sdrdemux.c b/libavformat/sdrdemux.c
index bda7387213..f8590a2e18 100644
--- a/libavformat/sdrdemux.c
+++ b/libavformat/sdrdemux.c
@@ -1135,7 +1135,9 @@ static int demodulate_fm(SDRContext *sdr, Station *station, AVStream *st, AVPack
     if (!newbuf)
         return AVERROR(ENOMEM);
 
-    scale      = 5 / (M_PI * 2*sdr->fm_block_size);
+    //ATAN gives us +-PI the following 2 transforms scale by the given values, we reverse this here
+    scale = 1.0 / (M_PI * sqrt(2*sdr->fm_block_size * 2*sdr->fm_block_size_p2));
+
     for(i = 0; i<sdr->fm_block_size_p2; i++) {
         float m, q;
 
diff --git a/tests/ref/fate/sdr-fm b/tests/ref/fate/sdr-fm
index ef76e4f584..526f53a2bd 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, 0xdd0d10be
-2,       8196,       8196,     4096,     8192, 0x98c4f547
-1,      12292,      12292,     4096,     8192, 0xaf58fbdc
-2,      12292,      12292,     4096,     8192, 0x6d53f60a
+1,       8196,       8196,     4096,     8192, 0x12b50769
+2,       8196,       8196,     4096,     8192, 0xeb93fbff
+1,      12292,      12292,     4096,     8192, 0xba21feb7
+2,      12292,      12292,     4096,     8192, 0x3ef2fc7b
 0,          3,          3,        1,   320000, 0xf8b7b144
-1,      16388,      16388,     4096,     8192, 0x03640b38
-2,      16388,      16388,     4096,     8192, 0x1216e352
+1,      16388,      16388,     4096,     8192, 0xdea20516
+2,      16388,      16388,     4096,     8192, 0x7538f52b
 0,          4,          4,        1,   320000, 0xf3a3bf66
-- 
2.31.1



More information about the ffmpeg-devel mailing list