gst/rtp/gstrtpspeexdepay.*: Take timestamp from the RTP packet as a first step to fix problems with transmission over...

Original commit message from CVS:
Patch by: Tomasz Grobelny <tomasz at grobelny dot oswiecenia dot net>
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_process):
* gst/rtp/gstrtpspeexdepay.h:
Take timestamp from the RTP packet as a first step to fix problems
with transmission over RTP when the network is not reliable.
Fixes bug .
This commit is contained in:
Tomasz Grobelny 2008-07-07 10:16:07 +00:00 committed by Sebastian Dröge
parent cf3286dac7
commit 5e2a462789
3 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,14 @@
2008-07-07 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Patch by: Tomasz Grobelny <tomasz at grobelny dot oswiecenia dot net>
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_process):
* gst/rtp/gstrtpspeexdepay.h:
Take timestamp from the RTP packet as a first step to fix problems
with transmission over RTP when the network is not reliable.
Fixes bug #541787.
2008-07-05 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Patch by: Tero Saarni <tero dot saarni at gmail dot com>

View file

@ -105,6 +105,7 @@ gst_rtp_speex_depay_init (GstRtpSPEEXDepay * rtpspeexdepay,
GstRtpSPEEXDepayClass * klass)
{
GST_BASE_RTP_DEPAYLOAD (rtpspeexdepay)->clock_rate = 8000;
rtpspeexdepay->start_ts = 0;
}
static gint
@ -202,8 +203,15 @@ gst_rtp_speex_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
gst_rtp_buffer_get_marker (buf),
gst_rtp_buffer_get_timestamp (buf), gst_rtp_buffer_get_seq (buf));
/* nothing special to be done */
GstRtpSPEEXDepay *speexdepayload = GST_RTP_SPEEX_DEPAY (depayload);
/* apply correct timestamp from rtp packet */
outbuf = gst_rtp_buffer_get_payload_buffer (buf);
if (speexdepayload->start_ts == 0)
speexdepayload->start_ts = gst_rtp_buffer_get_timestamp (buf);
GST_BUFFER_TIMESTAMP (outbuf) =
gst_util_uint64_scale (GST_SECOND,
gst_rtp_buffer_get_timestamp (buf) - speexdepayload->start_ts,
depayload->clock_rate);
return outbuf;
}

View file

@ -37,6 +37,7 @@ typedef struct _GstRtpSPEEXDepayClass GstRtpSPEEXDepayClass;
struct _GstRtpSPEEXDepay
{
GstBaseRTPDepayload depayload;
guint64 start_ts;
};
struct _GstRtpSPEEXDepayClass