[Bug 751026] rtpjitterbuffer: calculate elapsed time based on only clock base time

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jun 16 21:26:54 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=751026

--- Comment #10 from Hyunjun <zzoon.ko at samsung.com> ---
In gst-rtsp-server, during making play response, sometimes it gets invalid
seqnum from last-sample in multiudpsink.(in gst_rtsp_stream_get_rtpinfo)

Case :  
1. Server's streaming shared media to a client.
2. Another client requests same media.
3. Server and the client start to negotiate.
4. Finally, server sends PLAY response to client. seqnum of RTP-Info in this
play response is exactly same as previous PLAY response's seqnum.

This is an example, which you can reproduce very easily.

---------- PLAY response to the first client ------------
RTSP response message 0xb705e030
 status line:
   code:   '200'
   reason: 'OK'
   version: '1.0'
 headers:
   key: 'CSeq', value: '7'
   key: 'RTP-Info', value:
'url=rtsp://127.0.0.1:8554/test/stream=0;seq=22808;rtptime=1168841023,
url=rtsp://127.0.0.1:8554/test/stream=1;seq=15530;rtptime=1679833381'
   key: 'Range', value: 'npt=0-62.95'
   key: 'Server', value: 'GStreamer RTSP server'
   key: 'Session', value: 'zZPFVRWjP85yuYzh'
 body: length 0

---------- PLAY response to the second client ------------
RTSP response message 0xb705e030
 status line:
   code:   '200'
   reason: 'OK'
   version: '1.0'
 headers:
   key: 'CSeq', value: '5'
   key: 'RTP-Info', value:
'url=rtsp://127.0.0.1:8554/test/stream=0;seq=22808;rtptime=1168841023,
url=rtsp://127.0.0.1:8554/test/stream=1;seq=16338;rtptime=1679833381'
   key: 'Range', value: 'npt=28.747845721-62.95'
   key: 'Server', value: 'GStreamer RTSP server'
   key: 'Session', value: 'pd9ib.qQhHopBJLl'
 body: length 0


You can see same seqnum(22808) of the first stream, while another stream's
seqnum(15530, 16338) is different.

It's because basesink doesn't call gst_base_sink_set_last_buffer every render
in case of BUFFER_LIST.
Actually, in this example, rtph264pay sends BUFFER_LIST.
To be confirmed, if I set large mtu size to rtph264pay to force to send a
BUFFER in test-mp4, it's working fine.

I'm wondering if this issue should be fixed or not and what part should I fix
it?

Instead of getting last-sample from sink, get information from payloader?
(As description says, it's more accurate to get information from sink)

Or somewhere else could be fixed?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list