From 8ad0baccc2c790c3b07a4ba87ff1202cc2ffdadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 25 Mar 2015 13:51:30 +0000 Subject: [PATCH] rtpklvdepay: add the SPARSE flag to the outgoing stream-start event --- gst/rtp/gstrtpklvdepay.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gst/rtp/gstrtpklvdepay.c b/gst/rtp/gstrtpklvdepay.c index eeefe7e45c..424f6aade5 100644 --- a/gst/rtp/gstrtpklvdepay.c +++ b/gst/rtp/gstrtpklvdepay.c @@ -68,6 +68,8 @@ static gboolean gst_rtp_klv_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps); static GstBuffer *gst_rtp_klv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp); +static gboolean gst_rtp_klv_depay_handle_event (GstRTPBaseDepayload * depay, + GstEvent * ev); static void gst_rtp_klv_depay_reset (GstRtpKlvDepay * klvdepay); @@ -97,6 +99,7 @@ gst_rtp_klv_depay_class_init (GstRtpKlvDepayClass * klass) rtpbasedepayload_class->set_caps = gst_rtp_klv_depay_setcaps; rtpbasedepayload_class->process_rtp_packet = gst_rtp_klv_depay_process; + rtpbasedepayload_class->handle_event = gst_rtp_klv_depay_handle_event; } static void @@ -127,6 +130,25 @@ gst_rtp_klv_depay_reset (GstRtpKlvDepay * klvdepay) klvdepay->last_rtp_ts = -1; } +static gboolean +gst_rtp_klv_depay_handle_event (GstRTPBaseDepayload * depay, GstEvent * ev) +{ + switch (GST_EVENT_TYPE (ev)) { + case GST_EVENT_STREAM_START:{ + GstStreamFlags flags; + + ev = gst_event_make_writable (ev); + gst_event_parse_stream_flags (ev, &flags); + gst_event_set_stream_flags (ev, flags | GST_STREAM_FLAG_SPARSE); + break; + } + default: + break; + } + + return GST_RTP_BASE_DEPAYLOAD_CLASS (parent_class)->handle_event (depay, ev); +} + static gboolean gst_rtp_klv_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) {