[gst-devel] GStreamer presets (feedback requested)

Michael Smith msmith at xiph.org
Wed Jun 24 00:30:50 CEST 2009


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 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
>




More information about the gstreamer-devel mailing list