[FFmpeg-devel] [PATCH v2] avformat: add Software Defined Radio support

Michael Niedermayer michael at niedermayer.cc
Sun Jun 25 16:53:39 EEST 2023

On Sat, Jun 24, 2023 at 10:27:13PM +0200, Rémi Denis-Courmont wrote:
> Le 23 juin 2023 20:12:41 GMT+02:00, Michael Niedermayer <michael at niedermayer.cc> a écrit :
> >Hi
> >
> >On Fri, Jun 23, 2023 at 06:37:18PM +0200, Rémi Denis-Courmont wrote:
> >> Hi,
> >> 
> >> Le 23 juin 2023 13:17:28 GMT+02:00, Michael Niedermayer <michael at niedermayer.cc> a écrit :
> >> >On Fri, Jun 23, 2023 at 10:34:10AM +0800, Kieran Kunhya wrote:
> >> >> FFmpeg is not the place for SDR. SDR is as large and complex as the
> >> >> entirety of multimedia.
> >> >> 
> >> >> What next, is FFmpeg going to implement TCP in userspace, Wifi, Ethernet,
> >> >> an entire 4G and 5G stack?
> >> >
> >> >https://en.wikipedia.org/wiki/Straw_man
> >> >
> >> >What my patch is doing is adding support for AM demodulation, the AM
> >> >specific code is like 2 pages. The future plan for FM demodulation will
> >> >not add alot of code either. DAB/DVB should also not be anything big
> >> >(if that is implemented at all by anyone)
> >> 
> >> Literally every one of those layer-2 protocols has a lower-level API already on Linux, and typically they are, or would be, backends to libavdevice.
> >> 
> >> (Specifically AM and FM are supported by V4L radio+ALSA; DAB and DVB by Linux-DVB. 4G and 5G are network devices.)
> >
> >4 problems
> >* FFmpeg is not "linux only".
> And then what? Whether you like it or not, radio signal processing sits on top of OS-specific APIs to access whatever bus or hardware. You can't make this OS-independent whether it's in FFmpeg or elsewhere.
> At best you can write or reuse platform abstraction layers (such as libusb). Maybe.
> In other words, whether this ends up in FFmpeg or not has absolutely no bearing on this "problem" as you call it.
> But it doesn't end here. Audio input on Linux is normally exposed with ALSA modules (hw/plughw if the driver is in kernel, but it doesn't have to be), and other OSes have equivalent APIs. A sound (pun unintended) implementation of AM or FM would actually be an ALSA module, and *maybe* also PA and PW modules. (They don't have to be kernel mode drivers.)
> ...Not an FFmpeg device or demux.

This is interresting. I never tried but there should be a way to pipe ffmpeg
output back into alsa to make it available as an alsa module
This could actually be usefull as is with no sdr. but that tought i have here is 100% off topic

> >* No software i tried or was suggested to me used V4L or Linux-DVB.
> That would be because audio input is done with ALSA (in combination with V4L for *hardware* radio tuning).
> The point was that this is lower layer stuff that belongs in a lower level library or module, rather than FFmpeg. I never *literally* said that you should (or even could) use V4L or Linux-DVB here. Those APIs are rather for the *hardware* equivalent of what you're doing in *software*.
> So again, no "problem" here.

ok, i misunderstood you somewhat here



Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Old school: Use the lowest level language in which you can solve the problem
New school: Use the highest level language in which the latest supercomputer
            can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20230625/98e9e2d4/attachment.sig>

More information about the ffmpeg-devel mailing list