diff --git a/index.bs b/index.bs
index 3d15bda..cdd4a0c 100644
--- a/index.bs
+++ b/index.bs
@@ -142,7 +142,7 @@ The writeEncodedData algorithm is given a |rtcObject| as
1. Set |rtcObject|.`[[lastReceivedFrameCounter]]` to |frame|`[[counter]]`.
1. Let |data| be |frame|.`[[data]]`.
1. Let |serializedFrame| be [$StructuredSerializeWithTransfer$](|frame|, « |data| »).
-1. Let |frameCopy| be [$StructuredDeserialize$](|serializedFrame|, |frame|'s [=relevant realm=]).
+1. Let |frameCopy| be [$StructuredDeserializeWithTransfer$](|serializedFrame|, |frame|'s [=relevant realm=]).
1. Enqueue |frameCopy| for processing as if it came directly from the encoded data source, by running one of the following steps:
* If |rtcObject| is a {{RTCRtpSender}}, enqueue |frameCopy| to |rtcObject|'s packetizer, to be processed [=in parallel=].
* If |rtcObject| is a {{RTCRtpReceiver}}, enqueue |frameCopy| it to |rtcObject|'s decoder, to be processed [=in parallel=].
@@ -371,7 +371,7 @@ dictionary RTCEncodedVideoFrameMetadata {
An identifier for the encoded frame, monotonically increasing in decode order. Its lower
- 16 bits match the frame_number of the AV1 Dependency Descriptor Header Extension defined in Appendix A of [[?AV1-RTP-SPEC]], if present.
+ 16 bits match the frame_number of the AV1 Dependency Descriptor Header Extension defined in Appendix A of [[AV1-RTP-SPEC]], if present.
Only present for received frames if the Dependency Descriptor Header Extension is present.
@@ -381,7 +381,7 @@ dictionary RTCEncodedVideoFrameMetadata {
List of frameIds of frames this frame references.
- Only present for received frames if the AV1 Dependency Descriptor Header Extension defined in Appendix A of [[?AV1-RTP-SPEC]] is present.
+ Only present for received frames if the AV1 Dependency Descriptor Header Extension defined in Appendix A of [[AV1-RTP-SPEC]] is present.
@@ -460,7 +460,7 @@ interface RTCEncodedVideoFrame {
};
-### Constructor ### {#RTCEncodedVideoFrame-members}
+### Constructor ### {#RTCEncodedVideoFrame-constructor}
-
constructor()
@@ -506,11 +506,13 @@ interface RTCEncodedVideoFrame {
{{RTCEncodedVideoFrameMetadata/mimeType}}.
For SVC, each spatial layer
is transformed separately.
-
+
+
Since packetizers may drop certain elements, e.g. AV1 temporal delimiter OBUs,
the input to an receive-side transform may be different from the output of
a send-side transform.
-
+
+
The following table gives a number of examples:
@@ -582,19 +584,20 @@ interface RTCEncodedVideoFrame {
### Serialization ### {#RTCEncodedVideoFrame-serialization}
-{{RTCEncodedVideoFrame}} objects are serializable objects [[HTML]].
+{{RTCEncodedVideoFrame}} objects are [=serializable objects=].
Their [=serialization steps=], given |value|, |serialized|, and |forStorage|, are:
1. If |forStorage| is true, then throw a {{DataCloneError}}.
-1. Set |serialized|.`[[type]]` to the value of |value|.{{RTCEncodedVideoFrame/type}}
+1. Set |serialized|.`[[type]]` to the value of |value|.{{RTCEncodedVideoFrame/type}}.
1. Set |serialized|.`[[metadata]]` to an internal representation of |value|'s metadata.
-1. Set |serialized|.`[[data]]` to |value|.`[[data]]`
+1. Set |serialized|.`[[data]]` to the [=sub-serialization=] of |value|.`[[data]]`.
+
Their [=deserialization steps=], given |serialized|, |value| and |realm|, are:
-1. Set |value|.{{RTCEncodedVideoFrame/type}} to |serialized|.`[[type]]`
-1. Set |value|'s metadata to the platform object representation of |serialized|.`[[metadata]]`
-1. Set |value|.`[[data]]` to |serialized|.`[[data]]`.
+1. Set |value|.{{RTCEncodedVideoFrame/type}} to |serialized|.`[[type]]`.
+1. Set |value|'s metadata to the platform object representation of |serialized|.`[[metadata]]`.
+1. Set |value|.`[[data]]` to the [=sub-deserialization=] of |serialized|.`[[data]]`.
The internal form of a serialized RTCEncodedVideoFrame is not observable;
@@ -689,7 +692,7 @@ interface RTCEncodedAudioFrame {
};
-### Constructor ### {#RTCEncodedAudioFrame-members}
+### Constructor ### {#RTCEncodedAudioFrame-constructor}
-
constructor()
@@ -808,17 +811,17 @@ interface RTCEncodedAudioFrame {
### Serialization ### {#RTCEncodedAudioFrame-serialization}
-{{RTCEncodedAudioFrame}} objects are serializable objects [[HTML]].
+{{RTCEncodedAudioFrame}} objects are [=serializable objects=].
Their [=serialization steps=], given |value|, |serialized|, and |forStorage|, are:
1. If |forStorage| is true, then throw a {{DataCloneError}}.
1. Set |serialized|.`[[metadata]]` to an internal representation of |value|'s metadata.
-1. Set |serialized|.`[[data]]` to |value|.`[[data]]`
+1. Set |serialized|.`[[data]]` to the [=sub-serialization=] of |value|.`[[data]]`.
Their [=deserialization steps=], given |serialized|, |value| and |realm|, are:
1. Set |value|'s metadata to the platform object representation of |serialized|.`[[metadata]]`
-1. Set |value|.`[[data]]` to |serialized|.`[[data]]`.
+1. Set |value|.`[[data]]` to the [=sub-deserialization=] of |serialized|.`[[data]]`.
## Interfaces ## {#RTCRtpScriptTransformer-interfaces}
@@ -867,9 +870,9 @@ The