Restructured MPEG-4 Registration Authority Web Site
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CSV
Graphics
dist
lib
scripts
src
.gitignore
.travis.yml
CNAME
README.md
index.html
package.json

README.md

mp4ra

MPEG-4 Registration Authority Web Site

This site contains the master copy of the official MP4RA. Registration requests are formally sent to the email address documented on the site. These can be supported by a Pull Request here, which can reduce the possibility of error or confusion on the part of the maintainers. The simplest way to submit a pull request is probably as follows:

  • Fork the repository into your own area at GitHub
  • Go to that fork, and edit the GitHub.io link from mp4ra.github.io/mp4ra to change the first mp4ra to your area name
  • In your fork, make changes to the appropriate CSV files; start first by making sure that you have your specifications in specifications.csv, and then add/fix the code points in other tables (e.g. sample-entries for codec sample entry types). In those other tables, the visible specification name is used for cross-reference; the linkname you enter in specifications.csv will be retrieved and used to make HTML fragment URLs to refer to that entry.
  • Preview that in your fork
  • When it is right, submit a Pull Request, supported by a formal email, to the Mp4RA.

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.

Install dependencies

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

npm install

Building

Browserify bundles the complete frontend JavaScript, including dependencies, into one target file. The following command performs this operation.

browserify -t brfs src/app.js -o dist/js/bundle.js

Application design

The application logic is built using Vuejs framework. The data element of the application contains two main properties: db and urls. The URLs of the CSV files are contained in the urls property while the data from these CSV are loaded in the db property.

The navigation on the website follows the single-page application approach. That is, the web browser loads the entire HTML and the router-vue component updates the DOM when the user nagivates via the menu.

Adding content

A page

The pages are located in src/pages of the project. Each of the page has a JavaScript file and a Vue template, e.g. my_page.js and my_page.vue.

The JavaScript file contains the Vuejs component defining the page. Similarly, the Vue template contains the HTML data associated to this page.

The main application defined in src/app.js loads the pages via their respective JavaScript files and then injects them in the Vue router as Vue components with an associated path, i.e. the relative URL of the given page.