[NUT-devel] Fourcc spec

Rich Felker dalias at aerifal.cx
Fri Nov 17 17:01:45 CET 2006


On Fri, Nov 17, 2006 at 01:57:35PM +0100, Michael Niedermayer wrote:
> Hi
> 
> On Fri, Nov 17, 2006 at 10:33:20AM +0100, Baptiste Coudurier wrote:
> > Hi
> > 
> > Oded Shimon wrote:
> > > This specification is normative to demuxers, informative to muxers. It 
> > > does not need to be actively maintained, because it does NOT list all 
> > > legal fourcc's, only the ones noted by the specification. I'd like to 
> > > commit it to nut/docs/fourcc.txt .
> > > 
> > > - ods15
> > > 
> > > Demuxers which support the codec listed MUST support the fourcc listed
> > > here.
> > > Muxers SHOULD use the fourcc listed here for codecs.
> > > 
> > > Video:
> > > "mp4s"        MPEG-4 Part 2
> > 
> > NO PLEASE ! "mp4v"
> > mp4s is used in mov/mp4/3gp to specify data/subs/whatever.
> >
> > > "h263"        H.263
> > > "h264"        MPEG-4 Part 10/H.264
> > > "snow"        Snow
> > > "drac"        Dirac/Schroedinger
> > > "vc1 "        VC-1
> > > 
> > > Audio:
> > > "vrbs"        Xiph.org Vorbis
> > > "mp2 "        MP2
> > > "mp3 "        MP3
> > > "ac3 "        AC3
> > > "aac "        AAC/MPEG-4 Part 3
> > > "eac3"        EAC3
> > > "flac"        Free Lossless Audio Codec
> > > "wavp"        WavPack
> > > 
> > 
> > Ok but please do not put them in riff.c ;)
> 
> no, and add a syntax element to the stream headers which says which
> type of codec id is used avi style or nut style (or qt style) hmm
> i do think you can copy and paste the text from matroska that will
> save some time
> 
> if this gets accepted we have surpassed avi and mov in brokenness
> several seperate codec id systems

I don't follow. There is no "several different codec id systems"
proposed here. This is intended as a normative list of names. For
video the established, sane, implementation-independent fourcc should
be used. What a spec like Oded has proposed should be interpreted as
meaning is:

1. If you're making a NUT player and it supports one of the codecs
   listed here, it MUST accept the codec_id listed if it accepts any
   codec_id at all.

2. If you're writing a NUT file using a common codec listed here, then
   you had better use the listed codec_id or there's no reason to
   expect that any conformant NUT player will be able to play it.

3. If the codec was not popular/not listed before, you might have
   previously used another codec_id for it for whatever reason, e.g.
   because two parties independently were the first to put the codec
   in a container and didn't know what the other was using. There's no
   reason to forbid players from accepting this alternate codec_id
   (since a multi-format player will already have other names in its
   tables anyway, and since such files may be useful). But such
   codec_id values should be considered as deprecated.

Again there is absolutely no "multiple systems" concept being
proposed. The intended use of avi-like fourcc has always stemmed from
the (correct!) assumption that any multi-format player will already
have a large table of four-byte codec identifiers that can be unified
across the vast majority of container formats (since they don't use
conflicting identifiers). IMO it's much like the MIME or iconv charset
identifier situation, where popular iconv implementations support:

1. preferred MIME name
2. any alternate/legacy MIME names
3. various other legacy names

even though the intent is that new applications and data should use
only the preferred MIME name.

Rich




More information about the NUT-devel mailing list