Commit 2f0a269d authored by Wim Taymans's avatar Wim Taymans
Browse files

gst-libs/gst/rtp/gstbasertpdepayload.c: Only copy timestamp on outgoing...

gst-libs/gst/rtp/gstbasertpdepayload.c: Only copy timestamp on outgoing packets if the depayloader did not set one.

Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_set_gst_timestamp):
Only copy timestamp on outgoing packets if the depayloader did not set
one.
Also copy duration on outgoing packets.
parent 70ad18de
2007-09-19 Wim Taymans <wim.taymans@gmail.com>
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_set_gst_timestamp):
Only copy timestamp on outgoing packets if the depayloader did not set
one.
Also copy duration on outgoing packets.
2007-09-19 Wim Taymans <wim.taymans@gmail.com>
 
* gst-libs/gst/rtp/gstbasertppayload.c: (copy_fixed),
......@@ -55,6 +55,7 @@ struct _GstBaseRTPDepayloadPrivate
gboolean discont;
GstClockTime timestamp;
GstClockTime duration;
};
/* Filter signals and args */
......@@ -260,6 +261,7 @@ gst_base_rtp_depayload_chain (GstPad * pad, GstBuffer * in)
timestamp = gst_segment_to_running_time (&filter->segment, GST_FORMAT_TIME,
timestamp);
priv->timestamp = timestamp;
priv->duration = GST_BUFFER_DURATION (in);
bclass = GST_BASE_RTP_DEPAYLOAD_GET_CLASS (filter);
......@@ -403,11 +405,19 @@ gst_base_rtp_depayload_set_gst_timestamp (GstBaseRTPDepayload * filter,
guint32 rtptime, GstBuffer * buf)
{
GstBaseRTPDepayloadPrivate *priv;
GstClockTime timestamp, duration;
priv = filter->priv;
/* apply incomming timestamp to outgoing buffer */
GST_BUFFER_TIMESTAMP (buf) = priv->timestamp;
timestamp = GST_BUFFER_TIMESTAMP (buf);
duration = GST_BUFFER_DURATION (buf);
/* apply last incomming timestamp and duration to outgoing buffer if
* not otherwise set. */
if (!GST_CLOCK_TIME_IS_VALID (timestamp))
GST_BUFFER_TIMESTAMP (buf) = priv->timestamp;
if (!GST_CLOCK_TIME_IS_VALID (duration))
GST_BUFFER_DURATION (buf) = priv->duration;
/* if this is the first buffer send a NEWSEGMENT */
if (filter->need_newsegment) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment