[Bug 796754] New: GESTimeline is not entirely compatible with GstPipeline
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Jul 5 18:51:30 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=796754
Bug ID: 796754
Summary: GESTimeline is not entirely compatible with
GstPipeline
Classification: Platform
Product: GStreamer
Version: 1.12.x
OS: All
Status: NEW
Severity: major
Priority: Normal
Component: gst-editing-services
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: ding at panopto.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
The GESTimeline wraps NleComposition elements which requires a "query-position"
signal to the pipeline (as described below). Unfortunately, the signal cannot
be made connected using only the public header API which is provided as part of
the Gstreamer distro.
Here is an example of the connection that needs to be made. Notice that below
I am using the `private` bits of GESTrack which is bad practice. (I had to
pull in the definition of _GESTrackPrivate to make this compile.)
// It is necessary to connect the "query-position" signal to each track
g_signal_connect(
gesTrack->priv->composition, // (GESTrack*)->priv->composition, where
the GESTrack is part of my GESTimeline
"query-position",
G_CALLBACK(cbQueryPosition), // my callback method
gstPipeline); // The GstPipeline* which contains
GESTimeline
// My callback method
gint64 cbQueryPosition(GstElement* nleComposition, GstPipeline*
gstPipeline)
{
gint64 position;
if
(gst_element_query_position(reinterpret_cast<GstElement*>(gstPipeline),
GST_FORMAT_TIME, &position))
{
return position;
}
return GST_CLOCK_TIME_NONE;
}
Another approach suggested by Thibault is to search the GESTrack using
`gst_bin_iterate_elements` to find the NleComposition element. Unfortunately,
that is not possible either without including "nle.h" which is not provided in
the gstreamer distro. Without "nle.h" I don't have the GType of the element
that I am searching for (which is NLE_TYPE_COMPOSITION).
Here is the relevant email thread with Thibault Saunier:
https://lists.freedesktop.org/archives/gstreamer-devel/2018-July/068441.html
One way to fix the problem is to give GESTimeline a "query-position" signal,
and it would mediate the flow of information between the GstPipeline and all
elements of type NleComposition.
--
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