From eaef193d082e0e6c87736359c9284ba6640683c9 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 5 Feb 2018 16:57:52 +1100 Subject: dtls: drop upstream segment and stream-start events Fixes tests with GstHarness We will push our own from the srcpad task. --- ext/dtls/gstdtlsenc.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ext/dtls/gstdtlsenc.c b/ext/dtls/gstdtlsenc.c index d6c6402f7..5b3bb26af 100644 --- a/ext/dtls/gstdtlsenc.c +++ b/ext/dtls/gstdtlsenc.c @@ -96,6 +96,7 @@ static gboolean src_activate_mode (GstPad *, GstObject *, GstPadMode, static void src_task_loop (GstPad *); static GstFlowReturn sink_chain (GstPad *, GstObject *, GstBuffer *); +static gboolean sink_event (GstPad * pad, GstObject * parent, GstEvent * event); static void on_key_received (GstDtlsConnection *, gpointer key, guint cipher, guint auth, GstDtlsEnc *); @@ -355,6 +356,7 @@ gst_dtls_enc_request_new_pad (GstElement * element, } gst_pad_set_chain_function (sink, GST_DEBUG_FUNCPTR (sink_chain)); + gst_pad_set_event_function (sink, GST_DEBUG_FUNCPTR (sink_event)); ret = gst_pad_set_active (sink, TRUE); g_warn_if_fail (ret); @@ -493,6 +495,29 @@ sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) return GST_FLOW_OK; } + +static gboolean +sink_event (GstPad * pad, GstObject * parent, GstEvent * event) +{ + gboolean ret = FALSE; + + switch (GST_EVENT_TYPE (event)) { + /* Drop segment, stream-start as we will push our own from the src pad + * task. + * FIXME: do we need any information from upstream for pushing our own? */ + case GST_EVENT_SEGMENT: + case GST_EVENT_STREAM_START: + gst_event_unref (event); + ret = TRUE; + break; + default: + ret = gst_pad_event_default (pad, parent, event); + break; + } + + return ret; +} + static void on_key_received (GstDtlsConnection * connection, gpointer key, guint cipher, guint auth, GstDtlsEnc * self) -- cgit v1.2.1