@@ -72,6 +72,19 @@ <h2>Terminology</h2>
7272 < p >
7373 The process of < dfn data-lt ="free|freed|freeing "> freeing</ dfn > a candidate is defined in [[RFC8445]] Section 8.3.
7474 </ p >
75+
76+ < p >
77+ <!-- TODO: use the xref mechanism when mediacapture-extensions spec status is cleared up.
78+ See https://github.com/w3c/mediacapture-extensions/issues/132 -->
79+ The following terms are defined in < a href ="https://w3c.github.io/mediacapture-extensions "> mediacapture-extensions</ a >
80+ < a href ="https://w3c.github.io/mediacapture-extensions/#video-timestamp-concepts/ "> video timestamp concepts</ a >
81+ </ p >
82+ < ul >
83+ < li > < dfn > presentation timestamp</ dfn > </ li >
84+ < li > < dfn > capture timestamp</ dfn > </ li >
85+ < li > < dfn > receive timestamp</ dfn > </ li >
86+ < li > < dfn > RTP timestamp</ dfn > </ li >
87+ </ ul >
7588 </ section >
7689 < section id ="ice-csp ">
7790 < h3 >
@@ -1540,6 +1553,46 @@ <h2>Event summary</h2>
15401553 </ tbody >
15411554 </ table >
15421555 </ section >
1556+ < section class ="informative ">
1557+ < h2 > Timestamp behavior</ h2 >
1558+ < h2 > RTCRtpSender timestamp effects on packet NTP and RTP timestamps</ h2 >
1559+ < p >
1560+ The user agent defines a < dfn class ="export "> frame timestamp</ dfn > being the same as the [=capture timestamp=]
1561+ of the frame being produced on the {{RTCRtpSender}} {{MediaStreamTrack}} if it is set.
1562+ If it is unset the user agent estimates a timestamp from the sent frame's [= presentation timestamp =] together with the
1563+ time it was received by the {{RTCRtpSender}}.
1564+ </ p >
1565+ < p >
1566+ The NTP and RTP timestamps of the encoded frame corresponding to the frame being produced on the {{RTCRtpSender}}
1567+ {{MediaStreamTrack}} are sourced from the [= frame timestamp =].
1568+ </ p >
1569+ < p >
1570+ The [=RTP timestamp=] of frames being produced on the {{RTCRtpSender}} is ignored.
1571+ </ p >
1572+ < h2 > RTCRtpReceiver timestamps</ h2 >
1573+ < h3 > Remote capture timestamp</ h3 >
1574+ < p >
1575+ <!-- TODO: How this is estimated is under specified and should be fixed, but the section holds the requestVideoFrameCallback text for now -->
1576+ For a frame produced in a {{RTCRtpReceiver}} track, the user agent computes a
1577+ < dfn class ="export "> remote capture timestamp</ dfn > . It is a best-effort estimate of the local capture
1578+ time on the sender translated to the receiver clock, and can use methods like using RTCP SR
1579+ as specified in [[?RFC3550]] Section 6.4.1, or by other alternative means if use by RTCP SR
1580+ isn't feasible.
1581+ </ p > < p >
1582+ Each frame's [= capture timestamp =] is set to the [= remote capture timestamp =], if available.
1583+ </ p >
1584+ < h3 > Received RTP timestamp</ h3 >
1585+ < p >
1586+ For a frame produced in a {{RTCRtpReceiver}} track, the frame's [=RTP timestamp=] is set
1587+ from the RTP timestamp of constituent packets of the corresponding received encoded frame.
1588+ </ p >
1589+ < h3 > Receive timestamp</ h3 >
1590+ < p >
1591+ For a frame produced in a {{RTCRtpReceiver}} track, the [=receive timestamp=] is set
1592+ as the time the corresponding encoded frame was received by the platform, i.e. the time at which the
1593+ last packet belonging to this frame was received over the network.
1594+ </ p >
1595+ </ section >
15431596 < section class ="informative " id ="security-considerations ">
15441597 < h2 >
15451598 Security Considerations
0 commit comments