Encoder Consensus in Gstreamer 0.11

Stefan Kost ensonic at hora-obscura.de
Sat Aug 20 12:41:28 PDT 2011

On 08/20/11 17:05, Benjamin M. Schwartz wrote:
> I think real ranges and types are valuable.  For example, theoraenc's
> quality is an integer [0...63], vorbisenc's is a float [-0.1 ... 1.0], and
> x264enc's is an integer [1...50].  We could remap all of these to a fixed
> float range (e.g. [0...1.0]), but we would lose the discreteness and
> consistency with other tools+docs.
> I don't know anything about GstPropertyProbe and interfaces, but I imagine
> that most encoders will _not_ implement all of these properties, because
> they are not all relevant to every encoder.  We could require encoders to
> implement them, even if they are read-only, but I would prefer not to.
GInterface is something from the GObject world (aka glib). The advantage
of using a GInterface is, that apps can simply check if the element
implements the interface and if use it appropriately. We would get the
same effect by putting the properties to a GstBaseEncoder.

The problem with properties on the interface or baseclass level is that
we have to use a unconstrained value range. Subclasses unfortunately
cannot refine that easily (no idea if one could actually do that using
g_param_spec_override). The GstPropertyProbe iface allows to e.g. check
at runtime if a specific property is available and what the value range
is. This could be used to get rid of the -ignore properties as well.

> If interfaces can express this kind of flexibility (properties that may be
> absent, may have different types, and may have different ranges), then I
> am all for it.  Maybe interfaces should be upgraded for flexibility in 0.11?
GInterface is not GStreamer specific and is not under our control. Btw.
it might also be worth to consider to have a different set of properties
for audio and video encoders. We have separate baseclasses anyway.

> --Ben
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110820/c99585e6/attachment.html>

More information about the gstreamer-devel mailing list