After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 482541 - Broken RTP timestamps
Broken RTP timestamps
Status: RESOLVED WONTFIX
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-10-02 11:35 UTC by Laurent Glayal
Modified: 2007-11-16 17:18 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Laurent Glayal 2007-10-02 11:35:08 UTC
Hi,
In current gstbasertpdepayload.c there is the following comment ::

    /* we pass rtptime as backward compatibility, in reality, the incomming
     * buffer timestamp is always applied to the outgoing packet. */

The last function called is  gst_base_rtp_depayload_push_full() and does not 
use incoming rtp timestamp.

So the temporal reference seems to be the creation time of the incoming buffer 
and not the RTP timestamp.

If some buffers come in in the same millisecond (for ex.), due to network 
congestion, all the buffers will be created with a similar timestamp, rtp timestamp information is lost, so the following pipeline outputs erroneous rtp timestamps :

udpsrc ! rtpamrdepay ! rtpamrpay ! udpsink

Regards.
Comment 1 Wim Taymans 2007-10-03 14:29:43 UTC
The timing rules for RTP as outlined in http://webcvs.freedesktop.org/gstreamer/gst-plugins-good/gst/rtp/README?revision=1.13&view=markup state that the RTP timestamp in the payloaded packet equals the capture timestamp of the packet at the sender side (which is the GStreamer timestamp). We need this to reconstruct the timing at the sender in the normal "alsasrc ! amrnbenc ! rtpamrpay ! uspsink" case.

There is not really any way to get this right currently unless we start creating the RTP timestamp from the buffer OFFSET field or so.



Comment 2 Laurent Glayal 2007-10-08 07:13:25 UTC
Well,
So with a jitter buffer our pipeline works fine,

udpsrc ! gstrtpjitterbuffer ! rtpamrdepay ! rtpamrpay ! udpsink

Thanks for your help.
Regards.