diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-05-30 19:09:11 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-05-30 19:09:11 +0000 |
commit | dd75c7776c598ffa58b4038c4bb77fa97d86a95c (patch) | |
tree | 9e07b74b898c5710c7d4a2d536aa50a83c1533aa /gst | |
parent | 22c7be80df659f645786d8fca5483329e26456ae (diff) |
Implement an element event handler.
Original commit message from CVS:
Implement an element event handler.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/avi/gstavidemux.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 5b348f1b..77bbcefd 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -153,6 +153,8 @@ static void gst_avi_demux_init (GstAviDemux *avi_demux); static void gst_avi_demux_loop (GstElement *element); +static gboolean gst_avi_demux_send_event (GstElement *element, GstEvent *event); + static gboolean gst_avi_demux_handle_src_event (GstPad *pad, GstEvent *event); static gboolean gst_avi_demux_handle_src_query (GstPad *pad, GstPadQueryType type, GstFormat *format, gint64 *value); @@ -207,6 +209,7 @@ gst_avi_demux_class_init (GstAviDemuxClass *klass) gobject_class->get_property = gst_avi_demux_get_property; gstelement_class->change_state = gst_avi_demux_change_state; + gstelement_class->send_event = gst_avi_demux_send_event; } static void @@ -855,6 +858,26 @@ gst_avi_demux_sync_streams (GstAviDemux *avi_demux, guint64 time) } static gboolean +gst_avi_demux_send_event (GstElement *element, GstEvent *event) +{ + GList *pads; + + pads = gst_element_get_pad_list (element); + + while (pads) { + GstPad *pad = GST_PAD (pads->data); + + if (GST_PAD_DIRECTION (pad) == GST_PAD_SRC) { + return gst_avi_demux_handle_src_event (pad, event); + } + + pads = g_list_next (pads); + } + + return FALSE; +} + +static gboolean gst_avi_demux_handle_src_event (GstPad *pad, GstEvent *event) { gboolean res = TRUE; |