mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
GESTimelinePipeline: new functions to search/create OutputChain
This commit is contained in:
parent
2d7962bf93
commit
75389d6493
1 changed files with 30 additions and 1 deletions
|
@ -36,7 +36,7 @@
|
|||
|
||||
typedef struct
|
||||
{
|
||||
GESTimelinePipeline *pipeline;
|
||||
GESTrack *track;
|
||||
GstElement *tee;
|
||||
GstPad *srcpad; /* Timeline source pad */
|
||||
GstPad *playsinkpad;
|
||||
|
@ -48,6 +48,10 @@ G_DEFINE_TYPE (GESTimelinePipeline, ges_timeline_pipeline, GST_TYPE_PIPELINE);
|
|||
static GstStateChangeReturn ges_timeline_pipeline_change_state (GstElement *
|
||||
element, GstStateChange transition);
|
||||
|
||||
static OutputChain *get_output_chain_for_track (GESTimelinePipeline * self,
|
||||
GESTrack * track);
|
||||
static OutputChain *new_output_chain_for_track (GESTimelinePipeline * self,
|
||||
GESTrack * track);
|
||||
|
||||
static void
|
||||
ges_timeline_pipeline_finalize (GObject * object)
|
||||
|
@ -138,6 +142,31 @@ done:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static OutputChain *
|
||||
new_output_chain_for_track (GESTimelinePipeline * self, GESTrack * track)
|
||||
{
|
||||
OutputChain *chain;
|
||||
|
||||
chain = g_new0 (OutputChain, 1);
|
||||
chain->track = track;
|
||||
|
||||
return chain;
|
||||
}
|
||||
|
||||
static OutputChain *
|
||||
get_output_chain_for_track (GESTimelinePipeline * self, GESTrack * track)
|
||||
{
|
||||
GList *tmp;
|
||||
|
||||
for (tmp = self->chains; tmp; tmp = tmp->next) {
|
||||
OutputChain *chain = (OutputChain *) tmp->data;
|
||||
if (chain->track == track)
|
||||
return chain;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Fetches a ocmpatible pad on the target element which isn't already
|
||||
* linked */
|
||||
static GstPad *
|
||||
|
|
Loading…
Reference in a new issue