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

Add AOM specs #1141

Merged
merged 5 commits into from
Nov 29, 2023
Merged

Add AOM specs #1141

merged 5 commits into from
Nov 29, 2023

Conversation

tidoust
Copy link
Member

@tidoust tidoust commented Nov 28, 2023

AVIF had already been added to the list. This adds remaining specs from the Alliance for Open Media related to AV1.

Logic also updated to find more info about these specs automatically.

Fixes #1088.

A couple of information points that are ok-ish but that could further be improved:

  1. We only record the nightly URL for now, but the official final deliverable is the PDF version. The same is true for other specs, see PDF list at https://aomedia.org/av1-features/get-started/
  2. The specs are extracted as "Editor's Draft" but the status should rather be "Final Deliverable" for some of them
Changes to index.json
[
  {
    "url": "https://aomediacodec.github.io/afgs1-spec/",
    "seriesComposition": "full",
    "shortname": "afgs1-spec",
    "series": {
      "shortname": "afgs1-spec",
      "currentSpecification": "afgs1-spec",
      "title": "AOMedia Film Grain Synthesis 1 (AFGS1) specification (Draft)",
      "shortTitle": "Draft",
      "nightlyUrl": "https://aomediacodec.github.io/afgs1-spec/"
    },
    "organization": "Alliance for Open Media",
    "groups": [
      {
        "name": "Codec Working Group",
        "url": "https://aomedia.org/about/#codec-working-group"
      }
    ],
    "nightly": {
      "url": "https://aomediacodec.github.io/afgs1-spec/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/afgs1-spec",
      "sourcePath": "index.md",
      "filename": "index.html"
    },
    "title": "AOMedia Film Grain Synthesis 1 (AFGS1) specification (Draft)",
    "source": "spec",
    "shortTitle": "Draft",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-hdr10plus/",
    "seriesComposition": "full",
    "shortname": "av1-hdr10plus",
    "series": {
      "shortname": "av1-hdr10plus",
      "currentSpecification": "av1-hdr10plus",
      "title": "HDR10+ AV1 Metadata Handling Specification",
      "shortTitle": "HDR10+ AV1 Metadata Handling",
      "nightlyUrl": "https://aomediacodec.github.io/av1-hdr10plus/"
    },
    "organization": "Alliance for Open Media",
    "groups": [
      {
        "name": "Codec Working Group",
        "url": "https://aomedia.org/about/#codec-working-group"
      }
    ],
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-hdr10plus/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-hdr10plus",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "HDR10+ AV1 Metadata Handling Specification",
    "source": "spec",
    "shortTitle": "HDR10+ AV1 Metadata Handling",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-isobmff/",
    "seriesComposition": "full",
    "shortname": "av1-isobmff",
    "series": {
      "shortname": "av1-isobmff",
      "currentSpecification": "av1-isobmff",
      "title": "AV1 Codec ISO Media File Format Binding",
      "shortTitle": "AV1 Codec ISO Media File Format Binding",
      "nightlyUrl": "https://aomediacodec.github.io/av1-isobmff/"
    },
    "groups": [
      {
        "name": "Storage and Transport Formats Working Group",
        "url": "https://aomedia.org/about/#storage-and-transport-formats-working-group"
      }
    ],
    "organization": "Alliance for Open Media",
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-isobmff/",
      "status": "AOM Working Group Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-isobmff",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "AV1 Codec ISO Media File Format Binding",
    "source": "spec",
    "shortTitle": "AV1 Codec ISO Media File Format Binding",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-mpeg2-ts/",
    "seriesComposition": "full",
    "shortname": "av1-mpeg2-ts",
    "series": {
      "shortname": "av1-mpeg2-ts",
      "currentSpecification": "av1-mpeg2-ts",
      "title": "Carriage of AV1 in MPEG-2 TS",
      "shortTitle": "Carriage of AV1 in MPEG-2 TS",
      "nightlyUrl": "https://aomediacodec.github.io/av1-mpeg2-ts/"
    },
    "groups": [
      {
        "name": "Storage and Transport Formats Working Group",
        "url": "https://aomedia.org/about/#storage-and-transport-formats-working-group"
      }
    ],
    "organization": "Alliance for Open Media",
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-mpeg2-ts/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-mpeg2-ts",
      "sourcePath": "index.html",
      "filename": "index.html"
    },
    "title": "Carriage of AV1 in MPEG-2 TS",
    "source": "spec",
    "shortTitle": "Carriage of AV1 in MPEG-2 TS",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-rtp-spec/",
    "seriesComposition": "full",
    "shortname": "av1-rtp-spec",
    "series": {
      "shortname": "av1-rtp-spec",
      "currentSpecification": "av1-rtp-spec",
      "title": "RTP Payload Format For AV1 (v1.0)",
      "shortTitle": "v1.0",
      "nightlyUrl": "https://aomediacodec.github.io/av1-rtp-spec/"
    },
    "groups": [
      {
        "name": "Storage and Transport Formats Working Group",
        "url": "https://aomedia.org/about/#storage-and-transport-formats-working-group"
      }
    ],
    "organization": "Alliance for Open Media",
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-rtp-spec/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-rtp-spec",
      "sourcePath": "index.md",
      "filename": "index.html"
    },
    "title": "RTP Payload Format For AV1 (v1.0)",
    "source": "spec",
    "shortTitle": "v1.0",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-spec/",
    "seriesComposition": "full",
    "shortname": "av1-spec",
    "series": {
      "shortname": "av1-spec",
      "currentSpecification": "av1-spec",
      "title": "AV1 Bitstream & Decoding Process Specification",
      "shortTitle": "AV1 Bitstream & Decoding Process",
      "nightlyUrl": "https://aomediacodec.github.io/av1-spec/"
    },
    "organization": "Alliance for Open Media",
    "groups": [
      {
        "name": "Codec Working Group",
        "url": "https://aomedia.org/about/#codec-working-group"
      }
    ],
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-spec/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-spec",
      "sourcePath": "index.md",
      "filename": "index.html"
    },
    "title": "AV1 Bitstream & Decoding Process Specification",
    "source": "spec",
    "shortTitle": "AV1 Bitstream & Decoding Process",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://aomediacodec.github.io/av1-avif/",
    "seriesComposition": "full",
    "shortname": "av1-avif",
    "series": {
      "shortname": "av1-avif",
      "currentSpecification": "av1-avif",
      "title": "AV1 Image File Format (AVIF)",
      "shortTitle": "AVIF",
      "nightlyUrl": "https://aomediacodec.github.io/av1-avif/"
    },
    "groups": [
      {
        "name": "Storage and Transport Formats Working Group",
        "url": "https://aomedia.org/about/#storage-and-transport-formats-working-group"
      }
    ],
    "organization": "Alliance for Open Media",
    "nightly": {
      "url": "https://aomediacodec.github.io/av1-avif/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/AOMediaCodec/av1-avif",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "AV1 Image File Format (AVIF)",
    "source": "spec",
    "shortTitle": "AVIF",
    "categories": [
      "browser"
    ],
    "standing": "good",
    "tests": {
      "repository": "https://github.com/web-platform-tests/wpt",
      "testPaths": [
        "avif"
      ]
    }
  }
]

AVIF had already been added to the list. This adds remaining specs from the
Alliance for Open Media related to AV1.

Logic also updated to find more info about these specs automatically.

Fixes #1088.
@dontcallmedom
Copy link
Member

the code looks good, but "shortTitle": "Draft", and "shortTitle": "v1.0", in the generated output don't.

they're all marked as browser specs - I assume this is correct, but is beyond my expertise for at least some of them

This is useful for AOM specs. The update also makes the regular expression
case-insensitive, which will bring a handful of updates to short titles in the
list, e.g., dropping "proposal" from the short titles of some TC39 proposals.
The spec actually builds on the film grain synthesis *in* AV1, which should
thus be supported by browsers, but its core purpose is to make it reusable
in other codecs, and I'm not clear yet that this is being supported anywhere.
@tidoust
Copy link
Member Author

tidoust commented Nov 29, 2023

the code looks good, but "shortTitle": "Draft", and "shortTitle": "v1.0", in the generated output don't.

Good catch. Fixed by improving rules.

they're all marked as browser specs - I assume this is correct, but is beyond my expertise for at least some of them

I dropped the film grain synthesis spec from the browser category. Browsers should actually support the underlying feature for AV1 because it is part of the AV1 spec, but the film grain synthesis spec is designed to make the feature agnostic of the codec, and I'm not yet clear that there are plans to support it elsewhere.

I kept other specs in the browser category. Browser implementation status is not fully clear, but that is consistent with what we've been doing for some of the MSE and WebCodecs registry entries.

@@ -79,6 +79,12 @@ describe("compute-shorttitle module", () => {
"Foo Bar");
});

it("drops '(Draft)' from title", () => {
assertTitle(
"(Draft) Beer",
Copy link
Member

Choose a reason for hiding this comment

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

🍻 ☺

@tidoust
Copy link
Member Author

tidoust commented Nov 29, 2023

CI tests for some unknown reason, but then the update will indeed create a problem as one of the added specs has an "AOM Working Group Draft" status, which is not expected (and not really an official AOM status...). I guess I'm going to add support for AOM statuses right away after all.

AOM specs will now be flagged with an AOM status, which can be one of
"Draft Deliverable" or "Final Deliverable". There is unfortunately no
good way to detect that an AOM is a "Final Deliverable", this has to be
specified in `specs.json`.

The code now also automatically creates a `release` property when the
canonical URL of an AOM spec is a PDF.

Now, as far as I can tell, the main AV1 spec is the only one that points at its
PDF version as being the authoritative representation. Other final deliverables
do not say anything about the published PDF. I'm sticking to the HTML URLs as a
result.
@tidoust
Copy link
Member Author

tidoust commented Nov 29, 2023

I also added support for using the PDF URL as the canonical and release URL for the AV1 spec. It's not clear to me that the PDF version is the canonical representation of the other final deliverables, so I propose to stick to the HTML versions instead, now correctly flagged as "Final Deliverable".

The RTP spec remains a "Draft Deliverable" because that's what the spec says for now, pending AOMediaCodec/av1-rtp-spec#236

@tidoust tidoust merged commit 4358dc6 into main Nov 29, 2023
1 check passed
@tidoust tidoust deleted the aom branch November 29, 2023 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider adding AOM specs
2 participants