summaryrefslogtreecommitdiff
path: root/usr.bin/file/magdir/animation
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/file/magdir/animation')
-rw-r--r--usr.bin/file/magdir/animation696
1 files changed, 568 insertions, 128 deletions
diff --git a/usr.bin/file/magdir/animation b/usr.bin/file/magdir/animation
index b0af39fbd70..e525bd137c3 100644
--- a/usr.bin/file/magdir/animation
+++ b/usr.bin/file/magdir/animation
@@ -1,4 +1,4 @@
-# $OpenBSD: animation,v 1.3 2004/06/03 03:14:19 tedu Exp $
+# $OpenBSD: animation,v 1.4 2008/05/08 01:40:57 chl Exp $
#------------------------------------------------------------------------------
# animation: file(1) magic for animation/movie formats
@@ -7,123 +7,571 @@
# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
-# MPEG animation format
-0 belong 0x000001b3 MPEG video stream data
-#>4 beshort&0xfff0 x (%d x
-#>5 beshort&0x0fff x %d)
-0 belong 0x000001ba MPEG system stream data
+# SGI and Apple formats
+0 string MOVI Silicon Graphics movie file
+4 string moov Apple QuickTime
+>12 string mvhd \b movie (fast start)
+>12 string mdra \b URL
+>12 string cmov \b movie (fast start, compressed header)
+>12 string rmra \b multiple URLs
+4 string mdat Apple QuickTime movie (unoptimized)
+4 string wide Apple QuickTime movie (unoptimized)
+4 string skip Apple QuickTime movie (modified)
+4 string free Apple QuickTime movie (modified)
+4 string idsc Apple QuickTime image (fast start)
+4 string idat Apple QuickTime image (unoptimized)
+4 string pckg Apple QuickTime compressed archive
+4 string/B jP JPEG 2000 image
+4 string ftyp ISO Media
+>8 string isom \b, MPEG v4 system, version 1
+>8 string iso2 \b, MPEG v4 system, part 12 revision
+>8 string mp41 \b, MPEG v4 system, version 1
+>8 string mp42 \b, MPEG v4 system, version 2
+>8 string mp7t \b, MPEG v4 system, MPEG v7 XML
+>8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML
+>8 string/B jp2 \b, JPEG 2000
+>8 string 3gp \b, MPEG v4 system, 3GPP
+>>11 byte 4 \b v4 (H.263/AMR GSM 6.10)
+>>11 byte 5 \b v5 (H.263/AMR GSM 6.10)
+>>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10)
+>8 string mmp4 \b, MPEG v4 system, 3GPP Mobile
+>8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC
+>8 string/B M4A \b, MPEG v4 system, iTunes AAC-LC
+>8 string/B M4P \b, MPEG v4 system, iTunes AES encrypted
+>8 string/B M4B \b, MPEG v4 system, iTunes bookmarked
+>8 string/B qt \b, Apple QuickTime movie
+
+# MPEG sequences
+# Scans for all common MPEG header start codes
+0 belong 0x00000001 JVT NAL sequence
+>4 byte&0x1F 0x07 \b, H.264 video
+>>5 byte 66 \b, baseline
+>>5 byte 77 \b, main
+>>5 byte 88 \b, extended
+>>7 byte x \b @ L %u
+0 belong&0xFFFFFF00 0x00000100 MPEG sequence
+>3 byte 0xBA
+>>4 byte &0x40 \b, v2, program multiplex
+>>4 byte ^0x40 \b, v1, system multiplex
+>3 byte 0xBB \b, v1/2, multiplex (missing pack header)
+>3 byte&0x1F 0x07 \b, H.264 video
+>>4 byte 66 \b, baseline
+>>4 byte 77 \b, main
+>>4 byte 88 \b, extended
+>>6 byte x \b @ L %u
+>3 byte 0xB0 \b, v4
+>>5 belong 0x000001B5
+>>>9 byte &0x80
+>>>>10 byte&0xF0 16 \b, video
+>>>>10 byte&0xF0 32 \b, still texture
+>>>>10 byte&0xF0 48 \b, mesh
+>>>>10 byte&0xF0 64 \b, face
+>>>9 byte&0xF8 8 \b, video
+>>>9 byte&0xF8 16 \b, still texture
+>>>9 byte&0xF8 24 \b, mesh
+>>>9 byte&0xF8 32 \b, face
+>>4 byte 1 \b, simple @ L1
+>>4 byte 2 \b, simple @ L2
+>>4 byte 3 \b, simple @ L3
+>>4 byte 4 \b, simple @ L0
+>>4 byte 17 \b, simple scalable @ L1
+>>4 byte 18 \b, simple scalable @ L2
+>>4 byte 33 \b, core @ L1
+>>4 byte 34 \b, core @ L2
+>>4 byte 50 \b, main @ L2
+>>4 byte 51 \b, main @ L3
+>>4 byte 53 \b, main @ L4
+>>4 byte 66 \b, n-bit @ L2
+>>4 byte 81 \b, scalable texture @ L1
+>>4 byte 97 \b, simple face animation @ L1
+>>4 byte 98 \b, simple face animation @ L2
+>>4 byte 99 \b, simple face basic animation @ L1
+>>4 byte 100 \b, simple face basic animation @ L2
+>>4 byte 113 \b, basic animation text @ L1
+>>4 byte 114 \b, basic animation text @ L2
+>>4 byte 129 \b, hybrid @ L1
+>>4 byte 130 \b, hybrid @ L2
+>>4 byte 145 \b, advanced RT simple @ L!
+>>4 byte 146 \b, advanced RT simple @ L2
+>>4 byte 147 \b, advanced RT simple @ L3
+>>4 byte 148 \b, advanced RT simple @ L4
+>>4 byte 161 \b, core scalable @ L1
+>>4 byte 162 \b, core scalable @ L2
+>>4 byte 163 \b, core scalable @ L3
+>>4 byte 177 \b, advanced coding efficiency @ L1
+>>4 byte 178 \b, advanced coding efficiency @ L2
+>>4 byte 179 \b, advanced coding efficiency @ L3
+>>4 byte 180 \b, advanced coding efficiency @ L4
+>>4 byte 193 \b, advanced core @ L1
+>>4 byte 194 \b, advanced core @ L2
+>>4 byte 209 \b, advanced scalable texture @ L1
+>>4 byte 210 \b, advanced scalable texture @ L2
+>>4 byte 211 \b, advanced scalable texture @ L3
+>>4 byte 225 \b, simple studio @ L1
+>>4 byte 226 \b, simple studio @ L2
+>>4 byte 227 \b, simple studio @ L3
+>>4 byte 228 \b, simple studio @ L4
+>>4 byte 229 \b, core studio @ L1
+>>4 byte 230 \b, core studio @ L2
+>>4 byte 231 \b, core studio @ L3
+>>4 byte 232 \b, core studio @ L4
+>>4 byte 240 \b, advanced simple @ L0
+>>4 byte 241 \b, advanced simple @ L1
+>>4 byte 242 \b, advanced simple @ L2
+>>4 byte 243 \b, advanced simple @ L3
+>>4 byte 244 \b, advanced simple @ L4
+>>4 byte 245 \b, advanced simple @ L5
+>>4 byte 247 \b, advanced simple @ L3b
+>>4 byte 248 \b, FGS @ L0
+>>4 byte 249 \b, FGS @ L1
+>>4 byte 250 \b, FGS @ L2
+>>4 byte 251 \b, FGS @ L3
+>>4 byte 252 \b, FGS @ L4
+>>4 byte 253 \b, FGS @ L5
+>3 byte 0xB5 \b, v4
+>>4 byte &0x80
+>>>5 byte&0xF0 16 \b, video (missing profile header)
+>>>5 byte&0xF0 32 \b, still texture (missing profile header)
+>>>5 byte&0xF0 48 \b, mesh (missing profile header)
+>>>5 byte&0xF0 64 \b, face (missing profile header)
+>>4 byte&0xF8 8 \b, video (missing profile header)
+>>4 byte&0xF8 16 \b, still texture (missing profile header)
+>>4 byte&0xF8 24 \b, mesh (missing profile header)
+>>4 byte&0xF8 32 \b, face (missing profile header)
+>3 byte 0xB3
+>>12 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
+>>12 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
+>>12 belong 0x000001B5 \b, v2,
+>>>16 byte&0x0F 1 \b HP
+>>>16 byte&0x0F 2 \b Spt
+>>>16 byte&0x0F 3 \b SNR
+>>>16 byte&0x0F 4 \b MP
+>>>16 byte&0x0F 5 \b SP
+>>>17 byte&0xF0 64 \b@HL
+>>>17 byte&0xF0 96 \b@H-14
+>>>17 byte&0xF0 128 \b@ML
+>>>17 byte&0xF0 160 \b@LL
+>>>17 byte &0x08 \b progressive
+>>>17 byte ^0x08 \b interlaced
+>>>17 byte&0x06 2 \b Y'CbCr 4:2:0 video
+>>>17 byte&0x06 4 \b Y'CbCr 4:2:2 video
+>>>17 byte&0x06 6 \b Y'CbCr 4:4:4 video
+>>11 byte &0x02
+>>>75 byte &0x01
+>>>>140 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
+>>>>140 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
+>>>>140 belong 0x000001B5 \b, v2,
+>>>>>144 byte&0x0F 1 \b HP
+>>>>>144 byte&0x0F 2 \b Spt
+>>>>>144 byte&0x0F 3 \b SNR
+>>>>>144 byte&0x0F 4 \b MP
+>>>>>144 byte&0x0F 5 \b SP
+>>>>>145 byte&0xF0 64 \b@HL
+>>>>>145 byte&0xF0 96 \b@H-14
+>>>>>145 byte&0xF0 128 \b@ML
+>>>>>145 byte&0xF0 160 \b@LL
+>>>>>145 byte &0x08 \b progressive
+>>>>>145 byte ^0x08 \b interlaced
+>>>>>145 byte&0x06 2 \b Y'CbCr 4:2:0 video
+>>>>>145 byte&0x06 4 \b Y'CbCr 4:2:2 video
+>>>>>145 byte&0x06 6 \b Y'CbCr 4:4:4 video
+>>76 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
+>>76 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
+>>76 belong 0x000001B5 \b, v2,
+>>>80 byte&0x0F 1 \b HP
+>>>80 byte&0x0F 2 \b Spt
+>>>80 byte&0x0F 3 \b SNR
+>>>80 byte&0x0F 4 \b MP
+>>>80 byte&0x0F 5 \b SP
+>>>81 byte&0xF0 64 \b@HL
+>>>81 byte&0xF0 96 \b@H-14
+>>>81 byte&0xF0 128 \b@ML
+>>>81 byte&0xF0 160 \b@LL
+>>>81 byte &0x08 \b progressive
+>>>81 byte ^0x08 \b interlaced
+>>>81 byte&0x06 2 \b Y'CbCr 4:2:0 video
+>>>81 byte&0x06 4 \b Y'CbCr 4:2:2 video
+>>>81 byte&0x06 6 \b Y'CbCr 4:4:4 video
+>>4 belong&0xFFFFFF00 0x78043800 \b, HD-TV 1920P
+>>>7 byte&0xF0 0x10 \b, 16:9
+>>4 belong&0xFFFFFF00 0x50002D00 \b, SD-TV 1280I
+>>>7 byte&0xF0 0x10 \b, 16:9
+>>4 belong&0xFFFFFF00 0x30024000 \b, PAL Capture
+>>>7 byte&0xF0 0x10 \b, 4:3
+>>4 beshort&0xFFF0 0x2C00 \b, 4CIF
+>>>5 beshort&0x0FFF 0x01E0 \b NTSC
+>>>5 beshort&0x0FFF 0x0240 \b PAL
+>>>7 byte&0xF0 0x20 \b, 4:3
+>>>7 byte&0xF0 0x30 \b, 16:9
+>>>7 byte&0xF0 0x40 \b, 11:5
+>>>7 byte&0xF0 0x80 \b, PAL 4:3
+>>>7 byte&0xF0 0xC0 \b, NTSC 4:3
+>>4 belong&0xFFFFFF00 0x2801E000 \b, LD-TV 640P
+>>>7 byte&0xF0 0x10 \b, 4:3
+>>4 belong&0xFFFFFF00 0x1400F000 \b, 320x240
+>>>7 byte&0xF0 0x10 \b, 4:3
+>>4 belong&0xFFFFFF00 0x0F00A000 \b, 240x160
+>>>7 byte&0xF0 0x10 \b, 4:3
+>>4 belong&0xFFFFFF00 0x0A007800 \b, 160x120
+>>>7 byte&0xF0 0x10 \b, 4:3
+>>4 beshort&0xFFF0 0x1600 \b, CIF
+>>>5 beshort&0x0FFF 0x00F0 \b NTSC
+>>>5 beshort&0x0FFF 0x0120 \b PAL
+>>>7 byte&0xF0 0x20 \b, 4:3
+>>>7 byte&0xF0 0x30 \b, 16:9
+>>>7 byte&0xF0 0x40 \b, 11:5
+>>>7 byte&0xF0 0x80 \b, PAL 4:3
+>>>7 byte&0xF0 0xC0 \b, NTSC 4:3
+>>>5 beshort&0x0FFF 0x0240 \b PAL 625
+>>>>7 byte&0xF0 0x20 \b, 4:3
+>>>>7 byte&0xF0 0x30 \b, 16:9
+>>>>7 byte&0xF0 0x40 \b, 11:5
+>>4 beshort&0xFFF0 0x2D00 \b, CCIR/ITU
+>>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
+>>>5 beshort&0x0FFF 0x0240 \b PAL 625
+>>>7 byte&0xF0 0x20 \b, 4:3
+>>>7 byte&0xF0 0x30 \b, 16:9
+>>>7 byte&0xF0 0x40 \b, 11:5
+>>4 beshort&0xFFF0 0x1E00 \b, SVCD
+>>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
+>>>5 beshort&0x0FFF 0x0240 \b PAL 625
+>>>7 byte&0xF0 0x20 \b, 4:3
+>>>7 byte&0xF0 0x30 \b, 16:9
+>>>7 byte&0xF0 0x40 \b, 11:5
+>>7 byte&0x0F 1 \b, 23.976 fps
+>>7 byte&0x0F 2 \b, 24 fps
+>>7 byte&0x0F 3 \b, 25 fps
+>>7 byte&0x0F 4 \b, 29.97 fps
+>>7 byte&0x0F 5 \b, 30 fps
+>>7 byte&0x0F 6 \b, 50 fps
+>>7 byte&0x0F 7 \b, 59.94 fps
+>>7 byte&0x0F 8 \b, 60 fps
+>>11 byte &0x04 \b, Constrained
-# MPEG Audio (*.mpx)
+# MPEG ADTS Audio (*.mpx/mxa/aac)
# from dreesen@math.fu-berlin.de
+# modified to fully support MPEG ADTS
+
+# MP3, M1A
+0 beshort&0xFFFE 0xFFFA MPEG ADTS, layer III, v1
+# rates
+>2 byte&0xF0 0x10 \b, 32 kBits
+>2 byte&0xF0 0x20 \b, 40 kBits
+>2 byte&0xF0 0x30 \b, 48 kBits
+>2 byte&0xF0 0x40 \b, 56 kBits
+>2 byte&0xF0 0x50 \b, 64 kBits
+>2 byte&0xF0 0x60 \b, 80 kBits
+>2 byte&0xF0 0x70 \b, 96 kBits
+>2 byte&0xF0 0x80 \b, 112 kBits
+>2 byte&0xF0 0x90 \b, 128 kBits
+>2 byte&0xF0 0xA0 \b, 160 kBits
+>2 byte&0xF0 0xB0 \b, 192 kBits
+>2 byte&0xF0 0xC0 \b, 224 kBits
+>2 byte&0xF0 0xD0 \b, 256 kBits
+>2 byte&0xF0 0xE0 \b, 320 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 44.1 kHz
+>2 byte&0x0C 0x04 \b, 48 kHz
+>2 byte&0x0C 0x08 \b, 32 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+
+# MP2, M1A
+0 beshort&0xFFFE 0xFFFC MPEG ADTS, layer II, v1
+# rates
+>2 byte&0xF0 0x10 \b, 32 kBits
+>2 byte&0xF0 0x20 \b, 48 kBits
+>2 byte&0xF0 0x30 \b, 56 kBits
+>2 byte&0xF0 0x40 \b, 64 kBits
+>2 byte&0xF0 0x50 \b, 80 kBits
+>2 byte&0xF0 0x60 \b, 96 kBits
+>2 byte&0xF0 0x70 \b, 112 kBits
+>2 byte&0xF0 0x80 \b, 128 kBits
+>2 byte&0xF0 0x90 \b, 160 kBits
+>2 byte&0xF0 0xA0 \b, 192 kBits
+>2 byte&0xF0 0xB0 \b, 224 kBits
+>2 byte&0xF0 0xC0 \b, 256 kBits
+>2 byte&0xF0 0xD0 \b, 320 kBits
+>2 byte&0xF0 0xE0 \b, 384 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 44.1 kHz
+>2 byte&0x0C 0x04 \b, 48 kHz
+>2 byte&0x0C 0x08 \b, 32 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+
+# MPA, M1A
+# updated by Joerg Jenderek
+# GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
+0 beshort&0xFFFE 0xFFFE
+>2 ubyte&0xF0 >0x0F
+>>2 ubyte&0xF0 <0xE1 MPEG ADTS, layer I, v1
+# rate
+>>>2 byte&0xF0 0x10 \b, 32 kBits
+>>>2 byte&0xF0 0x20 \b, 64 kBits
+>>>2 byte&0xF0 0x30 \b, 96 kBits
+>>>2 byte&0xF0 0x40 \b, 128 kBits
+>>>2 byte&0xF0 0x50 \b, 160 kBits
+>>>2 byte&0xF0 0x60 \b, 192 kBits
+>>>2 byte&0xF0 0x70 \b, 224 kBits
+>>>2 byte&0xF0 0x80 \b, 256 kBits
+>>>2 byte&0xF0 0x90 \b, 288 kBits
+>>>2 byte&0xF0 0xA0 \b, 320 kBits
+>>>2 byte&0xF0 0xB0 \b, 352 kBits
+>>>2 byte&0xF0 0xC0 \b, 384 kBits
+>>>2 byte&0xF0 0xD0 \b, 416 kBits
+>>>2 byte&0xF0 0xE0 \b, 448 kBits
+# timing
+>>>2 byte&0x0C 0x00 \b, 44.1 kHz
+>>>2 byte&0x0C 0x04 \b, 48 kHz
+>>>2 byte&0x0C 0x08 \b, 32 kHz
+# channels/options
+>>>3 byte&0xC0 0x00 \b, Stereo
+>>>3 byte&0xC0 0x40 \b, JntStereo
+>>>3 byte&0xC0 0x80 \b, 2x Monaural
+>>>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+
+# MP3, M2A
+0 beshort&0xFFFE 0xFFF2 MPEG ADTS, layer III, v2
+# rate
+>2 byte&0xF0 0x10 \b, 8 kBits
+>2 byte&0xF0 0x20 \b, 16 kBits
+>2 byte&0xF0 0x30 \b, 24 kBits
+>2 byte&0xF0 0x40 \b, 32 kBits
+>2 byte&0xF0 0x50 \b, 40 kBits
+>2 byte&0xF0 0x60 \b, 48 kBits
+>2 byte&0xF0 0x70 \b, 56 kBits
+>2 byte&0xF0 0x80 \b, 64 kBits
+>2 byte&0xF0 0x90 \b, 80 kBits
+>2 byte&0xF0 0xA0 \b, 96 kBits
+>2 byte&0xF0 0xB0 \b, 112 kBits
+>2 byte&0xF0 0xC0 \b, 128 kBits
+>2 byte&0xF0 0xD0 \b, 144 kBits
+>2 byte&0xF0 0xE0 \b, 160 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 22.05 kHz
+>2 byte&0x0C 0x04 \b, 24 kHz
+>2 byte&0x0C 0x08 \b, 16 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+
+# MP2, M2A
+0 beshort&0xFFFE 0xFFF4 MPEG ADTS, layer II, v2
+# rate
+>2 byte&0xF0 0x10 \b, 8 kBits
+>2 byte&0xF0 0x20 \b, 16 kBits
+>2 byte&0xF0 0x30 \b, 24 kBits
+>2 byte&0xF0 0x40 \b, 32 kBits
+>2 byte&0xF0 0x50 \b, 40 kBits
+>2 byte&0xF0 0x60 \b, 48 kBits
+>2 byte&0xF0 0x70 \b, 56 kBits
+>2 byte&0xF0 0x80 \b, 64 kBits
+>2 byte&0xF0 0x90 \b, 80 kBits
+>2 byte&0xF0 0xA0 \b, 96 kBits
+>2 byte&0xF0 0xB0 \b, 112 kBits
+>2 byte&0xF0 0xC0 \b, 128 kBits
+>2 byte&0xF0 0xD0 \b, 144 kBits
+>2 byte&0xF0 0xE0 \b, 160 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 22.05 kHz
+>2 byte&0x0C 0x04 \b, 24 kHz
+>2 byte&0x0C 0x08 \b, 16 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+
+# MPA, M2A
+0 beshort&0xFFFE 0xFFF6 MPEG ADTS, layer I, v2
+# rate
+>2 byte&0xF0 0x10 \b, 32 kBits
+>2 byte&0xF0 0x20 \b, 48 kBits
+>2 byte&0xF0 0x30 \b, 56 kBits
+>2 byte&0xF0 0x40 \b, 64 kBits
+>2 byte&0xF0 0x50 \b, 80 kBits
+>2 byte&0xF0 0x60 \b, 96 kBits
+>2 byte&0xF0 0x70 \b, 112 kBits
+>2 byte&0xF0 0x80 \b, 128 kBits
+>2 byte&0xF0 0x90 \b, 144 kBits
+>2 byte&0xF0 0xA0 \b, 160 kBits
+>2 byte&0xF0 0xB0 \b, 176 kBits
+>2 byte&0xF0 0xC0 \b, 192 kBits
+>2 byte&0xF0 0xD0 \b, 224 kBits
+>2 byte&0xF0 0xE0 \b, 256 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 22.05 kHz
+>2 byte&0x0C 0x04 \b, 24 kHz
+>2 byte&0x0C 0x08 \b, 16 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
-# MPEG 1.0 Layer 3
-0 beshort&0xfffe =0xfffa \bMP3
->2 byte&0xf0 =0x10 \b, 32 kBits
->2 byte&0xf0 =0x20 \b, 40 kBits
->2 byte&0xf0 =0x30 \b, 48 kBits
->2 byte&0xf0 =0x40 \b, 56 kBits
->2 byte&0xf0 =0x50 \b, 64 kBits
->2 byte&0xf0 =0x60 \b, 80 kBits
->2 byte&0xf0 =0x70 \b, 96 kBits
->2 byte&0xf0 =0x80 \b, 112 kBits
->2 byte&0xf0 =0x90 \b, 128 kBits
->2 byte&0xf0 =0xA0 \b, 160 kBits
->2 byte&0xf0 =0xB0 \b, 192 kBits
->2 byte&0xf0 =0xC0 \b, 224 kBits
->2 byte&0xf0 =0xD0 \b, 256 kBits
->2 byte&0xf0 =0xE0 \b, 320 kBits
-# freq
->2 byte&0x0C =0x00 \b, 44.1 kHz
->2 byte&0x0C =0x04 \b, 48 kHz
->2 byte&0x0C =0x08 \b, 32 kHz
-# misc
->3 byte&0xC0 =0x00 \b, Stereo
->3 byte&0xC0 =0x40 \b, JStereo
->3 byte&0xC0 =0x80 \b, Dual-Ch
->3 byte&0xC0 =0xC0 \b, Mono
-#>1 byte&0x01 =0x00 \b, Error Protection
-#>2 byte&0x02 =0x02 \b, Padding
-#>2 byte&0x01 =0x01 \b, Private
-#>3 byte&0x08 =0x08 \b, Copyright
-#>3 byte&0x04 =0x04 \b, Original
-#>3 byte&0x03 1 \b, Emphasis 5
-#>3 byte&0x03 3 \b, Emphasis c
-
-# MPEG 1.0 Layer 2
-0 beshort&0xfffe =0xfffc \bMP2
->2 byte&0xf0 =0x10 \b, 32 kBits
->2 byte&0xf0 =0x20 \b, 48 kBits
->2 byte&0xf0 =0x30 \b, 56 kBits
->2 byte&0xf0 =0x40 \b, 64 kBits
->2 byte&0xf0 =0x50 \b, 80 kBits
->2 byte&0xf0 =0x60 \b, 96 kBits
->2 byte&0xf0 =0x70 \b, 112 kBits
->2 byte&0xf0 =0x80 \b, 128 kBits
->2 byte&0xf0 =0x90 \b, 160 kBits
->2 byte&0xf0 =0xA0 \b, 192 kBits
->2 byte&0xf0 =0xB0 \b, 224 kBits
->2 byte&0xf0 =0xC0 \b, 256 kBits
->2 byte&0xf0 =0xD0 \b, 320 kBits
->2 byte&0xf0 =0xE0 \b, 384 kBits
-# freq
->2 byte&0x0C =0x00 \b, 44.1 kHz
->2 byte&0x0C =0x04 \b, 48 kHz
->2 byte&0x0C =0x08 \b, 32 kHz
-# misc
->3 byte&0xC0 =0x00 \b, Stereo
->3 byte&0xC0 =0x40 \b, JStereo
->3 byte&0xC0 =0x80 \b, Dual-Ch
->3 byte&0xC0 =0xC0 \b, Mono
-#>1 byte&0x01 =0x00 \b, Error Protection
-#>2 byte&0x02 =0x02 \b, Padding
-#>2 byte&0x01 =0x01 \b, Private
-#>3 byte&0x08 =0x08 \b, Copyright
-#>3 byte&0x04 =0x04 \b, Original
-#>3 byte&0x03 1 \b, Emphasis 5
-#>3 byte&0x03 3 \b, Emphasis c
-
-# MPEG 2.0
-0 beshort&0xfff8 =0xfff0 MP
-# Layer 3
->1 byte &0x02 \b3
-# Layer 2
->1 byte &0x04 \b2
->2 byte&0xf0 =0x10 \b, 8 kBits
->2 byte&0xf0 =0x20 \b, 16 kBits
->2 byte&0xf0 =0x30 \b, 24 kBits
->2 byte&0xf0 =0x40 \b, 32 kBits
->2 byte&0xf0 =0x50 \b, 40 kBits
->2 byte&0xf0 =0x60 \b, 48 kBits
->2 byte&0xf0 =0x70 \b, 56 kBits
->2 byte&0xf0 =0x80 \b, 64 kBits
->2 byte&0xf0 =0x90 \b, 80 kBits
->2 byte&0xf0 =0xA0 \b, 96 kBits
->2 byte&0xf0 =0xB0 \b, 112 kBits
->2 byte&0xf0 =0xC0 \b, 128 kBits
->2 byte&0xf0 =0xD0 \b, 144 kBits
->2 byte&0xf0 =0xE0 \b, 160 kBits
-# freq
->2 byte&0x0C =0x00 \b, 22.05 kHz
->2 byte&0x0C =0x04 \b, 24 kHz
->2 byte&0x0C =0x08 \b, 16 kHz
-# misc
->3 byte&0xC0 =0x00 \b, Stereo
->3 byte&0xC0 =0x40 \b, JStereo
->3 byte&0xC0 =0x80 \b, Dual-Ch
->3 byte&0xC0 =0xC0 \b, Mono
-#>1 byte&0x01 =0x00 \b, Error Protection
-#>2 byte&0x02 =0x02 \b, Padding
-#>2 byte&0x01 =0x01 \b, Private
-#>3 byte&0x08 =0x08 \b, Copyright
-#>3 byte&0x04 =0x04 \b, Original
-#>3 byte&0x03 1 \b, Emphasis 5
-#>3 byte&0x03 3 \b, Emphasis c
-
-#From: Johan Gade <jgade@diku.dk>
-
-# MPEG-4 Advanced Audio Coding (AAC) file (perhaps also MPEG-2 ACC?)
-16 string M4A MPEG-4 Advanced Audio Coding file (AAC)
+# MP3, M25A
+0 beshort&0xFFFE 0xFFE2 MPEG ADTS, layer III, v2.5
+# rate
+>2 byte&0xF0 0x10 \b, 8 kBits
+>2 byte&0xF0 0x20 \b, 16 kBits
+>2 byte&0xF0 0x30 \b, 24 kBits
+>2 byte&0xF0 0x40 \b, 32 kBits
+>2 byte&0xF0 0x50 \b, 40 kBits
+>2 byte&0xF0 0x60 \b, 48 kBits
+>2 byte&0xF0 0x70 \b, 56 kBits
+>2 byte&0xF0 0x80 \b, 64 kBits
+>2 byte&0xF0 0x90 \b, 80 kBits
+>2 byte&0xF0 0xA0 \b, 96 kBits
+>2 byte&0xF0 0xB0 \b, 112 kBits
+>2 byte&0xF0 0xC0 \b, 128 kBits
+>2 byte&0xF0 0xD0 \b, 144 kBits
+>2 byte&0xF0 0xE0 \b, 160 kBits
+# timing
+>2 byte&0x0C 0x00 \b, 11.025 kHz
+>2 byte&0x0C 0x04 \b, 12 kHz
+>2 byte&0x0C 0x08 \b, 8 kHz
+# channels/options
+>3 byte&0xC0 0x00 \b, Stereo
+>3 byte&0xC0 0x40 \b, JntStereo
+>3 byte&0xC0 0x80 \b, 2x Monaural
+>3 byte&0xC0 0xC0 \b, Monaural
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Packet Pad
+#>2 byte &0x01 \b, Custom Flag
+#>3 byte &0x08 \b, Copyrighted
+#>3 byte &0x04 \b, Original Source
+#>3 byte&0x03 1 \b, NR: 50/15 ms
+#>3 byte&0x03 3 \b, NR: CCIT J.17
+# AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
+
+# Stored AAC streams (instead of the MP4 format)
+0 string ADIF MPEG ADIF, AAC
+>4 byte &0x80
+>>13 byte &0x10 \b, VBR
+>>13 byte ^0x10 \b, CBR
+>>16 byte&0x1E 0x02 \b, single stream
+>>16 byte&0x1E 0x04 \b, 2 streams
+>>16 byte&0x1E 0x06 \b, 3 streams
+>>16 byte &0x08 \b, 4 or more streams
+>>16 byte &0x10 \b, 8 or more streams
+>>4 byte &0x80 \b, Copyrighted
+>>13 byte &0x40 \b, Original Source
+>>13 byte &0x20 \b, Home Flag
+>4 byte ^0x80
+>>4 byte &0x10 \b, VBR
+>>4 byte ^0x10 \b, CBR
+>>7 byte&0x1E 0x02 \b, single stream
+>>7 byte&0x1E 0x04 \b, 2 streams
+>>7 byte&0x1E 0x06 \b, 3 streams
+>>7 byte &0x08 \b, 4 or more streams
+>>7 byte &0x10 \b, 8 or more streams
+>>4 byte &0x40 \b, Original Stream(s)
+>>4 byte &0x20 \b, Home Source
+
+# Live or stored single AAC stream (used with MPEG-2 systems)
+0 beshort&0xFFF6 0xFFF0 MPEG ADTS, AAC
+>1 byte &0x08 \b, v2
+>1 byte ^0x08 \b, v4
+# profile
+>>2 byte &0xC0 \b LTP
+>2 byte&0xc0 0x00 \b Main
+>2 byte&0xc0 0x40 \b LC
+>2 byte&0xc0 0x80 \b SSR
+# timing
+>2 byte&0x3c 0x00 \b, 96 kHz
+>2 byte&0x3c 0x04 \b, 88.2 kHz
+>2 byte&0x3c 0x08 \b, 64 kHz
+>2 byte&0x3c 0x0c \b, 48 kHz
+>2 byte&0x3c 0x10 \b, 44.1 kHz
+>2 byte&0x3c 0x14 \b, 32 kHz
+>2 byte&0x3c 0x18 \b, 24 kHz
+>2 byte&0x3c 0x1c \b, 22.05 kHz
+>2 byte&0x3c 0x20 \b, 16 kHz
+>2 byte&0x3c 0x24 \b, 12 kHz
+>2 byte&0x3c 0x28 \b, 11.025 kHz
+>2 byte&0x3c 0x2c \b, 8 kHz
+# channels
+>2 beshort&0x01c0 0x0040 \b, monaural
+>2 beshort&0x01c0 0x0080 \b, stereo
+>2 beshort&0x01c0 0x00c0 \b, stereo + center
+>2 beshort&0x01c0 0x0100 \b, stereo+center+LFE
+>2 beshort&0x01c0 0x0140 \b, surround
+>2 beshort&0x01c0 0x0180 \b, surround + LFE
+>2 beshort &0x01C0 \b, surround + side
+#>1 byte ^0x01 \b, Data Verify
+#>2 byte &0x02 \b, Custom Flag
+#>3 byte &0x20 \b, Original Stream
+#>3 byte &0x10 \b, Home Source
+#>3 byte &0x08 \b, Copyrighted
+
+# Live MPEG-4 audio streams (instead of RTP FlexMux)
+0 beshort&0xFFE0 0x56E0 MPEG-4 LOAS
+#>1 beshort&0x1FFF x \b, %u byte packet
+>3 byte&0xE0 0x40
+>>4 byte&0x3C 0x04 \b, single stream
+>>4 byte&0x3C 0x08 \b, 2 streams
+>>4 byte&0x3C 0x0C \b, 3 streams
+>>4 byte &0x08 \b, 4 or more streams
+>>4 byte &0x20 \b, 8 or more streams
+>3 byte&0xC0 0
+>>4 byte&0x78 0x08 \b, single stream
+>>4 byte&0x78 0x10 \b, 2 streams
+>>4 byte&0x78 0x18 \b, 3 streams
+>>4 byte &0x20 \b, 4 or more streams
+>>4 byte &0x40 \b, 8 or more streams
+0 beshort 0x4DE1 MPEG-4 LO-EP audio stream
# FLI animation format
4 leshort 0xAF11 FLI file
@@ -164,20 +612,6 @@
# \003. Most of them start with non-null values at hex offset 0x34 or so.
#0 string \3\0\0\0\0\0\0\0\0\0\0\0 DL version 3
-# SGI formats
-0 string MOVI Silicon Graphics movie file
-
-# Apple Quicktime: Scan for all known top-level QT atom markers
-4 string moov Apple QuickTime movie file (moov)
-4 string mdat Apple QuickTime movie file (mdat)
-4 string ftyp Apple QuickTime movie file (ftyp)
-4 string free Apple QuickTime movie file (free)
-4 string junk Apple QuickTime movie file (junk)
-4 string pnot Apple QuickTime movie file (pnot)
-4 string skip Apple QuickTime movie file (skip)
-4 string wide Apple QuickTime movie file (wide)
-4 string pict Apple QuickTime movie file (pict)
-
# iso 13818 transport stream
#
# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
@@ -239,3 +673,9 @@
>0x26 ubeshort x %dµs,
>0x42 ubeshort 0 no audio
>0x42 ubeshort >0 %dHz audio
+
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+0 string DVDVIDEO-VTS Video title set,
+>0x21 byte x v%x
+0 string DVDVIDEO-VMG Video manager,
+>0x21 byte x v%x