From: Wim Taymans Date: Thu, 23 Dec 2010 15:26:07 +0000 (+0100) Subject: mp4gdepay: flush state on flush-stop X-Git-Tag: 1.19.3~509^2~7916^2~281 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1dd71cc63f01e48610e85fd72d28e4f089183d0c;p=platform%2Fupstream%2Fgstreamer.git mp4gdepay: flush state on flush-stop --- diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c index 67d5217..02ac8d6 100644 --- a/gst/rtp/gstrtpmp4gdepay.c +++ b/gst/rtp/gstrtpmp4gdepay.c @@ -135,6 +135,8 @@ static gboolean gst_rtp_mp4g_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps); static GstBuffer *gst_rtp_mp4g_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf); +static gboolean gst_rtp_mp4g_depay_handle_event (GstBaseRTPDepayload * filter, + GstEvent * event); static GstStateChangeReturn gst_rtp_mp4g_depay_change_state (GstElement * element, GstStateChange transition); @@ -173,6 +175,7 @@ gst_rtp_mp4g_depay_class_init (GstRtpMP4GDepayClass * klass) gstbasertpdepayload_class->process = gst_rtp_mp4g_depay_process; gstbasertpdepayload_class->set_caps = gst_rtp_mp4g_depay_setcaps; + gstbasertpdepayload_class->handle_event = gst_rtp_mp4g_depay_handle_event; GST_DEBUG_CATEGORY_INIT (rtpmp4gdepay_debug, "rtpmp4gdepay", 0, "MP4-generic RTP Depayloader"); @@ -711,6 +714,28 @@ short_payload: } } +static gboolean +gst_rtp_mp4g_depay_handle_event (GstBaseRTPDepayload * filter, GstEvent * event) +{ + gboolean ret; + GstRtpMP4GDepay *rtpmp4gdepay; + + rtpmp4gdepay = GST_RTP_MP4G_DEPAY (filter); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_STOP: + gst_rtp_mp4g_depay_reset (rtpmp4gdepay); + break; + default: + break; + } + + ret = + GST_BASE_RTP_DEPAYLOAD_CLASS (parent_class)->handle_event (filter, event); + + return ret; +} + static GstStateChangeReturn gst_rtp_mp4g_depay_change_state (GstElement * element, GstStateChange transition)