[FFmpeg-devel] [PATCH 11/12] avradio/sdr: Pass AVStream instead of int to demodulate
Michael Niedermayer
michael at niedermayer.cc
Wed Jul 12 00:19:09 EEST 2023
thats less errror prone and simpler
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavradio/sdr.h | 2 +-
libavradio/sdrdemux.c | 8 +++-----
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/libavradio/sdr.h b/libavradio/sdr.h
index cb4b6dc68b..3297584eae 100644
--- a/libavradio/sdr.h
+++ b/libavradio/sdr.h
@@ -241,7 +241,7 @@ typedef struct ModulationDescriptor {
/**
* Demodulate given station into packet
*/
- int (*demodulate)(SDRContext *sdr, int stream_index, AVPacket *pkt);
+ int (*demodulate)(SDRContext *sdr, AVStream *st, AVPacket *pkt);
} ModulationDescriptor;
typedef struct BandDescriptor {
diff --git a/libavradio/sdrdemux.c b/libavradio/sdrdemux.c
index 5d58d81843..19dd0ef381 100644
--- a/libavradio/sdrdemux.c
+++ b/libavradio/sdrdemux.c
@@ -665,9 +665,8 @@ static av_always_inline void synchronous_am_demodulationN(AVComplexFloat *iblock
}
}
-static int demodulate_am(SDRContext *sdr, int stream_index, AVPacket *pkt)
+static int demodulate_am(SDRContext *sdr, AVStream *st, AVPacket *pkt)
{
- AVStream *st = sdr->avfmt->streams[stream_index];
SDRStream *sst = st->priv_data;
double freq = sst->station->frequency;
int64_t bandwidth = sst->station->bandwidth;
@@ -934,9 +933,8 @@ static int probe_fm(SDRContext *sdr)
return 0;
}
-static int demodulate_fm(SDRContext *sdr, int stream_index, AVPacket *pkt)
+static int demodulate_fm(SDRContext *sdr, AVStream *st, AVPacket *pkt)
{
- AVStream *st = sdr->avfmt->streams[stream_index];
SDRStream *sst = st->priv_data;
Station *station = sst->station;
@@ -1653,7 +1651,7 @@ process_next_block:
} else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
if (sst->station) {
skip = 0;
- ret = ff_sdr_modulation_descs[ sst->station->modulation ].demodulate(sdr, stream_index, pkt);
+ ret = ff_sdr_modulation_descs[ sst->station->modulation ].demodulate(sdr, st, pkt);
if (ret < 0) {
av_log(s, AV_LOG_ERROR, "demodulation failed ret = %d\n", ret);
}
--
2.31.1
More information about the ffmpeg-devel
mailing list