[Bug 758960] New GstStream API and decodebin3/playbin3

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Feb 22 15:54:32 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=758960

Carlos Rafael Giani <dv at pseudoterminal.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dv at pseudoterminal.org

--- Comment #1 from Carlos Rafael Giani <dv at pseudoterminal.org> ---
I'd add https://bugzilla.gnome.org/show_bug.cgi?id=762125 as something for the
new uridecodebin3 .


Also, currently, GstURIHandler only accepts a URI string in its set_uri()
vfunc. As a consequence, the current uridecodebin and playbin elements only
have a "uri" property. However, sometimes, additional media specific data needs
to be passed to the source element. One example would be credentials.

Two methods of accomplishing this is:

1) serialize the additional data as a string and append it to the URI
2) pass on the data in the "source-setup" signal

Method #1 adds extra overhead by the serialization, which can be significant
depending on the size of the extra data. Also, some data sets simply cannot be
serialized.
Method #2 requires one source-setup callback to contain if-elseif-blocks to
cover all of the sources that need extra data, which doesn't scale well.

Therefore, a better option would be to add a GstStructure alongside the URI:

* GstURIHandler would get a new "set_uri_full()" vfunc, with an additional
"GstStructure *extra_data" argument.

* A new gst_element_make_from_uri_full() would be added, with an additional
"GstStructure *extra_data" argument right after the "uri" argument.

* uridecodebin3, urisourcebin, and playbin3 would get "extra-data" properties,
which would allow for passing a GstStructure pointer.

gst_element_make_from_uri_full() would call set_uri() if set_uri_full is NULL.
This maintains backwards compatibility with older elements that implement
GstURIHandler and set the set_uri vfunc. (Perhaps the src_uri() vfunc should
also be marked as deprecated.)
gst_element_make_from_uri() would internally just call
gst_element_make_from_uri_full() with extra_data set to NULL.

It is currently unclear if any of these functions/properties above would take
ownership over the GstStructure.

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