From 93467d73545ae454ae404b9bbfeb6b3549aae0b4 Mon Sep 17 00:00:00 2001 From: Markus Handell Date: Fri, 20 Sep 2024 17:19:43 +0200 Subject: [PATCH] add WebRTC-specific interactions with capture/receive/RTP timestamps --- index.html | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 7443dbe..4e33291 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@ // Add additional editors here. // https://github.com/w3c/respec/wiki/editors ], - "xref": ["webrtc", "hr-time", "mediacapture-streams", "webrtc-stats"], + "xref": ["webrtc", "hr-time", "mediacapture-streams", "webrtc-stats", "mediacapture-extensions"], "shortName": "webrtc-extensions", "specStatus": "ED", "subjectPrefix": "[webrtc-extensions]" @@ -920,6 +920,42 @@

- + +
+

Timestamp behavior

+

RTCRtpSender timestamp effects on packet NTP and RTP timestamps

+

+ The user agent defines a frame timestamp being the same as the [= capture timestamp =] of the frame being sent on the {{RTCRtpSender}} {{MediaStreamTrack}} if it is set. + If it is unset the user agent estimates a timestamp from the sent frame's [= presentation timestamp =] together with the + time it was received by the {{RTCRtpSender}}. +

+

+ The NTP and RTP timestamps of the encoded frame corresponding to the frame being sent on the {{RTCRtpSender}} {{MediaStreamTrack}} are sourced from the [= frame timestamp =]. +

+ +

RTCRtpReceiver timestamps

+

Remote capture timestamp

+

+ + For a frame produced in a {{RTCRtpReceiver}} track, the user agent computes a + remote capture timestamp. It is a best-effort estimate of the local capture + time on the sender translated to the receiver clock, and can use methods like using RTCP SR + as specified in [[?RFC3550]] Section 6.4.1, or by other alternative means if use by RTCP SR + isn't feasible. +

+ Each frame's [= capture timestamp =] is set to the [= remote capture timestamp =], if available. +

+

Received RTP timestamp

+

+ For a frame produced in a {{RTCRtpReceiver}} track, the frame's [=RTP timestamp=] is set + from the RTP timestamp of constituent packets of the corresponding received encoded frame. +

+

Receive timestamp

+

+ For a frame produced in a {{RTCRtpReceiver}} track, the [=receive timestamp=] is set + as the time the corresponding encoded frame was received by the platform, i.e. the time at which the + last packet belonging to this frame was received over the network. +

+