1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
#------------------------------------------------------------------------------
# animation: file(1) magic for animation/movie formats
#
# animation formats
# 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
# MPEG Audio (*.mpx)
# from dreesen@math.fu-berlin.de
# XXX
# This conflicts with the FF FE signature for UTF-16-encoded Unicode
# text, which will be identified as an MP3 file. I don't have any MP3s
# so I don't know how to (or even if it's possible to) change this to
# tell the two apart. enf@pobox.com
0 beshort &0xfff0 MP
# MPEG 1.0
>1 byte&0x08 =0x08 \b
# Layer 3
>>1 byte &0x02 \b3
>>>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
# Layer 2
>>1 byte &0x04 \b2
>>>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
# MPEG 2.0
>1 byte&0x08 =0x00 \b
# 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
# FLI animation format
4 leshort 0xAF11 FLI file
>6 leshort x - %d frames,
>8 leshort x width=%d pixels,
>10 leshort x height=%d pixels,
>12 leshort x depth=%d,
>16 leshort x ticks/frame=%d
# FLC animation format
4 leshort 0xAF12 FLC file
>6 leshort x - %d frames
>8 leshort x width=%d pixels,
>10 leshort x height=%d pixels,
>12 leshort x depth=%d,
>16 leshort x ticks/frame=%d
# DL animation format
# XXX - collision with most `mips' magic
#
# I couldn't find a real magic number for these, however, this
# -appears- to work. Note that it might catch other files, too, so be
# careful!
#
# Note that title and author appear in the two 20-byte chunks
# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
# 255 (hex FF)! The DL format is really bad.
#
#0 byte 1 DL version 1, medium format (160x100, 4 images/screen)
#>42 byte x - %d screens,
#>43 byte x %d commands
#0 byte 2 DL version 2
#>1 byte 1 - large format (320x200,1 image/screen),
#>1 byte 2 - medium format (160x100,4 images/screen),
#>1 byte >2 - unknown format,
#>42 byte x %d screens,
#>43 byte x %d commands
# Based on empirical evidence, DL version 3 have several nulls following the
# \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 and Apple formats
0 string MOVI Silicon Graphics movie file
4 string moov Apple QuickTime movie file (moov)
4 string mdat Apple QuickTime movie file (mdat)
# iso 13818 transport stream
#
# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
# (the following is a little bit restrictive and works fine for a stream
# that starts with PAT properly. it won't work for stream data, that is
# cut from an input device data right in the middle, but this shouldn't
# disturb)
# syncbyte 8 bit 0x47
# error_ind 1 bit -
# payload_start 1 bit 1
# priority 1 bit -
# PID 13 bit 0x0000
# scrambling 2 bit -
# adaptfld_ctrl 2 bit 1 or 3
# conti_count 4 bit 0
0 belong&0xFF5FFF1F 0x47400010 MPEG transport stream data
>188 byte !0x47 CORRUPTED
# DIF digital video file format <mpruett@sgi.com>
0 belong&0xffffff00 0x1f070000 DIF
>4 byte &0x01 (DVCPRO) movie file
>4 byte ^0x01 (DV) movie file
>3 byte &0x80 (PAL)
>3 byte ^0x80 (NTSC)
# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
0 belong 0x3026b275 Microsoft ASF
|