From 9499ffa650443b22946a1c788fe351f57805a007 Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
- Set
- transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}}
- to the codecs that description
- negotiates for receiving and which the user
- agent is currently prepared to receive.
+ For each of the codecs that description negotiates for receiving:
+
+
+
If the direction is @@ -2299,13 +2301,15 @@
- Set - transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendCodecs]]}} - to the codecs that description - negotiates for sending and which the user - agent is currently capable of sending, - and set - transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[LastReturnedParameters]]}} + For each of the codecs that description negotiates for sending, execute the following steps: +
null
.
- Set - transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}} - to the codecs that description - negotiates for receiving and which the user - agent is currently prepared to receive. + For each of the codecs that description negotiates for receiving: +
- Set - transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendCodecs]]}} - to the codecs that description - negotiates for sending and which the user - agent is currently capable of sending. + For each of the codecs that description negotiates for sending: +
Let sender have a [[\SendCodecs]] internal - slot, representing a list of {{RTCRtpCodecParameters}} - dictionaries, and initialized to an empty list. + slot, representing a list where each element contains an {{RTCRtpCodecParameters}} + dictionary and an "enabled" boolean, and initialized to the + [=RTCRtpSender/list of implemented send codecs=], with the "enabled" flag + set in an implementation defined manner.
Let receiver have a [[\ReceiveCodecs]] internal slot, representing a list of {{RTCRtpCodecParameters}} - dictionaries, and initialized to an empty list. + dictionaries, and initialized to an list containing all the codecs in the + list of implemented receive codecs for kind, and with the "enabled" flag + set in an implementation defined manner.
{{RTCRtpParameters/codecs}} is set to the value of the + "enabled" codecs from the {{RTCRtpReceiver/[[ReceiveCodecs]]}} internal slot.
- For each of the codecs that description negotiates for receiving: + For each of the codecs that description negotiates for receiving, execute the following steps:
- For each of the codecs that description negotiates for receiving: + For each of the codecs that description negotiates for receiving, execute the following steps:
- For each of the codecs that description negotiates for sending: + For each of the codecs that description negotiates for sending, execute the following steps:
+ This conceptual list contains every combination of parameters that + the user agent is capable of processing. In practice, this would + be implemented as a piece of code that parses the parameters and + determines whether they are acceptable or not, but this is highly + codec dependent, so for the purpose of specification, we work with + a conceptual list containing all acceptable parameter combinations. +
+The list of implemented header extensions for sending, given kind, is an [=implementation-defined=] list of @@ -10387,6 +10396,14 @@
+ This conceptual list contains every combination of parameters that + the user agent is capable of processing. In practice, this would + be implemented as a piece of code that parses the parameters and + determines whether they are acceptable or not, but this is highly + codec dependent, so for the purpose of specification, we work with + a conceptual list containing all acceptable parameter combinations. +
The list of implemented header extensions for receiving, given
kind, is an [=implementation-defined=] list of
From 0ae0d13bf71b6fe73433a423b42d02a046fa3fb5 Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
Let receiver have a [[\ReceiveCodecs]]
- internal slot, representing a list of {{RTCRtpCodecParameters}}
+ internal slot, representing a list of tuples, each containing a {{RTCRtpCodecParameters}}
dictionaries, and initialized to an list containing all the codecs in the
list of implemented receive codecs for kind, and with the "enabled" flag
set in an implementation defined manner.
From 7d73f7eb9b9d0b2f2a3e1711141892ca5322f7f2 Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
Let sender have a [[\SendCodecs]] internal
- slot, representing a list where each element contains an {{RTCRtpCodecParameters}}
+ slot, representing a list of tuples, each containing an {{RTCRtpCodecParameters}}
dictionary and an "enabled" boolean, and initialized to the
[=RTCRtpSender/list of implemented send codecs=], with the "enabled" flag
set in an implementation defined manner.
From 46fbc87430f69b626ef3d54758e3fa39ac0f7577 Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
Let sender have a [[\SendCodecs]] internal
- slot, representing a list of tuples, each containing an {{RTCRtpCodecParameters}}
+ slot, representing a list of [=tuple=]s, each containing an {{RTCRtpCodecParameters}}
dictionary and an "enabled" boolean, and initialized to the
[=RTCRtpSender/list of implemented send codecs=], with the "enabled" flag
set in an implementation defined manner.
@@ -10279,7 +10279,7 @@
Let receiver have a [[\ReceiveCodecs]]
- internal slot, representing a list of tuples, each containing a {{RTCRtpCodecParameters}}
+ internal slot, representing a list of [=tuple=]s, each containing a {{RTCRtpCodecParameters}}
dictionaries, and initialized to an list containing all the codecs in the
list of implemented receive codecs for kind, and with the "enabled" flag
set in an implementation defined manner.
From fd0ddb748fe0baf1210b1b6dbe5280b7aba0f3d2 Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
Let receiver be a new {{RTCRtpReceiver}} object.
From 59c796f5915207bafe4ac541ee7f2c880cc80dce Mon Sep 17 00:00:00 2001
From: Harald Alvestrand
The {{setCodecPreferences}} method overrides the default
- codec preferences used by the user agent. When
+ receive codec preferences used by the user agent. When
generating a session description using either
{{RTCPeerConnection/createOffer}} or
{{RTCPeerConnection/createAnswer}}, the user agent
@@ -11245,8 +11245,6 @@
{{setCodecPreferences}} will reject attempts to set codecs
[= codec match | not matching =] codecs found in
- {{RTCRtpSender}}.{{RTCRtpSender/getCapabilities}}(kind)
- or
{{RTCRtpReceiver}}.{{RTCRtpReceiver/getCapabilities}}(kind),
where kind is the kind of the
{{RTCRtpTransceiver}} on which the method is called.
@@ -11302,10 +11300,8 @@
If the intersection between codecs and
- {{RTCRtpSender}}.{{RTCRtpSender/getCapabilities}}(kind).{{RTCRtpParameters/codecs}}
- or the intersection between codecs and
{{RTCRtpReceiver}}.{{RTCRtpReceiver/getCapabilities}}(kind).{{RTCRtpParameters/codecs}}
- only contains RTX, RED or FEC codecs or is an empty set,
+ only contains RTX, RED, FEC codecs or Comfort Noise codecs or is an empty set,
throw {{InvalidModificationError}}. This ensures that we
always have something to offer, regardless of
transceiver.{{RTCRtpTransceiver/direction}}.
@@ -11313,9 +11309,7 @@
- Let codecCapabilities be the union of
- {{RTCRtpSender}}.{{RTCRtpSender/getCapabilities}}(kind).{{RTCRtpParameters/codecs}}
- and
+ Let codecCapabilities be
{{RTCRtpReceiver}}.{{RTCRtpReceiver/getCapabilities}}(kind).{{RTCRtpParameters/codecs}}.
To create an RTCRtpReceiver with a string,
kind, run the following steps:
+
- If set, the offerer's codec preferences will decide the order
+ If set, the offerer's receive codec preferences will decide the order
of the codecs in the offer. If the answerer does not have any
codec preferences then the same order will be used in the
answer. However, if the answerer also has codec preferences,
From 0946871a1afd13c6e9fd386f02bb3652a3affe38 Mon Sep 17 00:00:00 2001
From: Philipp Hancke
setCodecPreferences
setCodecPreferences
The
method overrides the default
codec preferences used by the user agent. When
@@ -11101,6 +11102,7 @@ setCodecPreferences
setCodecPreferences
()
in invoked, the user
agent MUST run the following steps:
+ diff --git a/webrtc.html b/webrtc.html index 231abee40..55c0bf848 100644 --- a/webrtc.html +++ b/webrtc.html @@ -11201,10 +11201,11 @@
The {{setCodecPreferences}} method overrides the default receive codec preferences used by the user agent. When @@ -11332,6 +11333,7 @@
The codec match algorithm given two {{RTCRtpCodec}}
first and second is as follows:
From 008968a634e7f0b034f116c45246e717e1c756d8 Mon Sep 17 00:00:00 2001
From: Philipp Hancke
If type is {{RTCSdpType/"offer"}}, and sdp is not the empty string and not @@ -4256,7 +4256,7 @@
If type is {{RTCSdpType/"answer"}} or
{{RTCSdpType/"pranswer"}}, and sdp is
From 7932c68fb163c304d907c3ac4681355588487601 Mon Sep 17 00:00:00 2001
From: Philipp Hancke
where kind is the kind of the
{{RTCRtpTransceiver}} on which the method is called.
- Due to a recommendation in [[!SDP]], calls to - {{RTCPeerConnection/createAnswer}} SHOULD use only the common - subset of the codec preferences and the codecs that appear in - the offer. For example, if codec preferences are "C, B, A", - but only codecs "A, B" were offered, the answer should only - contain codecs "B, A". However, [[!RFC8829]] allows adding codecs that - were not in the offer, so implementations can behave - differently. -
When {{setCodecPreferences()}} is invoked, the user
agent MUST run the following steps:
From 842ff68a66d7159efc330003955573d1f8e8db0c Mon Sep 17 00:00:00 2001
From: Harald Alvestrand 5.3
To create an RTCRtpReceiver with a string,
kind, run the following steps:
Let receiver be a new
object.
RTCRtpReceiver