[FFmpeg-devel] [PATCH v2] lavu/opt: Clarify that AVOptions is not indended for general use
Michael Niedermayer
michael at niedermayer.cc
Tue Apr 23 23:53:42 EEST 2024
On Tue, Apr 23, 2024 at 05:24:03PM -0300, James Almer wrote:
> On 4/23/2024 8:15 AM, Michael Niedermayer wrote:
> > On Tue, Apr 23, 2024 at 11:10:43AM +0100, Andrew Sayers wrote:
> > > On Tue, Apr 23, 2024 at 12:04:34PM +0200, Anton Khirnov wrote:
> > > > Quoting Andrew Sayers (2024-04-23 11:51:00)
> > > > > On Tue, Apr 23, 2024 at 11:21:27AM +0200, Anton Khirnov wrote:
> > > > > > > lavu/opt: Clarify that AVOptions is not indended for general use
> > > > > >
> > > > > > They _are_ intended for general use though.
> > > > >
> > > > > In that case I'm confused...
> > > > >
> > > > > Let's say I make a desktop app to transcode videos. Obviously I would use
> > > > > AVOptions to display configuration options for different encoders. And it's
> > > > > possible to create AVOptions objects for my UI. But how strongly is that use
> > > > > case recommended?
> > > > >
> > > > > To provide a particularly difficult example - let's say I want to let the user
> > > > > choose between interface themes, and I want to show both some text and a
> > > > > picture of the theme. AVOption doesn't include a "text + picture" option,
> > > > > so how would I extend it to meet my needs?
> > > >
> > > > If they fit your use case, then use them, otherwise don't - that's true
> > > > for pretty much all APIs we provide.
> > >
> > > Ah ok, so how about if I changed "intended" to "optimized" in the subject?
> >
> > If FFmpeg which is a multimedia tool in no place needs or wants to store
> > pictures through its option API in a way not curently supported.
> > I would say thats not going to qualify as "general use" outside specialized
> > software thats already dealing with a lot of pictures
> >
> > still you certainly can handle binary data (like a bitmap picture) through
> > AVOption
> >
> > thx
>
> Take for example AVIAMFReconGain.recon_gain in libavutil/iamf.h, which is
> currently the only field not covered by an AVOption (And thus not currently
> configurable from the CLI). How could it be supported? Binary type doesn't
> work because it expects a pointer + size field and allocates the former.
i would guess some form of AV_OPT_TYPE_FLAG_ARRAY
we have similar arrays like intra_matrix in mpeg codecs
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
-------------- 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/20240423/1dc4735c/attachment.sig>
More information about the ffmpeg-devel
mailing list