[FFmpeg-devel] [PATCH/RFC] Per-codec option system

Jason Garrett-Glaser darkshikari
Wed Sep 30 10:48:43 CEST 2009


On Wed, Sep 30, 2009 at 1:42 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Wed, Sep 30, 2009 at 01:24:10AM -0700, Jason Garrett-Glaser wrote:
>> On Wed, Sep 30, 2009 at 1:17 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
>> > On Tue, Sep 29, 2009 at 05:13:24PM -0700, Jason Garrett-Glaser wrote:
>> >> > As Mans noted maybe this is not necessary.
>> >>
>> >> How are we supposed to know whether to set the per-codec defaults, or
>> >> whether to use the avcodec global defaults?
>> >
>> > The obvious way is to use per codec defaults where available and global
>> > defaults where not.
>> >
>> > avcodec_get_context_defaults2() could trvially do that if it was given the
>> > codec id, that is no matter which APIs and implementations are used ...
>> >
>> >
>> >>
>> >> We need some way of signalling which API we are using.
>> >
>> > there should be just one API
>> >
>> > Note, ive not read the other replies in this thread, this one just looked
>> > small and easy to awnser
>>
>> There should be just one API, but I think completely rewriting the
>> current API all at once will be very difficult, especially since only
>> the authors of codecs will really be able to accurately set defaults
>> and option sets. ?The best approach IMO is to do it gradually or else
>> it will never happen at all.
>
> the current public API, that is
>
> av_set_string(codec_context, "bitrate", "123kb");
>
> does not need a rewrite or change, its implementation might need changes
> and so might the interface between codecs and AVOptions
> but none of that would be vissible to an end user application ...

Ah, so you propose changing the set_string option to set per-codec
options instead of global options... I like this idea.

Still, while the public API doesn't need a rewrite, the internals
will, and it will be all-or-nothing; every codec will have to have a
help(), an option handler, and so forth.  How do you propose that we
implement this new system for only *some* codecs so that it can be
incrementally added?

Dark Shikari



More information about the ffmpeg-devel mailing list