Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Establish codec registry and AVC registration. #149

Merged
merged 3 commits into from
Mar 24, 2021

Conversation

chcunningham
Copy link
Collaborator

@chcunningham chcunningham commented Mar 6, 2021

This moves codec-specific defintions / descriptions into a registry.
I've also added some text to the main document to clarify that support
for any given codec is not required.

Fixes #143. Fixes #126.


Preview | Diff

This moves codec-specific defintions / descriptions into a registry.
I've also added some text to the main document to clarify that support
for any given codec is not required.
@chcunningham chcunningham requested a review from aboba March 6, 2021 05:52
@chcunningham
Copy link
Collaborator Author

@tidoust FYI - this is what I'd like to land before the FPWD transition.

@chcunningham
Copy link
Collaborator Author

@aboba - looks like the pr-preview link at the bottom of the description only supports a preview of the main spec (known issue). Here are some links to the generated HTML to assist in review.

https://storage.googleapis.com/videostack-external/webcodecs_pr_149/index.html
https://storage.googleapis.com/videostack-external/webcodecs_pr_149/codec_registry.html
https://storage.googleapis.com/videostack-external/webcodecs_pr_149/avc_codec_registration.html

For now I've just done the AVC registration. Other registrations will be follow up PRs (not urgent, not blocking anything).

@chcunningham
Copy link
Collaborator Author

@padenot FYI

Copy link
Member

@tidoust tidoust left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See some comments inline.

I understand that the current final goal (pending evolutions of the W3C process to account for registries) is to publish the registry and the AVC registration as non-normative Working Group Notes. Is that correct?

avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
codec_registry.src.html Outdated Show resolved Hide resolved
codec_registry.src.html Outdated Show resolved Hide resolved
Copy link
Collaborator Author

@chcunningham chcunningham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that the current final goal (pending evolutions of the W3C process to account for registries) is to publish the registry and the AVC registration as non-normative Working Group Notes. Is that correct?

Yes, that is correct. And we will seek to maintain the non-normative status of the registry and registrations as the W3C process evolves.

avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
avc_codec_registration.src.html Show resolved Hide resolved
avc_codec_registration.src.html Outdated Show resolved Hide resolved
codec_registry.src.html Outdated Show resolved Hide resolved
codec_registry.src.html Outdated Show resolved Hide resolved
@tidoust
Copy link
Member

tidoust commented Mar 17, 2021

I understand that the current final goal (pending evolutions of the W3C process to account for registries) is to publish the registry and the AVC registration as non-normative Working Group Notes. Is that correct?

Yes, that is correct. And we will seek to maintain the non-normative status of the registry and registrations as the W3C process evolves.

From a process perspective, this means that the specs need to be published separately. That is, we're going to publish three First Public Working Drafts:

  1. The WebCodecs spec in itself, intended to become a Recommendation, under the shortname webcodecs
  2. The registry spec, intended to become a WG Note, under the shortname webcodecs-codec-registry
  3. The AVC (H.264) WebCodecs registration, intended to become a WG Note, under the shortname webcodecs-avc-codec-registration.

Practically speaking, tools such as PR preview and spec-prod are more or less designed for repos that contain only one spec. Splitting the specs to dedicated repositories as done for MSE (see list of repos) would simplify integration with these tools... That said, it also makes editing slightly more cumbersome, and it's certainly possible to workaround tools constraints.

Would you be open to creating dedicated repos for the registry and AVC WebCodecs registration specs? If so, two choices:

  1. I can create the registry repos under w3c right away, initialize them with the appropriate content taken from this PR, and corresponding files can then be dropped from this PR before it gets merged. Good thing about this is that it means we'll keep this repo clean.
  2. You'd prefer that PR to be merged before the actual repo transition. In that case, we'll just separate documents afterwards, but note that would mean we'll need to preserve the codec_registry.html and avc_codec_registration.html files in this repo, replacing them with empty HTML files with a meta redirect to their new locations (as also done in MSE).

I would do 1. and I'm happy to prepare that.

@aboba
Copy link
Collaborator

aboba commented Mar 17, 2021

Question: What is the approval process for registry entries? The document mentions posting an Issue to the github. Is the expectation that the specification editors will do the review/approval on their own? Or that they will recommend a disposition to the WG who will then make the decision? Also, what happens if for some reason the Github repo is no longer active? IANA registries sometimes allow a successor mailing list or WG to be designated.

@chcunningham
Copy link
Collaborator Author

Question: What is the approval process for registry entries? The document mentions posting an Issue to the github. Is the expectation that the specification editors will do the review/approval on their own? Or that they will recommend a disposition to the WG who will then make the decision? Also, what happens if for some reason the Github repo is no longer active? IANA registries sometimes allow a successor mailing list or WG to be designated.

@tidoust @cwilso - pls weigh in on ^

@tidoust
Copy link
Member

tidoust commented Mar 17, 2021

Question: What is the approval process for registry entries? The document mentions posting an Issue to the github. Is the expectation that the specification editors will do the review/approval on their own? Or that they will recommend a disposition to the WG who will then make the decision? Also, what happens if for some reason the Github repo is no longer active? IANA registries sometimes allow a successor mailing list or WG to be designated.

First, we don't yet have a clear and crisp process in place for managing registries at W3C. That is the purpose of ongoing discussions within the Process CG. See also the registries section of the presentation on Process 2021 during last TPAC. Hopefully, a future revision of the W3C Process will create a clear mechanism for registries at W3C.

The direction that this PR is taking is that the registry will be published as a WG Note. The Media WG would thus be in charge of updating it (and not only the editors). For maintenance purpose, W3C tends to keep WGs around forever. If we ever close the group, the W3C team would be in fine responsible for the maintenance of the registry (granted, in the W3C process, this is more aimed at maintenance of Recommendations than at the maintenance of Notes...).

Another group may be created to take over the maintenance of the registry if needed. One perfect illustration is the Media WG, which took over maintenance of MSE/EME and of their companion format registries from the HTML Media Extensions WG.

I do not know whether these possibilities need to be specified in the registry spec itself. The text in the requirements section of the WebCodecs registry seems to be based on the one of the MSE Byte Stream Format Registry.

W3C guarantees that archives of mailing-lists will be available forever. If you believe that this guarantee is crucial, it may be preferable to request that an email be sent to some W3C archived public mailing-list (as done for MSE/EME registries) rather than to request that an issue gets posted to a GitHub repository. That said, my understanding here is that the contents of the issue (codec string, common name, link to a public spec) will be integrated into the registry directly, so is there really a need for a strong guarantee with regards to availability of the issue over time? More precisely, is there a need for a stronger guarantee than the one that currently exists for all group discussions that take place in GitHub issue trackers?

@chcunningham
Copy link
Collaborator Author

From a process perspective, this means that the specs need to be published separately. That is, we're going to publish three First Public Working Drafts:

The WebCodecs spec in itself, intended to become a Recommendation, under the shortname webcodecs
The registry spec, intended to become a WG Note, under the shortname webcodecs-codec-registry
The AVC (H.264) WebCodecs registration, intended to become a WG Note, under the shortname webcodecs-avc-codec-registration.

LGTM

Practically speaking, tools such as PR preview and spec-prod are more or less designed for repos that contain only one spec.
...
Would you be open to creating dedicated repos for the registry and AVC WebCodecs registration specs?

I don't love it. WebCodecs is going to have a large number of "registrations" (see TODO's in the registry table), and having a git repo for each one sounds cumbersome.

It looks like spec-prod intends to remedy this soon. Reading the replies there, I conclude that this is widespread enough that the tooling should be updated. Meanwhile, am I correct that the current travis config happily supports multiple files (I think it publishes the entire out/ folder)?

Multi-spec PR preview is more of a nice-to-have since the workaround is trivial. The analogous feature request has less momentum. The maintainer's comments suggest its just a matter of staffing it.

The text in the requirements section of the WebCodecs registry seems to be based on the one of the MSE Byte Stream Format Registry.

That's correct. LMK if you find this in any way lacking.

More precisely, is there a need for a stronger guarantee than the one that currently exists for all group discussions that take place in GitHub issue trackers?

I think GitHub should be fine.

@chcunningham
Copy link
Collaborator Author

@aboba sounds like the text around process for registry updates is reasonable. Any other concerns that block approval?

@chcunningham chcunningham merged commit cf0784b into main Mar 24, 2021
@chcunningham
Copy link
Collaborator Author

Thanks everyone!

@chcunningham chcunningham deleted the establish_codec_registry branch March 24, 2021 23:06
tidoust added a commit that referenced this pull request Mar 25, 2021
This update drops the hyphen as discussed in:
#149 (comment)

It also updates the new registry files following rebase.
tidoust added a commit that referenced this pull request Mar 30, 2021
This update adjusts the metadata of the spec as it gets adopted by the Media
Working Group, and makes the following changes:

- Update CONTRIBUTING.md to match that used in W3C
- Update LICENSE.md to drop the CLA part
- Update links in README.md and to mention Media WG
- Update w3c.json
- Update status, group, and links that currently target the WICG repo in the
spec itself

Also note the switch to `Level: None` in the metadata of the spec as I suspect
that the group will publish the API without any level, at least initially.

This update also drops the hyphen in `web-codecs` as discussed in:
#149 (comment)

The default boilerplate for the Status of This Document section of the Media WG
asserts that the specs are intended to be published as W3C Recommendations. The
text needs to be adjusted for drafts that are intended to be published as W3C
Working Group Notes.

There is no specific way to flag the targeted spec status in Bikeshed. The idea
is thus to add a `Text macro: NOTE yes` macro definition in the spec metadata
and conditionals in the boilerplate files to issue the right text.

The updates to the boilerplate files are at:
speced/bikeshed#1999

Privacy and Security Consideration sections have also been added to registry
notes that targets the relevants sections in the main WebCodecs spec.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants