[Bug 740322] New: Proposal of smart-properties

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Nov 18 07:19:55 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=740322
  GStreamer | gstreamer (core) | unspecified

           Summary: Proposal of smart-properties
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Mac OS
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: justin.joy.9to5 at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Usually, setting properties are stateless except for GST_PARAM_MUTABLE_*
attributes.
Special purpose properties need to be shared from source to sink element.

This is a proposal to solve the problems;
    * Avoid to call repeatedly childproxy to set same properties into multiple
elements
    * Assure that given properties exist when sink pad is connected

To help understand this proposal, please, consider next scenario.

Let's assume that there is thumbnail-mode. I know, extracting thumbnail from
gstreamer isn't efficient way, but we can.
If the mode is enabled, 
    * demuxer should not create audio/subtitle pads.
    * decoder should decode as soon as possible (e.g, only I-frame can be
acceptable)
    * render should be optimised to send its raw buffer to the thumbnail
extractor

With this feature, there are several restrictions when setting "thumbnail-mode"
property.
    * setting the property is valid only before transiting element state.
        setting the property to demux in playing state is meaningless because
it would already have audio/subtitle pads
    * To set the property into demux, decoder, and renderer, we have to know
exact element name of them if we use childproxy.
        it causes another burden to get names if we are using autoplugging like
playbin

To solve these problem, we defined "smart-properties" APIs. We made that
    * basesrc can accept "smart-properties" as GstStructure
    * any element can get the property by UPSTREAM_EVENT if its sinkpad is
connected.

A flaw is that it doesn't work if source element is not a child class of
basesrc.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list