animation 6.6 KB

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