From 984a0b54eb73d2e843a5ef50a595ff995c3e3d51 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 22 Jul 2011 21:19:45 +0200 Subject: [PATCH] fixes for event handler changes --- gst/audiofx/audiofxbasefirfilter.c | 12 +++++++----- gst/debugutils/gstnavseek.c | 32 ++++++++++++++------------------ gst/debugutils/progressreport.c | 23 +++++++++++++++-------- 3 files changed, 36 insertions(+), 31 deletions(-) diff --git a/gst/audiofx/audiofxbasefirfilter.c b/gst/audiofx/audiofxbasefirfilter.c index 633d29d..fa28d58 100644 --- a/gst/audiofx/audiofxbasefirfilter.c +++ b/gst/audiofx/audiofxbasefirfilter.c @@ -70,8 +70,8 @@ static GstFlowReturn gst_audio_fx_base_fir_filter_transform (GstBaseTransform * base, GstBuffer * inbuf, GstBuffer * outbuf); static gboolean gst_audio_fx_base_fir_filter_start (GstBaseTransform * base); static gboolean gst_audio_fx_base_fir_filter_stop (GstBaseTransform * base); -static gboolean gst_audio_fx_base_fir_filter_event (GstBaseTransform * base, - GstEvent * event); +static gboolean gst_audio_fx_base_fir_filter_sink_event (GstBaseTransform * + base, GstEvent * event); static gboolean gst_audio_fx_base_fir_filter_transform_size (GstBaseTransform * base, GstPadDirection direction, GstCaps * caps, gsize size, GstCaps * othercaps, gsize * othersize); @@ -592,7 +592,8 @@ gst_audio_fx_base_fir_filter_class_init (GstAudioFXBaseFIRFilterClass * klass) GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_transform); trans_class->start = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_start); trans_class->stop = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_stop); - trans_class->event = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_event); + trans_class->sink_event = + GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_sink_event); trans_class->transform_size = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_transform_size); filter_class->setup = GST_DEBUG_FUNCPTR (gst_audio_fx_base_fir_filter_setup); @@ -1019,7 +1020,8 @@ gst_audio_fx_base_fir_filter_query_type (GstPad * pad) } static gboolean -gst_audio_fx_base_fir_filter_event (GstBaseTransform * base, GstEvent * event) +gst_audio_fx_base_fir_filter_sink_event (GstBaseTransform * base, + GstEvent * event) { GstAudioFXBaseFIRFilter *self = GST_AUDIO_FX_BASE_FIR_FILTER (base); @@ -1035,7 +1037,7 @@ gst_audio_fx_base_fir_filter_event (GstBaseTransform * base, GstEvent * event) break; } - return GST_BASE_TRANSFORM_CLASS (parent_class)->event (base, event); + return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (base, event); } void diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c index 801cb25..a5d39b2 100644 --- a/gst/debugutils/gstnavseek.c +++ b/gst/debugutils/gstnavseek.c @@ -47,10 +47,12 @@ GstStaticPadTemplate navseek_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); -static gboolean gst_navseek_event (GstBaseTransform * trans, GstEvent * event); +static gboolean gst_navseek_sink_event (GstBaseTransform * trans, + GstEvent * event); static GstFlowReturn gst_navseek_transform_ip (GstBaseTransform * basetrans, GstBuffer * buf); -static gboolean gst_navseek_handle_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_navseek_src_event (GstBaseTransform * trans, + GstEvent * event); static gboolean gst_navseek_stop (GstBaseTransform * trans); static gboolean gst_navseek_start (GstBaseTransform * trans); @@ -92,7 +94,8 @@ gst_navseek_class_init (GstNavSeekClass * klass) "Seek based on navigation keys left-right", "Jan Schmidt "); - gstbasetrans_class->event = GST_DEBUG_FUNCPTR (gst_navseek_event); + gstbasetrans_class->src_event = GST_DEBUG_FUNCPTR (gst_navseek_src_event); + gstbasetrans_class->sink_event = GST_DEBUG_FUNCPTR (gst_navseek_sink_event); gstbasetrans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_navseek_transform_ip); gstbasetrans_class->start = GST_DEBUG_FUNCPTR (gst_navseek_start); @@ -102,9 +105,6 @@ gst_navseek_class_init (GstNavSeekClass * klass) static void gst_navseek_init (GstNavSeek * navseek) { - gst_pad_set_event_function (GST_BASE_TRANSFORM (navseek)->srcpad, - GST_DEBUG_FUNCPTR (gst_navseek_handle_src_event)); - gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (navseek), TRUE); navseek->seek_offset = 5.0; @@ -208,17 +208,17 @@ gst_navseek_segseek (GstNavSeek * navseek) } static gboolean -gst_navseek_handle_src_event (GstPad * pad, GstEvent * event) +gst_navseek_src_event (GstBaseTransform * trans, GstEvent * event) { GstNavSeek *navseek; gboolean ret = TRUE; - navseek = GST_NAVSEEK (GST_PAD_PARENT (pad)); + navseek = GST_NAVSEEK (trans); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_NAVIGATION: - /* Check for a keyup and convert left/right to a seek event */ { + /* Check for a keyup and convert left/right to a seek event */ const GstStructure *structure; const gchar *event_type; @@ -265,18 +265,14 @@ gst_navseek_handle_src_event (GstPad * pad, GstEvent * event) } gst_event_unref (event); event = NULL; - } break; + } default: break; } - if (event && GST_PAD_IS_LINKED (GST_BASE_TRANSFORM (navseek)->sinkpad)) { - GstPad *peer_pad = gst_pad_get_peer (GST_BASE_TRANSFORM (navseek)->sinkpad); - - ret = gst_pad_send_event (peer_pad, event); - gst_object_unref (peer_pad); - } + if (event) + ret = GST_BASE_TRANSFORM_CLASS (parent_class)->src_event (trans, event); return ret; } @@ -318,7 +314,7 @@ gst_navseek_get_property (GObject * object, guint prop_id, } static gboolean -gst_navseek_event (GstBaseTransform * trans, GstEvent * event) +gst_navseek_sink_event (GstBaseTransform * trans, GstEvent * event) { GstNavSeek *navseek = GST_NAVSEEK (trans); @@ -332,7 +328,7 @@ gst_navseek_event (GstBaseTransform * trans, GstEvent * event) default: break; } - return GST_BASE_TRANSFORM_CLASS (parent_class)->event (trans, event); + return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); } static GstFlowReturn diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c index 37fb8b0..aa3d01b 100644 --- a/gst/debugutils/progressreport.c +++ b/gst/debugutils/progressreport.c @@ -107,7 +107,7 @@ static void gst_progress_report_set_property (GObject * object, guint prop_id, static void gst_progress_report_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static gboolean gst_progress_report_event (GstBaseTransform * trans, +static gboolean gst_progress_report_sink_event (GstBaseTransform * trans, GstEvent * event); static GstFlowReturn gst_progress_report_transform_ip (GstBaseTransform * trans, GstBuffer * buf); @@ -175,7 +175,8 @@ gst_progress_report_class_init (GstProgressReportClass * g_class) "Periodically query and report on processing progress", "Jan Schmidt "); - gstbasetrans_class->event = GST_DEBUG_FUNCPTR (gst_progress_report_event); + gstbasetrans_class->sink_event = + GST_DEBUG_FUNCPTR (gst_progress_report_sink_event); gstbasetrans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_progress_report_transform_ip); gstbasetrans_class->start = GST_DEBUG_FUNCPTR (gst_progress_report_start); @@ -374,19 +375,25 @@ gst_progress_report_report (GstProgressReport * filter, GTimeVal cur_time, } static gboolean -gst_progress_report_event (GstBaseTransform * trans, GstEvent * event) +gst_progress_report_sink_event (GstBaseTransform * trans, GstEvent * event) { GstProgressReport *filter; filter = GST_PROGRESS_REPORT (trans); - if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) { - GTimeVal cur_time; + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + { + GTimeVal cur_time; - g_get_current_time (&cur_time); - gst_progress_report_report (filter, cur_time, NULL); + g_get_current_time (&cur_time); + gst_progress_report_report (filter, cur_time, NULL); + break; + } + default: + break; } - return GST_BASE_TRANSFORM_CLASS (parent_class)->event (trans, event); + return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); } static GstFlowReturn -- 2.7.4