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

Register isoflac fLaC and dfLa fourccs with MP4RA #38

Closed
davemevans opened this issue Jul 18, 2017 · 7 comments
Closed

Register isoflac fLaC and dfLa fourccs with MP4RA #38

davemevans opened this issue Jul 18, 2017 · 7 comments

Comments

@davemevans
Copy link

https://github.com/xiph/flac/blob/master/doc/isoflac.txt defines encapsulation of FLAC in MP4 and includes a new AudioSampleEntry descriptor (fourcc: fLaC) and well as a new child box, FLACSpecificBox (fourcc: dfLa).

These should be registered with MP4RA at http://www.mp4ra.org/codecs.html to aid interoperability - see w3c/media-source#188.

@wolenetz
Copy link

Along with registration of these fourccs at MP4RA (and linking that registration to the iso-flac.txt specification hosted in this repository), I am concerned that RFC-6381 explicitly mentions (bold mine):

the first element of a 'codecs' parameter value is a sample description entry four-character code as registered by the MP4 Registration Authority [MP4RA]. Values are case sensitive.

That fourcc is "fLaC", but in w3c/media-source#188 (comment), the codec parameter currently being experimented with is "flac".

Why is the "fLaC" fourcc mixed-case? Does it have to be? Is it too late to change it? And if so, must we make an exception in the MSE ISOBMFF bytestream spec specifically allowing either "flac" or "fLaC" codecs parameter to identify iso-flac?

@jyavenard
Copy link

For all purposes, isoflac.text name FLAC as the codec name (all uppercase).
fLaC is just the name used for the new MP4 box AudioSampleEntry. I don't think it should have any bearing on the codec name.

If it was to be something it should be FLAC as that's what's used everywhere in the FLAC spec.

@davemevans
Copy link
Author

Why is the "fLaC" fourcc mixed-case?

Presumably because this specification reuses the FLAC Stream Marker used to denote a non-ISOBMFF FLAC stream.

Does it have to be? Is it too late to change it?

The registry simply identifies sample formats - there already exists at least one other mixed-case entry - Opus. Clearly there are implementations in the field (at least ffmpeg, gstreamer, vlc, Firefox), which creates a legacy problem. Further, several of these identify the codec via the sample format rather than by MIME-type so are unaffected by the rules of MSE and the associated RFC. Is a change really necessary?

@ktmf01
Copy link
Collaborator

ktmf01 commented May 30, 2022

In preparing a registration request I just learned that the afconvert utility shipped with Mac OS X also muxes FLAC in MP4 using fLaC and dfLa fourccs. I guess there's no changing this to flac and dfla now anymore.

@jprjr
Copy link

jprjr commented Jul 6, 2022

Hi there - I've noticed a lot of browsers support the codec string flac, but not fLaC, when using browser APIs like MediaSource.isTypeSupported(), creating SourceBuffers, and so on.

Example:

MediaSource.isTypeSupported('audio/mp4; codec="flac"');
/* probably returns true */
MediaSource.isTypeSupported('audio/mp4; codec="fLaC"');
/* probably returns false */

The RFC for the codecs parameter (6381) states that for MP4/ISO files, the string should be what's registered at the MP4RA and is case-sensitive. So presuming the registered name will be fLaC, once registration is accepted the browsers would have a bug since they only accept flac.

I wanted to know if any progress had been made with the MP4 Registration Authority. If it's looking likely that the registered codec FOURCC will be fLaC, I'd be happy to file the needed bug reports for browsers to support it.

@ktmf01
Copy link
Collaborator

ktmf01 commented Jul 6, 2022

Application is under review here: mp4ra/mp4ra.github.io#147

@podborski
Copy link

Merged

@ktmf01 ktmf01 closed this as completed Aug 10, 2022
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

No branches or pull requests

6 participants