Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
---
 libavradio/sdrdemux.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index ef8a8a91d3..36b8aac2fb 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -1136,16 +1136,23 @@ static int setup_stream(SDRContext *sdr, int 
stream_index, Station *station)
             if (ret < 0)
                 return ret;
 
+            sst->window_p2 = av_malloc(sizeof(*sst->window_p2)* 2 * 
sst->block_size_p2);
+            sst->iside     = av_malloc(sizeof(*sst->iside)    * 2 * 
sst->block_size_p2);
+            if (!sst->iside || !sst->window_p2)
+                return AVERROR(ENOMEM);
+
+            avpriv_kbd_window_init(sst->window_p2, sdr->kbd_alpha, 
sst->block_size_p2);
+            for(int i = sst->block_size_p2; i < 2 * sst->block_size_p2; i++) {
+                sst->window_p2[i] = sst->window_p2[2*sst->block_size_p2 - i - 
1];
+            }
         }
 
         sst->out_buf   = av_malloc(sizeof(*sst->out_buf)  * 2 * 
sst->block_size);
         sst->block     = av_malloc(sizeof(*sst-> block)   * 2 * 
sst->block_size);
         sst->iblock    = av_malloc(sizeof(*sst->iblock)   * 2 * 
sst->block_size);
         sst->icarrier  = av_malloc(sizeof(*sst->icarrier) * 2 * 
sst->block_size);
-        sst->iside     = av_malloc(sizeof(*sst->iside)    * 2 * 
sst->block_size_p2);
         sst->window    = av_malloc(sizeof(*sst->window)   * 2 * 
sst->block_size);
-        sst->window_p2 = av_malloc(sizeof(*sst->window_p2)* 2 * 
sst->block_size_p2);
-        if (!sst->out_buf || !sst->block || !sst->iblock || !sst->icarrier || 
!sst->iside || !sst->window || !sst->window_p2)
+        if (!sst->out_buf || !sst->block || !sst->iblock || !sst->icarrier || 
!sst->window)
             return AVERROR(ENOMEM);
 
         avpriv_kbd_window_init(sst->window, sdr->kbd_alpha, sst->block_size);
@@ -1153,10 +1160,6 @@ static int setup_stream(SDRContext *sdr, int 
stream_index, Station *station)
             sst->window[i] = sst->window[2*sst->block_size - i - 1];
         }
 
-        avpriv_kbd_window_init(sst->window_p2, sdr->kbd_alpha, 
sst->block_size_p2);
-        for(int i = sst->block_size_p2; i < 2 * sst->block_size_p2; i++) {
-            sst->window_p2[i] = sst->window_p2[2*sst->block_size_p2 - i - 1];
-        }
         sst->am_amplitude = 0;
     }
 
-- 
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-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to