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
This commit is contained in:
American Dynamics 2010-08-18 12:34:07 +02:00 committed by Wim Taymans
parent c3a519494b
commit 1f19649695

View file

@ -278,7 +278,8 @@ gst_base_rtp_depayload_chain (GstPad * pad, GstBuffer * in)
if (G_UNLIKELY (!gst_rtp_buffer_validate (in))) if (G_UNLIKELY (!gst_rtp_buffer_validate (in)))
goto invalid_buffer; 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); timestamp = GST_BUFFER_TIMESTAMP (in);
/* convert to running_time and save the timestamp, this is the timestamp /* 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->play_scale = 1.0;
priv->next_seqnum = -1; priv->next_seqnum = -1;
priv->negotiated = FALSE; priv->negotiated = FALSE;
priv->discont = FALSE;
break; break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING: case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
break; break;