Revert "ges: timeline-pipeline: Remove playsink send_event hack"

This reverts commit 54aac450da.

We need this hack until we depend on gst-p-base 0.10.36
This commit is contained in:
Thiago Santos 2012-04-23 14:38:31 -03:00
parent 2741a8fb38
commit 094669391d

View file

@ -71,6 +71,8 @@ static OutputChain *get_output_chain_for_track (GESTimelinePipeline * self,
GESTrack * track);
static OutputChain *new_output_chain_for_track (GESTimelinePipeline * self,
GESTrack * track);
static gboolean play_sink_multiple_seeks_send_event (GstElement * element,
GstEvent * event);
static void
ges_timeline_pipeline_dispose (GObject * object)
@ -121,6 +123,8 @@ ges_timeline_pipeline_class_init (GESTimelinePipelineClass * klass)
static void
ges_timeline_pipeline_init (GESTimelinePipeline * self)
{
GstElementClass *playsinkclass;
GST_INFO_OBJECT (self, "Creating new 'playsink'");
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
GES_TYPE_TIMELINE_PIPELINE, GESTimelinePipelinePrivate);
@ -140,6 +144,11 @@ ges_timeline_pipeline_init (GESTimelinePipeline * self)
if (G_UNLIKELY (self->priv->encodebin == NULL))
goto no_encodebin;
/* HACK : Intercept events going through playsink */
playsinkclass = GST_ELEMENT_GET_CLASS (self->priv->playsink);
/* Replace playsink's GstBin::send_event with our own */
playsinkclass->send_event = play_sink_multiple_seeks_send_event;
ges_timeline_pipeline_set_mode (self, DEFAULT_TIMELINE_MODE);
return;
@ -978,3 +987,16 @@ ges_timeline_pipeline_preview_set_audio_sink (GESTimelinePipeline * self,
{
g_object_set (self->priv->playsink, "audio-sink", sink, NULL);
};
static gboolean
play_sink_multiple_seeks_send_event (GstElement * element, GstEvent * event)
{
GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);
GST_DEBUG ("%s", GST_EVENT_TYPE_NAME (event));
return
GST_ELEMENT_CLASS (g_type_class_peek_parent (klass))->send_event (element,
event);
}