From c757b5f3ccc382f29959d40bf3e03e9846c72031 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=
and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =],
or if they both [=map/exist=] and first.{{RTCRtpCodec/sdpFmtpLine}}
is different from second.{{RTCRtpCodec/sdpFmtpLine}}, return
-
false
.
+ false
. In this step, the user agent MUST consider two FMTP lines
+ identical if the "media format" is the same but the highest complying bitstream
+ levels differ.
false
. In this step, the user agent MUST consider two FMTP lines
identical if the "media format" is the same but the highest complying bitstream
- levels differ.
+ level differs.
If set, the offerer's codec preferences will decide the order of the codecs in the offer. If the answerer does not have any diff --git a/webrtc.html b/webrtc.html index 4bd5cc342..e869688fc 100644 --- a/webrtc.html +++ b/webrtc.html @@ -11467,6 +11467,7 @@
If either (but not both) of first.{{RTCRtpCodec/sdpFmtpLine}} and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =], @@ -11476,6 +11477,7 @@
From d13745028e0de0a84ab2e7769273b85bd9376bed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=
If set, the offerer's codec preferences will decide the order of the codecs in the offer. If the answerer does not have any diff --git a/webrtc.html b/webrtc.html index e869688fc..3c438c7e9 100644 --- a/webrtc.html +++ b/webrtc.html @@ -11438,7 +11438,7 @@
The codec dictionary match algorithm given two {{RTCRtpCodec}} dictionaries first and second is as follows: @@ -11467,7 +11467,6 @@
If either (but not both) of first.{{RTCRtpCodec/sdpFmtpLine}} and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =], @@ -11477,7 +11476,6 @@
From 7197ba05faa7092bc9b9245155f01f9e3a8096b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=
If set, the offerer's codec preferences will decide the order of the codecs in the offer. If the answerer does not have any diff --git a/webrtc.html b/webrtc.html index 3c438c7e9..b5a5992c2 100644 --- a/webrtc.html +++ b/webrtc.html @@ -11438,11 +11438,12 @@
The codec dictionary match algorithm given two {{RTCRtpCodec}} dictionaries first and second is as follows:
+@@ -11467,6 +11468,7 @@
If either (but not both) of first.{{RTCRtpCodec/sdpFmtpLine}} and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =], @@ -11476,6 +11478,7 @@
@@ -11483,7 +11486,6 @@
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
From 5fb55254f99a993ee2a7b5626728e81152f8df95 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=
and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =],
or if they both [=map/exist=] and first.{{RTCRtpCodec/sdpFmtpLine}}
is different from second.{{RTCRtpCodec/sdpFmtpLine}}, return
-
false
. In this step, the user agent MUST consider two FMTP lines
- identical if the "media format" is the same but the highest complying bitstream
+ false
. Two FMTP lines are the same as long as they convey the same
+ information, including omitting parameters with well defined defaults or using
+ different order. In this step, the user agent MUST consider two FMTP lines
+ identical if the "media format" are the same but the highest complying bitstream
level differs.
false
. Two FMTP lines are the same as long as they convey the same
information, including omitting parameters with well defined defaults or using
- different order. In this step, the user agent MUST consider two FMTP lines
- identical if the "media format" are the same but the highest complying bitstream
+ different order. In this step, the user agent MUST NOT consider two FMTP lines
+ different if "media format" is the same but the highest complying bitstream
level differs.
From 46142bdd0be339cdf6e1ffac3c60490204c1be87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?= false
. Two FMTP lines are the same as long as they convey the same
information, including omitting parameters with well defined defaults or using
different order. In this step, the user agent MUST NOT consider two FMTP lines
- different if "media format" is the same but the highest complying bitstream
+ different if "media format" is the same and only the highest complying bitstream
level differs.
From 3636bc6c4eaf31526cdeadb25f4cfc4691ece5ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?= For each encoding in transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}, - if encoding.{{RTCRtpEncodingParameters/codec}} does not - [= codec dictionary match | match =] any entry in codecs, - [=map/remove=] encoding[{{RTCRtpEncodingParameters/codec}}].
+ if encoding.{{RTCRtpEncodingParameters/codec}} does not match any entry in + codecs, using the [= codec dictionary match =] algorithm with ignoreLevels + set totrue
, [=map/remove=] encoding.{{RTCRtpEncodingParameters/codec}}.
true
.
Optional value selecting which codec is used for this encoding's - RTP stream. If absent, the user agent can chose to use any negotiated codec.
++ Optional value selecting which codec is used for this encoding's + RTP stream. If absent, the user agent can chose to use any negotiated codec. +
+
+ When {{codec}} is set and {{RTCRtpSender/[[SendCodecs]]}} have been negotiated,
+ the user agent SHOULD use the first {{RTCRtpSender/[[SendCodecs]]}} matching
+ {{codec}} for sending, according to the [= codec dictionary match =] algorithm
+ with ignoreLevels set to true
.
+
- Remove any [= codec dictionary match | duplicate =] values in + Remove any [= codec dictionary match | duplicate values =] in codecs, ensuring that the first occurrence of each value remains in place.
@@ -11439,9 +11448,11 @@The codec dictionary match algorithm - given two {{RTCRtpCodec}} dictionaries - first and second is as follows: +
+ The codec dictionary match algorithm given two
+ {{RTCRtpCodec}} dictionaries first and second, and
+ an ignoreLevels boolean defaulting to false
if not
+ specified, is as follows:
If either (but not both) of first.{{RTCRtpCodec/sdpFmtpLine}}
and second.{{RTCRtpCodec/sdpFmtpLine}} are [= map/exist | missing =],
- or if they both [=map/exist=] and first.{{RTCRtpCodec/sdpFmtpLine}}
- is different from second.{{RTCRtpCodec/sdpFmtpLine}}, return
- false
. Two FMTP lines are the same as long as they convey the same
- information, including omitting parameters with well defined defaults or using
- different order. In this step, the user agent MUST NOT consider two FMTP lines
- different if "media format" is the same and only the highest complying bitstream
- level differs.
+ return false
.
+ If both first.{{RTCRtpCodec/sdpFmtpLine}} and + second.{{RTCRtpCodec/sdpFmtpLine}} [=map/exist=], run the following + steps: +
++ Let firstMediaFormat be a key-value map of the media formats constructed + from first.{{RTCRtpCodec/sdpFmtpLine}} and secondMediaFormat + be a key-value map of the media formats constructed from + second.{{RTCRtpCodec/sdpFmtpLine}}. +
++ Which FMTP parameters make up the media format is codec specific. In some cases + a parameter can be omitted and still be inferred, in which case it is also a part + of the media format of that codec. +
+
+ If firstMediaFormat is not equal to secondMediaFormat, return
+ false
.
+
+ If ignoreLevels is false
and the highest complying bitstream
+ levels inferred from first.{{RTCRtpCodec/sdpFmtpLine}} and
+ second.{{RTCRtpCodec/sdpFmtpLine}} are different, return false
.
+
+ Even if ignoreLevels is true
, some codecs (such as H.264) have
+ bistream levels that are not distinct from their media formats and as such cannot be
+ ignored in this algorithm.
+
From adc8a4665ef5b7d80f19094d7f33679373a5d414 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=
- Remove any [= codec dictionary match | duplicate values =] in + Remove any [= codec dictionary match | duplicate =] values in codecs, ensuring that the first occurrence of each value remains in place.
From 0cc5068913d43ce110f4e4cb66958c9cbe2c148e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Bostr=C3=B6m?=false
.
- Even if ignoreLevels is true
, some codecs (such as H.264) have
- bistream levels that are not distinct from their media formats and as such cannot be
- ignored in this algorithm.
+ Even if ignoreLevels is true
, some codecs (such as H.264) include
+ levels in the media format, so that the level cannot be ignored in this algorithm.
If both first.{{RTCRtpCodec/sdpFmtpLine}} and - second.{{RTCRtpCodec/sdpFmtpLine}} [=map/exist=], run the following + second.{{RTCRtpCodec/sdpFmtpLine}} [=map/exist=], and are in key/value format, run the following steps:
true
.
true
.
true
.
true
.