GNOME Bugzilla – Bug 793094
rtpbasepayload: inconsistent units for running-time in stats
Last modified: 2018-11-03 12:03:14 UTC
The rtpbasepayloader reports the running time of the last processed buffer in the stats property. The unit of running time can be either ns or rtptime ticks depending on the setting of perfect-rtptime. The gst-rtsp-server uses the running time to calculate the clock base for the RTP-Info header and assumes that running time is in ns and scales it to rtptime ticks afterwards. If the streams do not start at the same time, this can lead to an erroneous clock-base in the RTP-info and out of sync streams on the receiver. I would expect that the running time in the stats is always in ns, but I am not sure about the actually intended design. Even the test-case for the rptbasepayloader rtp_base_payload_property_stats_test() switches the units of running time depending on the setting of perfect-rtptime.
The running-time should definitely always be in the same unit (ns), so this looks like a bug. If anyone needs it in rtp clock units, then we should add an extra entry to the stats buffer with a new name.
Created attachment 368657 [details] [review] 0001-rtpbasepayload-always-report-running_time-in-ns.patch I attached a patch to always calculate running_time in ns and fix the related test case. I'm not completely sure about the perfect-rtptime=true path and would appreciate someone having a close look at it.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/417.