From a5fed6c2619ff196b620fd7c2669313eaf143c8f Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 25 Jun 2013 14:20:37 +0200 Subject: [PATCH] rdt: forward sticky events --- gst/realmedia/rdtmanager.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gst/realmedia/rdtmanager.c b/gst/realmedia/rdtmanager.c index 2e5d463ae7..a2d1b70ac4 100644 --- a/gst/realmedia/rdtmanager.c +++ b/gst/realmedia/rdtmanager.c @@ -1,5 +1,6 @@ /* GStreamer * Copyright (C) <2005,2006> Wim Taymans + * <2013> Wim Taymans * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -251,6 +252,16 @@ create_session (GstRDTManager * rdtmanager, gint id) return sess; } +static gboolean +forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + GstPad *srcpad = GST_PAD_CAST (user_data); + + gst_pad_push_event (srcpad, gst_event_ref (*event)); + + return TRUE; +} + static gboolean activate_session (GstRDTManager * rdtmanager, GstRDTManagerSession * session, guint32 ssrc, guint8 pt) @@ -306,6 +317,8 @@ activate_session (GstRDTManager * rdtmanager, GstRDTManagerSession * session, gst_pad_set_active (session->recv_rtp_src, TRUE); + gst_pad_sticky_events_foreach (session->recv_rtp_sink, forward_sticky_events, + session->recv_rtp_src); gst_pad_set_caps (session->recv_rtp_src, caps); gst_caps_unref (caps); @@ -519,7 +532,7 @@ gst_rdt_manager_class_init (GstRDTManagerClass * g_class) gst_element_class_set_static_metadata (gstelement_class, "RTP Decoder", "Codec/Parser/Network", "Accepts raw RTP and RTCP packets and sends them forward", - "Wim Taymans "); + "Wim Taymans "); GST_DEBUG_CATEGORY_INIT (rdtmanager_debug, "rdtmanager", 0, "RTP decoder"); }