diff options
Diffstat (limited to 'contrib/file/Magdir/vorbis')
-rw-r--r-- | contrib/file/Magdir/vorbis | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/file/Magdir/vorbis b/contrib/file/Magdir/vorbis new file mode 100644 index 000000000000..6e4efadc21ee --- /dev/null +++ b/contrib/file/Magdir/vorbis @@ -0,0 +1,65 @@ + +#------------------------------------------------------------------------------ +# vorbis: file(1) magic for Ogg/Vorbis files +# +# From Felix von Leitner <leitner@fefe.de> +# Extended by Beni Cherniavsky <cben@crosswinds.net> +# +# Most (everything but the number of channels and bitrate) is commented +# out with `##' as it's not interesting to the average user. The most +# probable things advanced users would want to uncomment are probably +# the number of comments and the encoder version. +# +# --- Ogg Framing --- +0 string OggS Ogg data +>4 byte !0 UNKNOWN REVISION %u +##>4 byte 0 revision 0 +>4 byte 0 +##>>14 lelong x (Serial %lX) +# --- First vorbis packet - general header --- +>>28 string \x01vorbis \b, Vorbis audio, +>>>35 lelong !0 UNKNOWN VERSION %lu, +##>>>35 lelong 0 version 0, +>>>35 lelong 0 +>>>>39 ubyte 1 mono, +>>>>39 ubyte 2 stereo, +>>>>39 ubyte >2 %u channels, +>>>>40 lelong x %lu Hz +# Minimal, nominal and maximal bitrates specified when encoding +>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \b, +# The above tests if at least one of these is specified: +>>>>>44 lelong !-1 +>>>>>>44 lelong x >%lu +>>>>>48 lelong !-1 +>>>>>>48 lelong x ~%lu +>>>>>52 lelong !-1 +>>>>>>52 lelong x <%lu +>>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff kbps +# -- Second vorbis header packet - the comments +>>>102 string \x03vorbis +# A kludge to read the vendor string. It's a counted string, not a +# zero-terminated one, so file(1) can't read it in a generic way. +# libVorbis is the only one existing currently, so I detect specifically +# it. The interesting value is the cvs date (8 digits decimal). +##>>>>113 string/c Xiphophorus\ libVorbis\ I \b, created by: Xiphophorus libVorbis I +##>>>>>137 string >00000000 %.8s +# Map to beta version numbers: +##>>>>>>137 string <20000508 (<beta1 - prepublic) +# The string has not changed from beta1 to 2 - they are indistinguishable. +##>>>>>>137 string 20000508 (beta1/2) +##>>>>>>137 string >20000508 +##>>>>>>>137 string <20001031 (beta2-3) +##>>>>>>137 string 20001031 (beta3) +##>>>>>>137 string >20001031 +##>>>>>>>137 string <20010225 (beta3-4) +##>>>>>>137 string 20010225 (beta4) +##>>>>>>137 string >20010225 +##>>>>>>>137 string <20010615 (beta4-RC1) +##>>>>>>137 string 20010615 (RC1) +##>>>>>>137 string >20010615 (>RC1) +# Then come the comments, again length-counted (and number-counted). +# Some looping constructs and registers would allow reading them but now +# it's impossible. However we can print the number of comments present +# (skipping by the vendor string length): +##>>>>(109.l.113) lelong 0 \b, no comments +##>>>>(109.l+113) lelong >0 \b, %lu comments |