Questions about buffer's timestamp in RTP application

Wim Taymans wim.taymans at gmail.com
Wed Dec 12 07:00:48 PST 2012


On 12/12/2012 02:14 PM, cee1 wrote:
> Hi, all
>
> I'm doing some experiment with gstreamer 0.10 in RTP application:
> * Sender:
> gst-launch-0.10 filesrc location=sample.ogg ! decodebin2 ! \
>                  x264enc tune=zerolatency byte-stream=true bitrate=1024
> vbv-buf-capacity=300 \
>                  bframes=0 b-pyramid=true weightb=true me=dia key-int-max=48 ! \
>                  rtph264pay ! udpsink
>
> * Receiver:
> gst-launch-0.10 udpsrc
> caps="application/x-rtp,media=(string)video,clock-rate=(int)90000" !
> rtph264depay ! ffdec_h264 ! autovideosink
>
> Went through the source, I found rtph264depay doesn't use RTP
> timestamp and -- It seems the gstbuffer's timestamp is packet's
> received time, so
> 1. What  does RTP timestamp do ?

Nothing if you don't use gstrtpjitterbuffer. With gstrtpjitterbuffer it 
is used to estimate the clock drift between the sender and receiver and 
it is used to create a GStreamer timestamp on buffers.

> 2. How does the receiver play properly? I mean without new segment
> event and gstbuffer's timestamp, how can the receiver play it at a
> proper rate(e.g. 24FPS) ?

Without a gstrtpjitterbuffer, buffers are played immediately when they 
are decoded/received. With a gstrtpjitterbuffer they are played based on 
the rtp timestamp and the estimated clock drift.

Wim

>
>
>



More information about the gstreamer-devel mailing list