[gst-devel] GStreamer presets (feedback requested)

Stefan Kost ensonic at hora-obscura.de
Tue Jun 30 18:30:00 CEST 2009

Michael Smith schrieb:
> On Tue, Jun 23, 2009 at 11:06 AM, Christian Fredrik Kalager
> Schaller<uraeus at linuxrising.org> wrote:
>> Hi,
>> I have been working for a while on defining GStreamer level presets
>> based on the current plugin level preset system. The general document
>> for those presets can be found here:
>> http://gstreamer.freedesktop.org/wiki/PresetDesign
> After some discussion on IRC, I finally figured out what the presets
> are actually _for_ - I initially totally misunderstood.
> So to clarify:
>  - the profiles are ONLY to map some specific known profile names to a
> set of property values for a particular element, so that if you have
> two different encoder implementations (which both support the same
> basic semantics, but have different property names, or different
> units, etc.) you can set things up without knowing the specifics of
> the encoder.
> They're NOT for providing a drop-down of different encoding settings
> in your application, or anything like that. There are a number of
> major problems with trying to use them for that purpose (which is what
> I initially thought they were for). Your application still has to
> provide that layer entirely.
In buzztard I use the presets like in the second case. Soft-synths and
effects have a sidebar with a list of setting. Thas also how e.g. the
equalizer plugin uses them.

one alternative for the presets in the encoder scenario would be gobject
interfaces for encoders. openmax il attempts to do that in a way by
specifying default properties each e.g. mpeg4 video encoder needs to have.


> In my opinion, this is not very helpful. In reality, if you have two
> different encoders, either:
>  - they support the same semantics, so making them use the same
> property names/values for that is simple.
>  - they support different things, so just mapping names/values/etc
> doesn't help you at all
> On to some specifics about the presets you've proposed:
>  - Where you have things like "Quality High", you've just selected a
> bitrate. But, that only makes sense at a particular size of input
> (resolution/framerate/etc for video, number of channels, sample rate
> etc for audio). Why not just a preset called "Bitrate 128kbps"? That
> maps equally well to the underlying properties, but doesn't imply
> anything about quality - which is good, since the preset is _only_
> setting the bitrate, and actually doesn't have anything to do with
> quality.
>  - Some presets are designed to be applied along with others, some are
> mutually exclusive (e.g. for AAC, the profiles are mutually exclusive,
> but a profile and a bitrate can both be selected). But there's no
> information provided about which is which. So, an application just has
> to hardcode profile names, so this isn't in practice at all
> extensible.
> I think in practice what people want is an "encoding profile" that
> specifies things more completely - e.g. for audio, it might say
> "stereo, 44.1kHz, bitrate 128kbps, codec foo, container bar, etc", and
> have a name of "Medium quality Foo Audio" (this would need to be
> translateable somehow, but that's a different issue). You could
> provide a replacement profile with the same name using a different
> encoder, of course.
> Summary:
>  - I don't think the aims are clear.
>  - I don't think the current proposal works very well for what its
> aims are, OR for what people are likely to think its aims are.
> Mike
>> My current set of .prs files can be found here:
>> http://cgit.freedesktop.org/~uraeus/transmageddon/tree/presets
>> I think I have managed to sort out what should be in the files at this
>> point, including what kind of values makes sense and what kind of values
>> do not make sense. Even tried documenting those choices on the wiki
>> pages.
>> Before I start committing these .prs files to the various GStreamer
>> modules I would like to ask people to take a look at them and the
>> current specification and let me know if people:
>> a) agree with the type of values I have choosen for the .prs files
>> b) agree with the actual values choosen for some of these values.
>> Especially the actual bitrates choosen for the Quality settings might
>> need some polishing (and maybe even more than 3 different options)
>> These presets can be used independently, but I plan on using them as
>> part of the device level profiles, linked from the Preset page. But
>> those profiles are still in a flux and will most likely change a bit, so
>> please disregard that page for the time being or at least see it as a
>> work in progress.
>> Christian
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> ------------------------------------------------------------------------------
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

More information about the gstreamer-devel mailing list