You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first byte of the RTP payload is the SFrame RTP header.
109
+
The first byte of the RTP payload is the SFrame payload descriptor.
110
110
111
-
The S bit of the SFrame RTP header MUST be 0 for all fragments except for the first one of the SFrame frame.
111
+
The S bit of the SFrame payload descriptor MUST be 0 for all fragments except for the first one of the SFrame frame.
112
112
113
-
The E bit of the SFrame RTP header MUST be 0 for all fragments except for the last one of the SFrame frame.
113
+
The E bit of the SFrame payload descriptor MUST be 0 for all fragments except for the last one of the SFrame frame.
114
114
115
-
The 6 remaining bits of the SFrame RTP header are reserved for future use.
115
+
The 6 remaining bits of the SFrame payload descriptor are reserved for future use.
116
116
117
117
The payload type (PT) identifies the format of the media encrypted with SFrame.
118
118
@@ -131,16 +131,16 @@ For per-packet SFrame, the following processing is done, with a media frame as i
131
131
1. Generate a group of RTP media packets from the media frame using a media-format-specific packetizer.
132
132
The media-format-specific packetizer needs to be made aware of the SFrame overhead that happens to each RTP packet.
133
133
2. For each RTP packet of the group, encrypt its payload with SFrame.
134
-
3. Prepend to each RTP packet payload a SFrame RTP header with the S and E bits set to 1.
134
+
3. Prepend to each RTP packet payload a SFrame payload descriptor with the S and E bits set to 1.
135
135
4. Send each RTP packet of the group.
136
136
137
137
For per-frame SFrame, the following processing is done, with a media frame as input:
138
138
139
139
1. Generate a SFrame ciphertext from the media frame data.
140
140
2. Fragment the SFrame ciphertext in a group of payloads so that RTP packets generated from them do not exceed the network maximum transmission unit size.
141
-
3. Prepend a zero byte as the SFrame RTP header to all payloads of the group.
142
-
4. Set the first bit S of the SFrame RTP header of the first packet to 1.
143
-
5. Set the second bit E of the SFrame RTP header of the last packet to 1.
141
+
3. Prepend a zero byte as the SFrame payload descriptor to all payloads of the group.
142
+
4. Set the first bit S of the SFrame payload descriptor of the first packet to 1.
143
+
5. Set the second bit E of the SFrame payload descriptor of the last packet to 1.
144
144
6. Generate a group of RTP packets from the group of payloads, using the media frame to generate the RTP header, including RTP header extensions.
145
145
7. Send each RTP packet of the RTP packet group.
146
146
@@ -149,16 +149,16 @@ For per-frame SFrame, the following processing is done, with a media frame as in
149
149
Reception of SFrame packets is done as follows:
150
150
151
151
1. The fragments of a given SFrame ciphertext are grouped together in order of the RTP sequence number,
152
-
the first packet of the group having its S bit set to 1 and the last packet of the group havint its E bit set to 1.
153
-
All packets in between the first and last needs to be in the group.
152
+
the first packet of the group having its S bit set to 1 and the last packet of the group having its E bit set to 1.
153
+
All packets between the first and last need to be in the group.
154
154
2. Concatenate the payloads of all packets of the group to form the SFrame ciphertext.
155
155
3. Decrypt the SFrame ciphertext to obtain the media decrypted data.
156
156
4. If per-packet SFrame is being used, the following processing is done:
157
-
1. assert that the group of packets consist of a single packet.
157
+
1. Assert that the group of packets consists of a single packet.
158
158
2. Set the media decrypted data as the payload of the packet and send the packet to the media-format-specific RTP depacketizer.
159
159
3. If the depacketizer cannot generate a media frame yet, abort these steps. Otherwise, generate a media frame from the depacketizer.
160
160
5. If per-frame SFrame is being used, the following processing is done:
161
-
1. assert that the group of packets all have the same payload type.
161
+
1. Assert that the group of packets all have the same payload type.
162
162
2. Extract the media metadata from the group of packets.
163
163
3. Generate a media frame from the media decrypted data and the media metadata.
164
164
6. Send the media frame to the receiving pipeline.
@@ -173,19 +173,19 @@ endpoint is expecting to receive RTP packets encrypted with SFrame for that medi
173
173
174
174
Once each peer has verified that the other party expects to receive SFrame RTP packets, senders are expected to send SFrame encrypted RTP packets.
175
175
If one peer expects to use SFrame for a media section and identifies that the other peer does not support it, the peer
176
-
is expected to stop the transceiver associated to the media section, which will generate a zero port for that m-section.
176
+
is expected to stop the transceiver associated with the media section, which will generate a zero port for that m-section.
177
177
178
178
When SFrame is in use for that media section, it will apply to the relevant media encodings defined for that media section.
179
-
This includes RTP payload types bound to media packetizers and media depacketizers as defined in {{!RFC7656}}, typically audio formats such as Opus and RTP video formats such as H264.
179
+
This includes RTP payload types bound to media packetizers and media depacketizers as defined in {{!RFC7656}}, typically audio formats such as Opus and RTP video formats such as H264.
180
180
This notably includes RTP payload types representing {{WebRTC_Encoded_Transform}} [encoded video frame formats](https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedvideoframe-data) and [encoded audio frame formats](https://w3c.github.io/webrtc-encoded-transform/#dom-rtcencodedaudioframe-data).
181
181
182
-
This does not include RTP-Based Redundancy mechanisms as defined in {!RFC7656}}.
183
-
For instance, RTX defined in {{!RFC4588}} will retransmit SFramebased packets.
182
+
This does not include RTP-Based Redundancy mechanisms as defined in {{!RFC7656}}.
183
+
For instance, RTX defined in {{!RFC4588}} will retransmit SFrame-based packets.
184
184
Forward error correction formats as defined in {{!RFC5109}} will protect the encrypted content.
185
185
For Redundant Audio Data, known as RED, as defined in {{!RFC2198}}, a RED packetizer will take as input SFrame encrypted media data instead of unencrypted media data.
186
186
187
187
If BUNDLE is in use and the "a=sframe" attribute is present for a media section but not for another media section of the same BUNDLE,
188
-
payload types for media encodings that are relevant for SFrame MUST not be reused between the two media sections.
188
+
payload types for media encodings that are relevant for SFrame MUST NOT be reused between the two media sections.
0 commit comments