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