From 75389d6493c72edb6b66ace40fdd682a65e1a3c3 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 20 Apr 2010 12:57:53 +0200 Subject: [PATCH] GESTimelinePipeline: new functions to search/create OutputChain --- ges/ges-timeline-pipeline.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/ges/ges-timeline-pipeline.c b/ges/ges-timeline-pipeline.c index 0a97c0e..29a8e98 100644 --- a/ges/ges-timeline-pipeline.c +++ b/ges/ges-timeline-pipeline.c @@ -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 * -- 2.7.4