[FFmpeg-devel] Extending AVOption system

Michael Niedermayer michaelni
Sun Jun 8 21:17:51 CEST 2008


On Sun, Jun 08, 2008 at 07:53:07PM +0200, Stefano Sabatini wrote:
> On date Sunday 2008-06-08 15:40:01 +0200, Michael Niedermayer encoded:
> > On Sun, Jun 08, 2008 at 10:38:31AM +0200, Stefano Sabatini wrote:
> > > On date Saturday 2008-06-07 15:12:37 +0200, Michael Niedermayer encoded:
> [...]
> > > > Basically we need a fast and efficient way to make all the values
> > > > from a struct and the AVOption constants available to eval() and that
> > > > has to be alot faster than iterating over them once. It can surely be
> > > > done, if someone volunteers to do the work i can think about how it
> > > > can be done ...
> > > 
> > > I'm interested, if you can elaborate more on this I can try to
> > > implement it as time permits. If it can help I have already a naive
> > > implementation of an hash container (which I'm going to post anyway on
> > > the libavutil hash container thread).
> > 
> > Get these darn hash tables out of your mind, they wont do any good here :)
> > Ok heres a design suggestion, in no particular order:
> > 
> > 1. Sort all AVOption table entries by name. (diego will love this as well)
> > 
> > 2. in av_set_string() go over the string and look up all [a-z_]* via bsearch()
> >    in the avoptions array.
> >      for each replace the string by the literal numeric value of the constant
> >      from the AVOptions array, value from the struct or min/max/default of
> >      the current option.
> >      After that handle the string as it is currently.
> 
> Michael, eventual applications which work with non sorted arrays
> won't work anymore with bsearch(), so I have to provide all the required
> ifdeffery to keep backward compatibility, right?

hmm, who is using AVOptions arrays outside lav* ?


> 
> Also I'm thinking about introducing an option_count field in AVClass,

yes, this seems needed indeed


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

Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080608/2bf78ab0/attachment.pgp>



More information about the ffmpeg-devel mailing list