From: <wt...@ke...> - 2010-08-18 10:45:07
|
Module: gst-plugins-base Branch: master Commit: 1f19649695c2f5c6313b33f0d40ffe5a3df70220 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1f19649695c2f5c6313b33f0d40ffe5a3df70220 Author: American Dynamics <GStreamer-Bugs at tycosp.com> Date: Wed Aug 18 12:34:07 2010 +0200 basertpdepay: don't clear the discont flag too early Set the discont flag when we receive a DISCONT buffer and only clear the discont state when we pushed out a DISCONT buffer. Fixes #626869 --- gst-libs/gst/rtp/gstbasertpdepayload.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/gst-libs/gst/rtp/gstbasertpdepayload.c b/gst-libs/gst/rtp/gstbasertpdepayload.c index 4dca0ca..1bdf523 100644 --- a/gst-libs/gst/rtp/gstbasertpdepayload.c +++ b/gst-libs/gst/rtp/gstbasertpdepayload.c @@ -278,7 +278,8 @@ gst_base_rtp_depayload_chain (GstPad * pad, GstBuffer * in) if (G_UNLIKELY (!gst_rtp_buffer_validate (in))) goto invalid_buffer; - priv->discont = GST_BUFFER_IS_DISCONT (in); + if (!priv->discont) + priv->discont = GST_BUFFER_IS_DISCONT (in); timestamp = GST_BUFFER_TIMESTAMP (in); /* convert to running_time and save the timestamp, this is the timestamp @@ -642,6 +643,7 @@ gst_base_rtp_depayload_change_state (GstElement * element, priv->play_scale = 1.0; priv->next_seqnum = -1; priv->negotiated = FALSE; + priv->discont = FALSE; break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; |