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 #541787.
This commit is contained in:
parent
cf3286dac7
commit
5e2a462789
11
ChangeLog
11
ChangeLog
@ -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>
|
2008-07-05 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
Patch by: Tero Saarni <tero dot saarni at gmail dot com>
|
Patch by: Tero Saarni <tero dot saarni at gmail dot com>
|
||||||
|
@ -105,6 +105,7 @@ gst_rtp_speex_depay_init (GstRtpSPEEXDepay * rtpspeexdepay,
|
|||||||
GstRtpSPEEXDepayClass * klass)
|
GstRtpSPEEXDepayClass * klass)
|
||||||
{
|
{
|
||||||
GST_BASE_RTP_DEPAYLOAD (rtpspeexdepay)->clock_rate = 8000;
|
GST_BASE_RTP_DEPAYLOAD (rtpspeexdepay)->clock_rate = 8000;
|
||||||
|
rtpspeexdepay->start_ts = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
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_marker (buf),
|
||||||
gst_rtp_buffer_get_timestamp (buf), gst_rtp_buffer_get_seq (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);
|
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;
|
return outbuf;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ typedef struct _GstRtpSPEEXDepayClass GstRtpSPEEXDepayClass;
|
|||||||
struct _GstRtpSPEEXDepay
|
struct _GstRtpSPEEXDepay
|
||||||
{
|
{
|
||||||
GstBaseRTPDepayload depayload;
|
GstBaseRTPDepayload depayload;
|
||||||
|
guint64 start_ts;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstRtpSPEEXDepayClass
|
struct _GstRtpSPEEXDepayClass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user