GESTimelinePipeline: new functions to search/create OutputChain

This commit is contained in:
Edward Hervey 2010-04-20 12:57:53 +02:00
parent 2d7962bf93
commit 75389d6493

View file

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