Coder Social home page Coder Social logo

mp4ra.github.io's Introduction

MPEG-4 Registration Authority (MP4RA)

This repository contains the master copy of the official MP4 Registration Authority (MP4RA) and serves as the primary platform for the submission and management of registration requests to the MP4RA.

Submission of Registration Requests

In order to apply for an identifier to be registered, you must abide by the following terms established by ISO. (Note that RID stands for "registered identifier", a code-point in this case).

The party requesting a format identifier shall:

  1. apply using the Form and procedures supplied by the Registration Authority;
  2. include a description of the purpose of the registered identifier, and the required technical details as specified in the application form;
  3. provide contact information describing how a complete description can be obtained on a non-discriminatory basis;
  4. agree to institute the intended use of the granted RID within a reasonable time frame; and
  5. to maintain a permanent record of the application form and the notification received from the Registration Authority of a granted RID.

If your suggested code-point is already in use, or the authority considers that the suggested value is unsuitable or may be misleading, the authority may suggest an alternative value.

There are two distinct methods for submitting a registration request. Regardless of the submission method, an issue along with an associated pull request will be opened in this repository to track and manage the registration request process.

Issue Template Submission

  1. Initiate Request: Registration requests can be initiated by using the specifically designed issue templates available in this repository.
  2. Mandatory and Optional Information: The issue template includes a series of mandatory fields that must be filled out to process the request. Additionally, optional fields are provided for supplementary information.
  3. Handling Sensitive Information: Given the public nature of GitHub, any sensitive information, particularly contact details, should not be disclosed directly in the issue if the requester opts for privacy. In such cases, leave these fields blank and send us an email to mp4reg [at] group.apple.com or qtfourcc [at] group.apple.com with that information including the link to the issue you created.

Email Submission

As an alternative to the issue template, requests can be formally sent via email to mp4reg [at] group.apple.com (or qtfourcc [at] group.apple.com for QuickTime Registration) using the following:

Email submission form
  1. The name, address, and URL of the organization requesting the code-point.
  2. The kind of code-point you wish to register (please choose from the set of registered types).
  3. For all except object-type registrations, the suggested identifier (four-character code). Note that four-character codes use four 8-bit printable characters, usually from the first 128 Unicode characters (commonly thought of as plain ASCII), but at most from the first 256 Unicode characters.
  4. The specification in which this code-point is defined, if possible. A copy of the specification would be appreciated, as it enables the authority to understand the registration better. If you are requesting a 'codec' code-point, a reference to the definition of the coding system itself, if separate from the definition of its storage in these files, would also be appreciated.
  5. A brief 'abstract' of the meaning of the code-point, perhaps ten to twenty words (see examples on this site)
  6. Contact information for an authorized representative for the code-point, including:
    • Contact person's name, title, and orgaanization.
    • Contact email.
    • Contact telephone number, and fax number if available.
    • Contact physical address (street address), if applicable.
  7. Date of definition or implementation (if known) or intended date (if in future).
  8. Statement of an intention to apply (implement) the assigned code-point.

Please make sure to include mp4reg or qtreg in the subject of your email.

Communication and Collaboration

  1. Direct Communication: The requestor is encouraged to communicate any desired changes or additional information directly on the issue or the associated pull request. This ensures a transparent and collaborative environment for request management.
  2. Repository Forking Unnecessary: It is not required for the requestor to fork this repository for the purpose of submitting or discussing registration requests.

Development

This part is only relevant for developers of the web site showing the registration authority. Owners of specifications wanting to submit a pull request to register some code points do not need to be concerned about this section.

Branches

  • main branch (configured as default branch)
    • All the commits to modify the registry or the website must be pushed the main branch.
    • Every pull request and commit in this branch triggers the compilation of the website using GitHub Actions.

Install dependencies

The dependencies of the project are tracked in src/package.json. To install them, run the following command in src directory.

npm install

Building

The website is built with Next.js framework. To build the website, run the following command in src directory.

npm run build

Application design

The website is built with Next.js framework. The framework allows to create a mostly static website. The pages are generated at build time and served statically. All of the pages are created in MDX which is a combination of Markdown and JSX. The pages are located in src/app of the project.

Adding content

A page

It is strongly advised that you skim through the Next.js documentation before adding content.

There are two ways to add a page to the website:

  • Create a new MDX file in src/app directory. The file directory will be used as the URL of the page. For example, src/app/my-page/page.mdx will be available at https://mp4ra.org/my-page.

    Note: The file name must be page.mdx for the page to be generated.

  • Add the appropriate entry in src/app/(rest)/registered-types/[type]/page.tsx. This is a dynamic route that generates a page for every entry in MISC_TYPES. This is useful if you do not want to add additional content to the page except for the title and table.

4CC_Automation/

See the 4CC_Automation/readme.md file for more details about this addition.

mp4ra.github.io's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mp4ra.github.io's Issues

How to register common, but undocumented boxes?

There are a lot of metadata boxes in current use for audio and video files that apparently have never been registered, or are at least missing not documented at the MP4RA site (and in this repository). Many of them originate in Apple iTunes (or Quicktime), but are supported by other software as well, based upon reverse-engineered documentation I suppose. Some of these start with the copyright symbol, e.g. ©ART or ©nam, to mark them as private-use obviously, but others are not, e.g. stik, hdvd, tves or purl.

The following points are not clear to me:

  1. Should all of these be registered, or just ones not starting with $a9?
  2. Would registering them be possible at all without a formal and publicly available specification?
  3. If a public specification is needed, but the vendor is not willing to release one, would it be acceptable to create and publish one elsewhere?
  4. If so, would this require backing from a formal standardization body or a company, or could it be done as a collaborative open-source effort?

Entries from 23003-5

Name

MPEG

Address

No response

URL

No response

Kind

Sample Entry Types

Identifier (four-character code)

ipcm,fpcm

Specification

No response

Abstract

From: #167

"Information technology — MPEG audio technologies — Part 5: Uncompressed audio in MPEG-4 file format" specifies several code points that should be registered:
sample entry box:

  • pcmC
    codecs:
  • ipcm
  • fpcm

Name, Title, Organization

MPEG

Email

No response

Phone

No response

Address

No response

Date of Definition

No response

Statement of Intention

No response

all database information should be stored external to Apple

The current email submission template includes contact and other information not part of the public facing database. It is desirable I think to create a private section of the database that retains this information external to Apple.

Sample groups for SVC/MVC

It seems that some of the 4CCs related to SVC and MVC do not belong to sample groups:

  • svpr - PriorityRangeBox, containers=[scif, mvif]
  • svdr - SVCDependencyRangeBox, containers=[scif]
  • svip - InitialParameterSetBox, containers=[scif, mvif]
  • rrgn - RectRegionBox, containers=[scif]
  • ldep - TierDependencyBox, containers=[scif, mvif]
  • iroi - IroiInfoBox, containers=[scif]
  • tran - TranscodingInfoBox, containers=[scif]

All of those are actually boxes and not sample groups. They appear in actual sample groups scif or mvif VisualSampleGroupEntries. I guess these should be moved to boxes.csv?

Non-functional links on Entity Group search results

Describe the bug
Search results for entity groups return results where the specification link is OK, but the category link is broken.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'https://mp4ra.org'
  2. Click on 'Search'
  3. Enter altr
  4. Click on 'Entity Groups' in the search result
  5. Note the empty page

Expected behavior
Clicking on 'Entity Groups' should take you to the entity groups results

Screenshots
N/A

Desktop (please complete the following information):

  • OS: Linux
  • Browser: Firefox
  • Version: 104.0

Additional context
It might also be nice to have https://mp4ra.org/#/entity_group be a working link.

CMAF brands

We should probably get started adding the CMAF brands. In addition to the ones in the published 23000-19, we have the amendments and 3rd party ones that will be starting to queue up with increasing probability of collision. Is it worth organizing them in a CMAF subsection under brands? A subsection for CMAF Supplemental Data? Or are they all just "brands"?

MPEG-H 3D Audio configuration box is missing

While the RA has entries for MPEG-H 3D Audio sample entry types (e.g. mha1, mha2), it does not have an entry for the configuration box mhaC, while it has for other video codecs (avcC, vvcC, av1C). This seems like it should be added.

Tracking sample auxiliary information aux_info_type values

14496-12 defines aux_info_type (in saio, and saiz) as a 4CC defining the type of auxiliary information. It is used by the Common Encryption specification, which reserves schemes like cenc. It'd be good to have an entry in the MP4RA for tracking all values that are used.

Allow multiple defining specifications

Some boxes might be defined in one specification, and extended by other specifications.

For example, the Colour Specification box specified in ISO/IEC 15444-1 is extended by ISO/IEC 15444-2 and ISO/IEC 15444-15.

Suggest allowing multiple defining specifications.

ISOBMFF source

Describe the bug

specifications.csv and hence the references page cite ISO/IEC 14496-12:2004 (and 15444-12:2004) for the ISO base media file format and note that they are available as a publicly available standard from ISO. MPEG-4 Part 12 has been updated several times since 2004, the last time in December 2020, and it is not a Publicly Available Standard either yet or anymore. JPEG 2000 Part 12 has been withdrawn in 2015.

To Reproduce

Steps to reproduce the behavior:

  1. Go to https://mp4ra.org/#/references
  2. Go to the row with name column entry ISO
  3. Click on the second link provided there, leading to http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
  4. Try to find any edition of ISO/IEC 14496-12 (MPEG-4) or ISO/IEC 15444-12 (JPEG 2000) there
  5. Find no result

Expected behavior

If the standard should still be available freely to the public, ISO or the respective Maintenance Agency (which is Apple Inc. in this case) should actually list and publish it on the linked page.
Otherwise the link and note should be removed.

mvdr vs 3dpr

mvdr is regisered and described as MVDDepthResolutionBox. However, in Part 15 there is no mvdr defined and MVDDepthResolutionBox is defined as:

class MVDDepthResolutionBox extends Box('3dpr') {...}

I guess we should change mvdr to 3dpr.

Register new codec AV1-related Dolby Vision - 'dav1'

1. Name of the organization making the request: Dolby

Please send contact information for that organization, should questions arise at application time or in future, in email to mp4reg at group.apple.com.

2. statement of an intent to apply the code-points in practice: Currently in use.

3. For each code-point requested:

3.1 The type of value requested: Codecs

identify the table on the site in which your value should appear

3.2 The desired value (typically a four-character code): 'dav1'

This should not conflict with any existing or pending code-point visible at the publication site

3.3 Short description of the code-point's meaning: "AV1-related Dolby Vision consistent with ‘av01’"

example descriptions are on the site

3.4 Link to the documentation/specification: existing "Dolby Vision"

link to the place where more information about the code-point can be found (ideally, identification of a published defining specification or other document). If you link to contact information for requesting documentation, please be as specific as possible.

3.5 Any other values needed to complete the request: none

notably, any other data needed for the row of the table into which the code-point will be placed.

Clarify that all boxes should be registered

The MP4RA should be clearer about what is expected of boxes that are contained in a registered box.

For example, if a spec defines a box 'fooC' that can contain other boxes like 'barX' should you register only 'fooC' or also 'barX'. I think all boxes should be registered.

Some people seem to think that 'barX' does not need to be registered because it's only used inside 'fooC'. I don't think that's the right practice as then you risk having two 'barX' boxes with different content and parsers will have to carry context (am I parsing a barX box inside the fooC context or outside?).

IAMF on behalf of the Alliance for Open Media

Name

Alliance for Open Media

Address

No response

URL

https://aomedia.org/

Kind

Sample Entry Types

Identifier (four-character code)

iamf

Specification

https://aomediacodec.github.io/iamf/

Abstract

Immersive Audio Model and Formats - Encapsulated IA Sequence

Name, Title, Organization

Thomas Daede, Vimeo, Inc.

Email

No response

Phone

No response

Address

No response

Date of Definition

3 October 2023

Statement of Intention

A reference implementation exists, and implementors intend to ship in products.

Duplicate 'colr' box definitions

The colr entry at CSV/item-properties.csv duplicates that at CSV/sample-entries-boxes.csv. The defining specification for the former explicitly states that The colour information 'colr' descriptive item property has the same syntax as the ColourInformationBox as defined in [the latter]

Question on `adda` and `adrc`

I have a question.
Where are track references of types adda and adrc defined? mp4ra points to 23003-4 but I can not find them there.

Also note that AMD1 of 23003-4 mentions those being defined in Part 12. But this seems not to be true as there are no definitions for those in clauses 6.x.x.

File Format payload FourCC Version Defined in ISO/IEC Defined in sub-clause Loudness Control profile Dynamic Range Control profile
Track reference for additional audio track adda n/a 14496-12 6.4.5 a a
Track reference for DRC metadata track adrc n/a 14496-12 6.1.1   b

In Part 12 adda is mentioned in clause 12.2.6 though. Is it considered to be defined in Part 12? If yes, we should probably add an entry in clause 8.3.3.3. And what about adrc?

Check status of PR

We need to add a TravisCI script that checks when someone makes a PR to make sure that the PR cannot be merged if one of the following criteria applies:

  • it's touching the JS or HTML
  • it's removing something from a CSV
  • there's already an entry with that value in the CSV

The TravisCI integration is easy. The writing of the checks needs work.

spurious newlines in brands

See:

M4A$20 | iTunes MPEG-4 audio protected or not, | iTunes
  | can contain audio + video + 3g text track + chapter track |  
M4B$20 | iTunes AudioBook protected or not | iTunes
  | can contain audio + video + 3g text track + chapter track |  

documentation is needed even for those familiar with the mp4ra site

Some suggestions for a README...

  1. Note that everything is under "CSV".
  2. Note that if there if a new reference spec is needed for a new entry, then add that first in "specifications.csv"
  3. Make the CSV filenames match the website labels exactly.
  4. Clarify the specification linkage field (see #5 )

Update the guidelines

As discussed during MPEG 140:

We update the guidelines to ask for a (draft) Pull Request additional to the email when request a new code point

CMAF Media Profile - HEVC HDR10 w SCTE Dynamic Metadata App #1

1. Name of the organization making the request: Dolby

Please send contact information for that organization, should questions arise at application time or in future, in email to mp4reg at group.apple.com.

2. statement of an intent to apply the code-points in practice: This will be deployed shortly.

3. For each code-point requested:

3.1 The type of value requested: brand

identify the table on the site in which your value should appear

3.2 The desired value (typically a four-character code) 'cdm1'

This should not conflict with any existing or pending code-point visible at the publication site

3.3 Short description of the code-point's meaning: CMAF Media Profile - HEVC HDR10 w SCTE Dynamic Metadata App #1

example descriptions are on the site

3.4 Link to the documentation/specification: www.scte.org (SCTE 215-1-1)

link to the place where more information about the code-point can be found (ideally, identification of a published defining specification or other document). If you link to contact information for requesting documentation, please be as specific as possible.

3.5 Any other values needed to complete the request

notably, any other data needed for the row of the table into which the code-point will be placed.

Update description of brand entries for DTS

The three DTS brands, dts1, dts2 and dts3 don't specifically mention that they are CMAF brands. This was always the intention. I would like to fix this with the following text update:
dts1: Indicates a CMAF compliant MP4 track with audio codecs dtsc, dtsh or dtse
dts2: Indicates a CMAF compliant MP4 track with audio codec dtsx
dts3: Indicates a CMAF compliant MP4 track with audio codec dtsy

Travis-ci.org builds are not working anymore.

Since June 15th, 2021, the building on travis-ci.org is ceased so the automatic deployments do not work anymore.

Looks like we have 2 options to solve this:

  • Switch to travis-ci.com
  • Switch to GitHub actions

Any ideas?

Improve specification handling

find a better way to capture specifications. use non-dated version of specs, use JSON and group specs by SDO. This info can be useful in combination with the conformance framework.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.