From a54c4d6bc4463beb2dbf263546f76606cfa0878f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 26 Jan 2012 10:37:52 +0100 Subject: [PATCH] matroskamux: Update for the new collectpads2 event handling API --- gst/matroska/matroska-mux.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index 5515c24f7b..b193ecaa1a 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -735,6 +735,7 @@ gst_matroska_mux_handle_sink_event (GstCollectPads2 * pads, GstMatroskaMux *mux; GstPad *pad; GstTagList *list; + gboolean ret = FALSE; mux = GST_MATROSKA_MUX (user_data); collect_pad = (GstMatroskaPad *) data; @@ -749,7 +750,7 @@ gst_matroska_mux_handle_sink_event (GstCollectPads2 * pads, collect_pad = (GstMatroskaPad *) gst_pad_get_element_private (pad); gst_event_parse_caps (event, &caps); - collect_pad->capsfunc (pad, caps); + ret = collect_pad->capsfunc (pad, caps); gst_event_unref (event); event = NULL; break; @@ -781,6 +782,7 @@ gst_matroska_mux_handle_sink_event (GstCollectPads2 * pads, gst_event_unref (event); /* handled this, don't want collectpads to forward it downstream */ event = NULL; + ret = TRUE; break; } case GST_EVENT_SEGMENT:{ @@ -788,9 +790,11 @@ gst_matroska_mux_handle_sink_event (GstCollectPads2 * pads, gst_event_parse_segment (event, &segment); if (segment->format != GST_FORMAT_TIME) { - gst_event_unref (event); - event = NULL; + ret = FALSE; } + gst_event_unref (event); + event = NULL; + ret = TRUE; break; } case GST_EVENT_CUSTOM_DOWNSTREAM:{ @@ -827,14 +831,18 @@ gst_matroska_mux_handle_sink_event (GstCollectPads2 * pads, /* transform into private data for stream; text form */ gst_matroska_mux_build_vobsub_private (context, clut); } - break; } + /* fall through */ default: + ret = gst_pad_event_default (data->pad, GST_OBJECT (mux), event); + break; + case GST_EVENT_EOS: + gst_event_unref (event); + ret = TRUE; break; } - /* now GstCollectPads2 can take care of the rest, e.g. EOS */ - return (event == NULL); + return ret; } static void