[FFmpeg-devel] What is FFmpeg and what should it be

Michael Niedermayer michael at niedermayer.cc
Wed Aug 2 17:20:26 EEST 2023


On Wed, Aug 02, 2023 at 02:59:11PM +0200, Jean-Baptiste Kempf wrote:
> On Wed, 2 Aug 2023, at 14:55, Michael Niedermayer wrote:
> > the code already is in a seperate repository. And is basically isolated
> > in a single demuxer and single input device.
> 
> But it's not a library in that repository, like swscale, swresample or similar libraries.
> 
> If it was, with an API, it would be trivial to add support to this optional library as an FFmpeg module, and noone who complain.

There are multiple problems but the real problem is that
How many people discuss an SDR API ? (0)
How many people propose an SDR API ? (0)
How many people say what they want an SDR API to be able to do ? (0)
    This is not a simple question ?
    enumerate devices, set options, open, read frames, close ? That does not differ from the
    existing input device / demuxer API.
    If one cannot state a single difference in the API requirements from the existing
    input device API, how can one design that API ?
    If the existing input device API suposedly is not good
    Is it bad just because it is the existing API ? And it would be perfectly
    fine if it just had different function names ?
In other areas the community collaborates to create APIs
here all energy is spend to block patches (the latest set blocked are pure bugfixes)

Also swresample and swscale are simpler in what they need to provide API wise.

My very first patch i sent btw was blocked with the claim that it used
an external library and did not do the processing nativly.
Thats exactly what you suggest now

IMHO, People who want to use this API, or want to implement this API
should help with the API design and implementation

And if there are 0 people wanting to use the API then why should i design
that API ? who for ?
SDR in FFmpeg has 500+ users who want it, the API iam not sure has a user

People who have no intend to use the API or SDR or implement either
should not represent 99% of whom approv / reject the code
This is a problem, because it leads to bad code.
The people telling me what to do dont care about the results
one day its "not external lib", then its "external lib" then its
"libavfilter" then its "not libavfilter"

Again we had 0 that is ZERO discussions about an SDR API.
where does it start ? a hw enumerate, a soapy device, a void *
representing a SDR data stream from something like soapy

soapy is full of bugs, for the code to work we need to know
where the data came from and we need to interact with the hw
should we provide a layer over all of libsoapy ?
should we support only libsoapy and take a device from libsoapy
as input
should we have a generic input support that libsoapy is one of several
options ?

I cannot design this API with this. because 3 out of 4
choices will get attacked and blocked if not all 4, if someone just
implements it.
because people are unwilling to think about anything they just think
they know how it must be done and they dont discuss anything they just
demand and attack and wait how the next patchset looks. Eventually
everyone then looses interrest and a patchset goes through but thats
not good design.
So again, IMHO people should help design and implement this API
if they want an API.
If i have to design an API by trial and error until it gets no
unspecific objections by people not interrested in using it
thats not going to be an API that anyone will want to use.

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The day soldiers stop bringing you their problems is the day you have stopped 
leading them. They have either lost confidence that you can help or concluded 
you do not care. Either case is a failure of leadership. - Colin Powell
-------------- 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/20230802/8462b29e/attachment.sig>


More information about the ffmpeg-devel mailing list