summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZeeshan Ali <first.last@nokia.com>2007-05-25 10:27:09 +0000
committerEdward Hervey <bilboed@bilboed.com>2009-02-21 17:48:53 +0100
commit30a1e0151802e78d6b72f9ca29213d91991c4e50 (patch)
treeae4a04f2df700fdd379fc45d3f1e614eaa54a491
parent8c4e0c21cef64ef603a3f68b9d2ebf6849717ada (diff)
downloadgst-plugins-bad-30a1e0151802e78d6b72f9ca29213d91991c4e50.tar.gz
gst-plugins-bad-30a1e0151802e78d6b72f9ca29213d91991c4e50.tar.bz2
gst-plugins-bad-30a1e0151802e78d6b72f9ca29213d91991c4e50.zip
[MOVED FROM GST-P-FARSIGHT] Ville's original patch to fix the traversal of dtmf event
20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz
-rw-r--r--gst/rtpmux/gstrtpmux.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gst/rtpmux/gstrtpmux.c b/gst/rtpmux/gstrtpmux.c
index fd687539..08ff73f8 100644
--- a/gst/rtpmux/gstrtpmux.c
+++ b/gst/rtpmux/gstrtpmux.c
@@ -181,6 +181,29 @@ gst_rtp_mux_class_init (GstRTPMuxClass * klass)
klass->chain_func = gst_rtp_mux_chain;
}
+static gboolean gst_rtp_mux_src_event (GstPad * pad,
+ GstEvent * event)
+{
+ gboolean result = TRUE;
+ GList *orig, *pads;
+
+ orig = pads = gst_pad_get_internal_links (pad);
+
+ while (pads) {
+ GstPad *eventpad = GST_PAD_CAST (pads->data);
+ pads = g_list_next (pads);
+
+ gst_event_ref (event);
+ result &= gst_pad_push_event (eventpad, event);
+ }
+
+ g_list_free (orig);
+
+ gst_event_unref (event);
+
+ return result;
+}
+
static void
gst_rtp_mux_init (GstRTPMux * rtp_mux)
{
@@ -189,6 +212,7 @@ gst_rtp_mux_init (GstRTPMux * rtp_mux)
rtp_mux->srcpad =
gst_pad_new_from_template (gst_element_class_get_pad_template (klass,
"src"), "src");
+ gst_pad_set_event_function (rtp_mux->srcpad, gst_rtp_mux_src_event);
gst_element_add_pad (GST_ELEMENT (rtp_mux), rtp_mux->srcpad);
rtp_mux->ssrc = DEFAULT_SSRC;