From a3d4e6f9889fe08eaa9e386959554e3ed35dfa69 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Tue, 7 Jul 2026 09:56:53 +0200 Subject: [PATCH 1/2] Update the algorithm to ensure that the config is set as part of a successful configure. In the video ouptut algorithm, mention that partial config color space can be augmented with codec implementation detected color space. As a fly-by fix, we also make sure that the encoders get their active config set to the config given to configure. --- index.src.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/index.src.html b/index.src.html index 847d17b5..f1b5cf90 100644 --- a/index.src.html +++ b/index.src.html @@ -741,7 +741,8 @@ 3. If needed, assign {{VideoDecoder/[[codec implementation]]}} with an implementation supporting |config|. 4. Configure {{VideoDecoder/[[codec implementation]]}} with |config|. - 5. [=queue a task=] to run the following steps: + 5. Assign |config| to {{VideoDecoder/[[active decoder config]]}}. + 6. [=queue a task=] to run the following steps: 1. Assign `false` to {{VideoDecoder/[[message queue blocked]]}}. 2. [=Queue a task=] to [=Process the control message queue=]. 3. Return `"processed"`. @@ -921,7 +922,11 @@ 5. If {{VideoDecoderConfig/colorSpace}} [=map/exists=] in the {{VideoDecoder/[[active decoder config]]}}, assign its value to - |colorSpace|. + |colorSpace|. In that case, if some members of + {{VideoDecoder/[[active decoder config]]}}'s + {{VideoDecoderConfig/colorSpace}} are null, the User Agent MAY use + codec implementation detected values for those members. + FIXME: Properly specify the case of missing fields. 6. Assign the values of {{VideoDecoderConfig/rotation}} and {{VideoDecoderConfig/flip}} to |rotation| and |flip| respectively. 7. Let |frame| be the result of running the [=Create a VideoFrame=] @@ -1100,7 +1105,8 @@ 3. If needed, assign {{AudioEncoder/[[codec implementation]]}} with an implementation supporting |config|. 4. Configure {{AudioEncoder/[[codec implementation]]}} with |config|. - 5. [=queue a task=] to run the following steps: + 5. Assign |config| to {{AudioEncoder/[[active encoder config]]}}. + 6. [=queue a task=] to run the following steps: 1. Assign `false` to {{AudioEncoder/[[message queue blocked]]}}. 2. [=Queue a task=] to [=Process the control message queue=]. 3. Return `"processed"`. @@ -1481,7 +1487,8 @@ 3. If needed, assign {{VideoEncoder/[[codec implementation]]}} with an implementation supporting |config|. 4. Configure {{VideoEncoder/[[codec implementation]]}} with |config|. - 5. [=queue a task=] to run the following steps: + 5. Assign |config| to {{VideoEncoder/[[active encoder config]]}}. + 6. [=queue a task=] to run the following steps: 1. Assign `false` to {{VideoEncoder/[[message queue blocked]]}}. 2. [=Queue a task=] to [=Process the control message queue=]. 3. Return `"processed"`. From 55ed6e99a21d30c153f4407511966cbcdb901025 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Wed, 8 Jul 2026 15:23:35 +0200 Subject: [PATCH 2/2] Improve wording --- index.src.html | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/index.src.html b/index.src.html index f1b5cf90..448ac303 100644 --- a/index.src.html +++ b/index.src.html @@ -922,11 +922,10 @@ 5. If {{VideoDecoderConfig/colorSpace}} [=map/exists=] in the {{VideoDecoder/[[active decoder config]]}}, assign its value to - |colorSpace|. In that case, if some members of - {{VideoDecoder/[[active decoder config]]}}'s - {{VideoDecoderConfig/colorSpace}} are null, the User Agent MAY use - codec implementation detected values for those members. - FIXME: Properly specify the case of missing fields. + |colorSpace|. In that case, User Agents MAY replace `null` members + of |colorSpace| with the corresponding values detected by the codec + implementation. + FIXME: Properly specify the case of `null` members. 6. Assign the values of {{VideoDecoderConfig/rotation}} and {{VideoDecoderConfig/flip}} to |rotation| and |flip| respectively. 7. Let |frame| be the result of running the [=Create a VideoFrame=]