From e2a22e497c78b6d196e91a429d2a10fb005daea5 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 12 Feb 2006 13:10:20 +0000 Subject: [PATCH] gst/rtp/gstrtpamrpay.c: set timestamps if no incoming timestamps set Original commit message from CVS: * gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_handle_buffer): set timestamps if no incoming timestamps set --- ChangeLog | 5 +++++ gst/rtp/gstrtpamrpay.c | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c370b01966..2ecd5889a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-02-12 Thomas Vander Stichele + + * gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_handle_buffer): + set timestamps if no incoming timestamps set + 2006-02-11 Tim-Philipp Müller * gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size), diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c index da9944e5cb..27588d8c6f 100644 --- a/gst/rtp/gstrtpamrpay.c +++ b/gst/rtp/gstrtpamrpay.c @@ -36,7 +36,7 @@ GST_DEBUG_CATEGORY (rtpamrpay_debug); static GstElementDetails gst_rtp_amrpay_details = { "RTP packet parser", "Codec/Payloader/Network", - "Payode AMR audio into RTP packets (RFC 3267)", + "Payload-encode AMR audio into RTP packets (RFC 3267)", "Wim Taymans " }; @@ -230,8 +230,16 @@ gst_rtp_amr_pay_handle_buffer (GstBaseRTPPayload * basepayload, /* now alloc output buffer */ outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0); - /* copy timestamp */ - GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + /* copy timestamp, or fabricate one */ + if (timestamp != GST_CLOCK_TIME_NONE) + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + else { + /* AMR (nb) and AMR-WB both have 20 ms per frame */ + /* FIXME: when we do more than one AMR frame per packet, fix this */ + gint count = basepayload->seqnum - basepayload->seqnum_base; + + GST_BUFFER_TIMESTAMP (outbuf) = count * 20 * GST_MSECOND; + } /* get payload, this is now writable */ payload = gst_rtp_buffer_get_payload (outbuf);