mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-12 19:14:16 +00:00
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
3 changed files with 21 additions and 1 deletions
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>
|
||||
|
||||
Patch by: Tero Saarni <tero dot saarni at gmail dot com>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ typedef struct _GstRtpSPEEXDepayClass GstRtpSPEEXDepayClass;
|
|||
struct _GstRtpSPEEXDepay
|
||||
{
|
||||
GstBaseRTPDepayload depayload;
|
||||
guint64 start_ts;
|
||||
};
|
||||
|
||||
struct _GstRtpSPEEXDepayClass
|
||||
|
|
Loading…
Reference in a new issue