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
At creation of an RTCPeerConnection, the following steps are added to
61
74
the creation algorithm:
62
75
63
-
* Let the RTCPeerConnection object have two internal slots
64
-
[[\EncoderFactory]] and [[\DecoderFactory]], initialized to null.
65
-
* If the RTCConfiguration parameter contains a value for
66
-
"encoderFactory", store that in [[\EncoderFactory]].
67
-
* If the RTCConfiguration parameter contains a value for
68
-
"decoderFactory", store that in [[\DecoderFactory]].
76
+
* Let the RTCPeerConnection object have two internal slots named [[\EncoderFactory]] and [[\DecoderFactory]], initialized to null.
77
+
* If the RTCConfiguration parameter contains a value for "encoderFactory", store that in [[\EncoderFactory]].
78
+
* If the RTCConfiguration parameter contains a value for "decoderFactory", store that in [[\DecoderFactory]].
69
79
70
80
At the time when a codec is initialized as part of the encoder, run
71
81
the following steps:
72
82
73
-
* If [[\EncoderFactory]] is null,
83
+
* If the unencoded data source does not permit access, abort these steps. (OPEN ISSUE: How is this error surfaced?)
84
+
* Let the unencoded data source be represented by a ReadableStream called "source".
85
+
* Let the encoded data sink be represented by a WriteableStream called
86
+
* "sink".
87
+
* Let the internal encoder object be called "internalEncoder". "internalEncoder" will have a WritableStream property called "writable" (by virtue of being an instance of WebCodec).
88
+
* "internalEncoder" will have a ReadableStream property called "readable".
89
+
* If the PeerConnection's [[\EncoderFactory]] is null, pipe "source" to "writable", and pipe "readable" to "sink", and skip the rest of these steps.
90
+
* Call the function stored in [[\EncoderFactory]], using the newly initialized encoder and its parameters as arguments.
91
+
* Let the return value from the function be "encoder".
92
+
* If "encoder" has an attribute "readable", pipe it to "sink". Otherwise, pipe the "internalEncoder"'s "readable" to "sink".
93
+
* If "encoder" has an attribute "writable", pipe "source" to it. Otherwise, pipe "source" to the "internalEncoder"'s "writable".
94
+
95
+
The media will then be processed according to the rules of [[WEB-CODECS]].
0 commit comments