[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