Skip to content

Commit c16a300

Browse files
committed
Ensure receiver-side transform order is the same as sender-side transform order
1 parent f9d5d59 commit c16a300

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

index.bs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,13 @@ The <dfn>writeEncodedData</dfn> algorithm is given a |rtcObject| as parameter an
124124
* If |rtcObject| is a {{RTCRtpReceiver}}, enqueue it to |rtcObject|'s decoder, to be processed [=in parallel=].
125125
5. Return [=a promise resolved with=] undefined.
126126

127+
On sender side, as part of [=readEncodedData=], frames produced by |rtcObject|'s encoder MUST be enqueued in |rtcObject|.`[[readable]]` in the encoder's output order.
128+
As [=writeEncodedData=] ensures that the transform cannot reorder frames, the encoder's output order is also the order followed by packetizers to generate RTP packets and assign RTP packet sequence numbers.
129+
130+
On receiver side, as part of [=readEncodedData=], frames produced by |rtcObject|'s packetizer MUST be enqueued in |rtcObject|.`[[readable]]` in the same encoder's output order.
131+
To ensure the order is respected, the packetizer will typically use RTP packet sequence numbers to reorder RTP packets as needed before enqueuing frames in |rtcObject|.`[[readable]]`.
132+
As [=writeEncodedData=] ensures that the transform cannot reorder frames, this will be the order expected by |rtcObject|'s decoder.
133+
127134
## Extension attribute ## {#attribute}
128135

129136
A RTCRtpTransform has two private slots called `[[readable]]` and `[[writable]]`.

0 commit comments

Comments
 (0)