diff --git a/amendments.json b/amendments.json index 8a86a36e0..64822e39d 100644 --- a/amendments.json +++ b/amendments.json @@ -604,6 +604,21 @@ "type": "correction", "status": "candidate", "id": 26 + }, + { + "description": "Separate Send/ReceiveCodecs and NegotiatedCodecs.", + "pr": 2972, + "difftype": "modify", + "tests": [ + "webrtc/RTCRtpSender-getParameters.html", + "webrtc/RTCRtpReceiver-getParameters.html" + ], + "testUpdates": [ + "web-platform-tests/wpt#46840" + ], + "type": "correction", + "status": "candidate", + "id": 47 } ], "create-answer-restrictions": [ @@ -841,6 +856,13 @@ "type": "addition", "status": "candidate", "id": 41 + }, + { + "description": "Separate Send/ReceiveCodecs and NegotiatedCodecs.", + "pr": 2972, + "type": "correction", + "status": "candidate", + "id": 47 } ], "rtcrtpreceiver-laststablestatereceivecodecs": [ diff --git a/tools/check-rec-amendment.js b/tools/check-rec-amendment.js index 826f03280..fa1b0818f 100644 --- a/tools/check-rec-amendment.js +++ b/tools/check-rec-amendment.js @@ -10,18 +10,22 @@ module.exports = async ({github, context, core}) => { } const amendments = require(process.env.GITHUB_WORKSPACE + '/amendments.json'); const prAmendmentSection = Object.values(amendments).find(list => list.find(a => Array.isArray(a.pr) ? a.pr.includes(context.issue.number) : a.pr === context.issue.number )); - const prAmendment = prAmendmentSection.find(a => Array.isArray(a.pr) ? a.pr.includes(context.issue.number) : a.pr === context.issue.number ); - if (!prAmendment) { + if (!prAmendmentSection) { core.setFailed(`Pull request ${context.issue.number} not labeled as editorial and not referenced in amendments.json`); + process.exit(2); } + const prAmendment = prAmendmentSection.find(a => Array.isArray(a.pr) ? a.pr.includes(context.issue.number) : a.pr === context.issue.number ); if (!prAmendment.testUpdates || !prAmendment.testUpdates.length === 0) { core.setFailed(`Pull request ${context.issue.number} declares an amendment but does not document its test status in testUpdates`); + process.exit(2); } const validTestUpdates = ["already-tested", "not-testable"]; if (typeof prAmendment.testUpdates === "string" && !validTestUpdates.includes(prAmendment.testUpdates)) { core.setFailed(`Pull request ${context.issue.number} declares an invalid test status in its amendment testUpdates field`); + process.exit(2); } if (Array.isArray(prAmendment.testUpdates) && !prAmendment.testUpdates.every(t => t.match(/^web-platform-tests\/wpt#[0-9]+$/))) { core.setFailed(`Pull request ${context.issue.number} declares test updates but not using the expected format to point to web-platform-tests PRs: "web-platform-tests/wpt#NNN"`); + process.exit(2); } }; diff --git a/webrtc.html b/webrtc.html index f31a14958..8938f2605 100644 --- a/webrtc.html +++ b/webrtc.html @@ -1864,9 +1864,9 @@

  • Set - transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[LastStableStateReceiveCodecs]]}} + transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[LastStableStateNegotiatedCodecs]]}} to - transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}}. + transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[NegotiatedCodecs]]}}.

  • @@ -2187,24 +2187,6 @@

    false.

    -
  • -

    - For each of the codecs that description negotiates for receiving, execute the following steps: -

      -
    1. Locate the matching codec description in transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}}.
    2. -
    3. If the matching codec description is not found, abort these steps.
    4. -
    5. Set the "enabled" flag in the matching codec description to "true".
    6. -
    - -

    -

    - If the direction is - {{RTCRtpTransceiverDirection/"sendonly"}} or - {{RTCRtpTransceiverDirection/"inactive"}}, - the receiver is not prepared to receive - anything, and the list will be empty. -

    -
  • If description is of type @@ -2244,13 +2226,37 @@

  • - For each of the codecs that description negotiates for sending, execute the following steps: + Clear the transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[NegotiatedCodecs]]}} slot. +
    + Then, for each of the codecs that description negotiates for sending, execute the following steps:

    1. Locate the matching codec description in transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendCodecs]]}}.
    2. If the matching codec description is not found, abort these steps.
    3. Set the "enabled" flag in the matching codec description to "true".
    4. +
    5. Add the codec description to the sender's {{RTCRtpSender/[[NegotiatedCodecs]]}} internal slot.
  • +
  • +

    + Clear the transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[NegotiatedCodecs]]}} slot. +
    + Then, for each of the codecs that description negotiates for receiving, execute the following steps: +

      +
    1. Locate the matching codec description in transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}}.
    2. +
    3. If the matching codec description is not found, abort these steps.
    4. +
    5. Set the "enabled" flag in the matching codec description to "true".
    6. +
    7. Add the codec description to the receiver's {{RTCRtpReceiver/[[NegotiatedCodecs]]}} internal slot.
    8. +
    + +

    +

    + If the direction is + {{RTCRtpTransceiverDirection/"sendonly"}} or + {{RTCRtpTransceiverDirection/"inactive"}}, + the receiver is not prepared to receive + anything, and the list will be empty. +

    +
  • Set transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[LastReturnedParameters]]}} to null. @@ -2693,9 +2699,9 @@

  • Set - transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[ReceiveCodecs]]}} + transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[NegotiatedCodecs]]}} to - transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[LastStableStateReceiveCodecs]]}}. + transceiver.{{RTCRtpTransceiver/[[Receiver]]}}.{{RTCRtpReceiver/[[LastStableStateNegotiatedCodecs]]}}.

  • @@ -8800,6 +8806,9 @@

    [=RTCRtpSender/list of implemented send codecs=], with the "enabled" flag set in an implementation defined manner.

    +

    + Let sender have a [[\NegotiatedCodecs]] internal slot, consisting of {{RTCRtpCodecParameters}}, and initialized to an empty list. +

  • @@ -9188,8 +9197,7 @@

  • {{RTCRtpParameters/codecs}} is set to the codecs from the - {{RTCRtpSender/[[SendCodecs]]}} internal slot where the - "enabled" flag is true. + {{RTCRtpSender/[[NegotiatedCodecs]]}} internal slot.
  • {{RTCRtpParameters/rtcp}}.{{RTCRtcpParameters/cname}} is @@ -10225,11 +10233,14 @@

    list of implemented receive codecs for kind, and with the "enabled" flag set in an implementation defined manner.

    +

    + Let receiver have a [[\NegotiatedCodecs]] internal slot, consisting of {{RTCRtpCodecParameters}}, and initialized to an empty list. +

  • Let receiver have a - [[\LastStableStateReceiveCodecs]] internal slot and + [[\LastStableStateNegotiatedCodecs]] internal slot and initialize it to an empty list.

  • @@ -10507,7 +10518,7 @@

    {{RTCRtpParameters/codecs}} is set to the value of the "enabled" codecs from the - {{RTCRtpReceiver/[[ReceiveCodecs]]}} internal slot. + {{RTCRtpReceiver/[[NegotiatedCodecs]]}} internal slot.

    Both the local and remote description may affect this