baseparse: Allow chaining of subclass event handlers
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Wed, 22 Sep 2010 10:37:24 +0000 (16:07 +0530)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 8 Apr 2011 17:07:07 +0000 (18:07 +0100)
This allows the child class to chain its event handler with
GstBaseParse, so that subclasses don't have to duplicate all the default
event handling logic.

https://bugzilla.gnome.org/show_bug.cgi?id=622276

gst/audioparsers/gstbaseparse.c

index 8c7a722..3bea83b 100644 (file)
@@ -361,7 +361,6 @@ gst_base_parse_class_init (GstBaseParseClass * klass)
   /* Default handlers */
   klass->check_valid_frame = gst_base_parse_check_frame;
   klass->parse_frame = gst_base_parse_parse_frame;
-  klass->event = gst_base_parse_sink_eventfunc;
   klass->src_event = gst_base_parse_src_eventfunc;
   klass->is_seekable = gst_base_parse_is_seekable;
   klass->convert = gst_base_parse_convert;
@@ -549,6 +548,9 @@ gst_base_parse_sink_event (GstPad * pad, GstEvent * event)
       handled = bclass->event (parse, event);
 
     if (!handled)
+      handled = gst_base_parse_sink_eventfunc (parse, event);
+
+    if (!handled)
       ret = gst_pad_event_default (pad, event);
   }