[FFmpeg-devel] Extending AVOption system

Michael Niedermayer michaelni
Mon Jun 9 19:23:49 CEST 2008


On Mon, Jun 09, 2008 at 06:16:25PM +0200, Stefano Sabatini wrote:
> On date Monday 2008-06-09 17:06:55 +0200, Michael Niedermayer encoded:
> > On Mon, Jun 09, 2008 at 04:45:05PM +0200, Stefano Sabatini wrote:
> > > On date Sunday 2008-06-08 21:17:51 +0200, Michael Niedermayer encoded:
> > > > On Sun, Jun 08, 2008 at 07:53:07PM +0200, Stefano Sabatini wrote:
> > > > > 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* ?
> > > 
> > > Who can say? Anyway since we're indeed breaking backward compatibility
> > > a major bump seems anyway the right thing to do (again: I can also
> > > live without such a major bump if you prefer like this, just making my
> > > point clear).
> > > 
> > > Rethinking at it the major bump would be required in libavutil, since
> > > we're requesting at some point these two things:
> > > 1) AVClass.option array has to be sorted
> > > 2) AVClass.option_count has to be correctly specified
> > > 
> > > If this is not true then the behaviour of the function which deal with
> > > AVClass is undefined.
> > 
> > Just store the length in the first entry of the AVOption array. No change
> > to AVClass no version bumps. And the length is where the corresponding array
> > is.
> > {" len", NULL, <array size>, FF_OPT_TYPE_CONST,
> 
> And still so we're requesting that:
> 1) AVClass.option array has to be sorted
> 2) AVClass.option_count has to contain a "len" option
> 
> With this option we save a minor bump for the introduction of
> option_count, not the major bump, also we're complicating the
> interface.

1. AVClass.option[0].name == " len" -> array is sorted and option[0].offset
   contains the length
2. AVClass.option[0].name != " len" -> array is not sorted and is NULL
   terminated

2 is under #ifdef version < blah


> 
> Ignore this message if I'm misunderstanding something very trivial,

> I'll notice it later ;-).

Its also written in /dev/random ;)

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

The educated differ from the uneducated as much as the living from the
dead. -- Aristotle 
-------------- 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/20080609/d582ab4d/attachment.pgp>



More information about the ffmpeg-devel mailing list