<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivo</id>
	<title>MultimediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivo"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php/Special:Contributions/Ivo"/>
	<updated>2026-07-10T21:39:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=12109</id>
		<title>User:Ivo</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=12109"/>
		<updated>2009-12-26T16:14:03Z</updated>

		<summary type="html">&lt;p&gt;Ivo: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ivo van Poorten&lt;br /&gt;
&lt;br /&gt;
[mailto:ivop@euronet.nl E-Mail]&lt;br /&gt;
&lt;br /&gt;
[http://ivop.free.fr/ Webpage]&lt;br /&gt;
&lt;br /&gt;
[http://www.atariage.com/forums/blog/293-ivops-blog/ Blog]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=12108</id>
		<title>User:Ivo</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=12108"/>
		<updated>2009-12-26T16:11:33Z</updated>

		<summary type="html">&lt;p&gt;Ivo: some links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ivo van Poorten &amp;lt; ivop at euronet nl &amp;gt;&lt;br /&gt;
[http://ivop.free.fr/ Webpage]&lt;br /&gt;
[http://www.atariage.com/forums/blog/293-ivops-blog/ Blog]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Tiny_Stuff&amp;diff=10201</id>
		<title>Tiny Stuff</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Tiny_Stuff&amp;diff=10201"/>
		<updated>2008-05-13T19:37:44Z</updated>

		<summary type="html">&lt;p&gt;Ivo: tn4, tn5, and tn6 are sometimes used as file extension&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Company: David Mumper&lt;br /&gt;
* Extensions: .tny, .tn1, .tn2, .tn3, .tn4, .tn5, .tn6&lt;br /&gt;
&lt;br /&gt;
Tiny Stuff is an image compression format used on the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
Here's the [http://ivop.free.fr/multimediawiki/TINY.S m68k assembly decompression routine] from the original Tiny Stuff 3.0 package.&lt;br /&gt;
&lt;br /&gt;
16-bit words are stored in big-endian order.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==File format==&lt;br /&gt;
&lt;br /&gt;
 typedef tinystuff_file {&lt;br /&gt;
  uint8_t resolution;           /* 0 = low (320x200x16), 1 = medium (640x200x4), 2 = high (640x400x2) */&lt;br /&gt;
                                /* 3 = low and color animation is present, 4 = idem for medium, 5 = idem for high */&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t animation_limits;    /* High nibble = start limit, low nibble = end limit */&lt;br /&gt;
   uint8_t animation_dirspeed;  /* negative = left, positive = right, timebase 1/60 */&lt;br /&gt;
   uint16_t duration;           /* number of iterations */&lt;br /&gt;
  } optional_animation_info;    /* if resolution &amp;lt; 3, this is not present */&lt;br /&gt;
 &lt;br /&gt;
  uint16_t palette[16];&lt;br /&gt;
  uint16_t number_of_control_bytes;&lt;br /&gt;
  uint16_t number_of_data_words;&lt;br /&gt;
 &lt;br /&gt;
  uint8_t control_bytes[];&lt;br /&gt;
  uint16_t data_words[];&lt;br /&gt;
 } tinystuff_file;&lt;br /&gt;
&lt;br /&gt;
==Decompression algorithm==&lt;br /&gt;
&lt;br /&gt;
Unlike most other [[RLE]] variants, the control bytes and data are stored non-interleaved.&lt;br /&gt;
&lt;br /&gt;
x refers to the current control byte, d and d+1 refer to the current and next data word:&lt;br /&gt;
&lt;br /&gt;
 x &amp;lt;  0    -x literal words&lt;br /&gt;
 x == 0    d times d+1&lt;br /&gt;
 x == 1    d literal words&lt;br /&gt;
 x &amp;gt;  1    x times d&lt;br /&gt;
&lt;br /&gt;
==Uncompressed data format==&lt;br /&gt;
&lt;br /&gt;
The uncompressed data consists of four sets of 20 vertical columns. Each column is 16-bits wide.&lt;br /&gt;
&lt;br /&gt;
 for (set=0; set&amp;lt;4; set++)&lt;br /&gt;
   for (column=set; column&amp;lt;80; column += 4)&lt;br /&gt;
     for (scanline=0; scanline&amp;lt;200; scanline++) { }&lt;br /&gt;
&lt;br /&gt;
Medium and high resolution data are handled as if they were low resolution.&lt;br /&gt;
&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10200</id>
		<title>Photochrome</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10200"/>
		<updated>2008-05-13T11:14:41Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* File layout */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: .pcs&lt;br /&gt;
&lt;br /&gt;
'''Photochrome''' is an image format that uses palette switching and alternating two screens to display&lt;br /&gt;
more colors on the originally limitted graphics hardware of the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
&lt;br /&gt;
16-bit words are stored in big-endian order.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==File layout==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t width;                   /* always 0x140 (320) */&lt;br /&gt;
  uint16_t height;                  /* always 0xc8 (200) */&lt;br /&gt;
  uint8_t screen_mode;              /* 0 = single screen mode, bit 0 = xor screen data, bit 1 = xor palette data */&lt;br /&gt;
  uint8_t frequency;                /* 0 = 60Hz, 1 = 50Hz */&lt;br /&gt;
  uint8_t screen_data1[];           /* compressed screen data */&lt;br /&gt;
  uint8_t palettes1[];              /* compressed palettes */&lt;br /&gt;
  uint8_t screen_data2[];           /* when screen_mode != 0 */&lt;br /&gt;
  uint8_t palettes2[];              /* idem */&lt;br /&gt;
 } photochrome_file;&lt;br /&gt;
&lt;br /&gt;
==Image data==&lt;br /&gt;
&lt;br /&gt;
The image data are stored as four separate bitplanes and compressed with&lt;br /&gt;
yet another [[RLE]] variant.&lt;br /&gt;
&lt;br /&gt;
 uint16_t number_of_control_bytes;&lt;br /&gt;
 &lt;br /&gt;
 uint8_t x;&lt;br /&gt;
 &lt;br /&gt;
     x  &amp;lt; 0 : -x literal bytes follow&lt;br /&gt;
     x == 0 : uint16_t y times uint8_t z&lt;br /&gt;
     x == 1 : uint16_t y literal bytes&lt;br /&gt;
     x  &amp;gt; 1 : x times uint8_t y&lt;br /&gt;
 &lt;br /&gt;
==Palettes compression==&lt;br /&gt;
&lt;br /&gt;
The palette compression algorithm is similar to that of the image data but works solely on 16-bit words.&lt;br /&gt;
&lt;br /&gt;
 uint16_t number_of_control_bytes;&lt;br /&gt;
 &lt;br /&gt;
 uint8_t x;&lt;br /&gt;
 &lt;br /&gt;
     x  &amp;lt; 0 : -x literal 16-bit words follow&lt;br /&gt;
     x == 0 : uint16_t y times uint16_t z&lt;br /&gt;
     x == 1 : uint16_t y literal 16-bit words&lt;br /&gt;
     x  &amp;gt; 1 : x times uint16_t y&lt;br /&gt;
&lt;br /&gt;
Each palette contains 16 colors. 200 scanlines and 3 palettes per scanline plus one final palette makes 9616 total palette entries.&lt;br /&gt;
&lt;br /&gt;
==Palette selection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given an x-coordinate and a color index, returns the corresponding Photochrome palette index.&lt;br /&gt;
&lt;br /&gt;
 /*  Based on code by Hans Wessels, Public Domain 2008&lt;br /&gt;
  */&lt;br /&gt;
 int find_pcs_index(int x, int c) {&lt;br /&gt;
     int x1 = 4 * c, index = c;&lt;br /&gt;
 &lt;br /&gt;
     if (x &amp;gt;= x1)                index += 16;&lt;br /&gt;
     if (x &amp;gt;= x1+64+12 &amp;amp;&amp;amp;  c&amp;lt;14) index += 16;&lt;br /&gt;
     if (x &amp;gt;= 132+16   &amp;amp;&amp;amp; c==14) index += 16;&lt;br /&gt;
     if (x &amp;gt;= 132+20   &amp;amp;&amp;amp; c==15) index += 16;&lt;br /&gt;
 &lt;br /&gt;
     x1 = 10 * c - (c&amp;amp;1) * 6;&lt;br /&gt;
 &lt;br /&gt;
     if (x &amp;gt;= 176+x1   &amp;amp;&amp;amp;  c&amp;lt;14) index += 16;&lt;br /&gt;
 &lt;br /&gt;
     return index;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10199</id>
		<title>Photochrome</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10199"/>
		<updated>2008-05-13T11:14:19Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe file format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: .pcs&lt;br /&gt;
&lt;br /&gt;
'''Photochrome''' is an image format that uses palette switching and alternating two screens to display&lt;br /&gt;
more colors on the originally limitted graphics hardware of the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
&lt;br /&gt;
16-bit words are stored in big-endian order.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==File layout==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t width;                   /* always 0x140 (320) */&lt;br /&gt;
  uint16_t height;                  /* alwats 0xc8 (200) */&lt;br /&gt;
  uint8_t screen_mode;              /* 0 = single screen mode, bit 0 = xor screen data, bit 1 = xor palette data */&lt;br /&gt;
  uint8_t frequency;                /* 0 = 60Hz, 1 = 50Hz */&lt;br /&gt;
  uint8_t screen_data1[];           /* compressed screen data */&lt;br /&gt;
  uint8_t palettes1[];              /* compressed palettes */&lt;br /&gt;
  uint8_t screen_data2[];           /* when screen_mode != 0 */&lt;br /&gt;
  uint8_t palettes2[];              /* idem */&lt;br /&gt;
 } photochrome_file;  &lt;br /&gt;
&lt;br /&gt;
==Image data==&lt;br /&gt;
&lt;br /&gt;
The image data are stored as four separate bitplanes and compressed with&lt;br /&gt;
yet another [[RLE]] variant.&lt;br /&gt;
&lt;br /&gt;
 uint16_t number_of_control_bytes;&lt;br /&gt;
 &lt;br /&gt;
 uint8_t x;&lt;br /&gt;
 &lt;br /&gt;
     x  &amp;lt; 0 : -x literal bytes follow&lt;br /&gt;
     x == 0 : uint16_t y times uint8_t z&lt;br /&gt;
     x == 1 : uint16_t y literal bytes&lt;br /&gt;
     x  &amp;gt; 1 : x times uint8_t y&lt;br /&gt;
 &lt;br /&gt;
==Palettes compression==&lt;br /&gt;
&lt;br /&gt;
The palette compression algorithm is similar to that of the image data but works solely on 16-bit words.&lt;br /&gt;
&lt;br /&gt;
 uint16_t number_of_control_bytes;&lt;br /&gt;
 &lt;br /&gt;
 uint8_t x;&lt;br /&gt;
 &lt;br /&gt;
     x  &amp;lt; 0 : -x literal 16-bit words follow&lt;br /&gt;
     x == 0 : uint16_t y times uint16_t z&lt;br /&gt;
     x == 1 : uint16_t y literal 16-bit words&lt;br /&gt;
     x  &amp;gt; 1 : x times uint16_t y&lt;br /&gt;
&lt;br /&gt;
Each palette contains 16 colors. 200 scanlines and 3 palettes per scanline plus one final palette makes 9616 total palette entries.&lt;br /&gt;
&lt;br /&gt;
==Palette selection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Given an x-coordinate and a color index, returns the corresponding Photochrome palette index.&lt;br /&gt;
&lt;br /&gt;
 /*  Based on code by Hans Wessels, Public Domain 2008&lt;br /&gt;
  */&lt;br /&gt;
 int find_pcs_index(int x, int c) {&lt;br /&gt;
     int x1 = 4 * c, index = c;&lt;br /&gt;
 &lt;br /&gt;
     if (x &amp;gt;= x1)                index += 16;&lt;br /&gt;
     if (x &amp;gt;= x1+64+12 &amp;amp;&amp;amp;  c&amp;lt;14) index += 16;&lt;br /&gt;
     if (x &amp;gt;= 132+16   &amp;amp;&amp;amp; c==14) index += 16;&lt;br /&gt;
     if (x &amp;gt;= 132+20   &amp;amp;&amp;amp; c==15) index += 16;&lt;br /&gt;
 &lt;br /&gt;
     x1 = 10 * c - (c&amp;amp;1) * 6;&lt;br /&gt;
 &lt;br /&gt;
     if (x &amp;gt;= 176+x1   &amp;amp;&amp;amp;  c&amp;lt;14) index += 16;&lt;br /&gt;
 &lt;br /&gt;
     return index;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10198</id>
		<title>Photochrome</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Photochrome&amp;diff=10198"/>
		<updated>2008-05-13T10:37:37Z</updated>

		<summary type="html">&lt;p&gt;Ivo: basic description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Company:&lt;br /&gt;
* Extensions: .pcs&lt;br /&gt;
&lt;br /&gt;
'''Photochrome''' is an image format that uses palette switching and alternating screens to display&lt;br /&gt;
more colors on the originally limitted graphics hardware of the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
&lt;br /&gt;
16-bit words are stored in big-endian order.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10191</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10191"/>
		<updated>2008-05-05T11:58:14Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* AIFF */ describe markers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCCs of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF]] || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMM]] || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.INST]] || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MARK]] || || Marker&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.SSND]] || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MIDI]] || || Midi Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMT]] || || Extended Comment&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][ gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===AIFF===&lt;br /&gt;
&lt;br /&gt;
AIFF provides a standard for storing sampled sounds.&lt;br /&gt;
&lt;br /&gt;
* COMM&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t  numChannels;          /* 1 = mono, 2 = stereo, 4 = four channels, et cetera */&lt;br /&gt;
  uint32_t numSampleFrames;      /* one Sample Frame consists of numChannels samples */&lt;br /&gt;
  int16_t  sampleSize;           /* 1 .. 32 bits */&lt;br /&gt;
  uint8_t  sampleRate[10];       /* 80-bit ANSI/IEEE Std 754-1985 Floating Point */&lt;br /&gt;
 } COMM_data;&lt;br /&gt;
&lt;br /&gt;
* SSND&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t offset;               /* offset into SoundData[]; used for block-aligned sound data; mostly 0 */&lt;br /&gt;
  uint32_t blockSize;            /* mostly 0; used in conjunction with offset for block-aligned data */&lt;br /&gt;
  uint8_t  SoundData[];&lt;br /&gt;
 } SSND_data;&lt;br /&gt;
&lt;br /&gt;
Sample points are signed and stored, left-shifted to a multiple of eight bits. The padding bits are zeroed. Multi-channel audio is interleaved sample by sample.&lt;br /&gt;
&lt;br /&gt;
  1.. 8 bits --&amp;gt; 1 byte&lt;br /&gt;
  9..16 bits --&amp;gt; 2 bytes&lt;br /&gt;
 17..24 bits --&amp;gt; 3 bytes&lt;br /&gt;
 25..32 bits --&amp;gt; 4 bytes&lt;br /&gt;
&lt;br /&gt;
Multi-channel audio conventions:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | channels&lt;br /&gt;
|-&lt;br /&gt;
! || 1 || 2 || 3 || 4 || 5 || 6&lt;br /&gt;
|-&lt;br /&gt;
! stereo&lt;br /&gt;
| left || right || || || || &lt;br /&gt;
|-&lt;br /&gt;
! 3 channels&lt;br /&gt;
| left || right || center || || ||&lt;br /&gt;
|-&lt;br /&gt;
! quad&lt;br /&gt;
| front left || front right || rear left || rear right || || &lt;br /&gt;
|-&lt;br /&gt;
! 4 channels&lt;br /&gt;
| left || center || right || surround || || &lt;br /&gt;
|-&lt;br /&gt;
! 6 channels&lt;br /&gt;
| left || left center || center || right || right center || surround&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* MARK&lt;br /&gt;
&lt;br /&gt;
Markers can be used e.g. for instrument loops.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t numMarkers;&lt;br /&gt;
  struct {&lt;br /&gt;
   uint16_t id;               /* any 16-bit value, but not the same as a previous marker */&lt;br /&gt;
   uint32_t position;         /* relative to the start of the sample; units = SampleFrames */&lt;br /&gt;
   char     markerName[];     /* Pascal-style string, i.e. length + length characters */&lt;br /&gt;
  } Markers[];&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* INST&lt;br /&gt;
&lt;br /&gt;
* MIDI&lt;br /&gt;
&lt;br /&gt;
* COMT&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10190</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10190"/>
		<updated>2008-05-05T11:50:17Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* AIFF */ COMM and SSND&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCCs of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF]] || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMM]] || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.INST]] || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MARK]] || || Marker&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.SSND]] || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MIDI]] || || Midi Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMT]] || || Extended Comment&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][ gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===AIFF===&lt;br /&gt;
&lt;br /&gt;
AIFF provides a standard for storing sampled sounds.&lt;br /&gt;
&lt;br /&gt;
* COMM&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t  numChannels;          /* 1 = mono, 2 = stereo, 4 = four channels, et cetera */&lt;br /&gt;
  uint32_t numSampleFrames;      /* one Sample Frame consists of numChannels samples */&lt;br /&gt;
  int16_t  sampleSize;           /* 1 .. 32 bits */&lt;br /&gt;
  uint8_t  sampleRate[10];       /* 80-bit ANSI/IEEE Std 754-1985 Floating Point */&lt;br /&gt;
 } COMM_data;&lt;br /&gt;
&lt;br /&gt;
* SSND&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t offset;               /* offset into SoundData[]; used for block-aligned sound data; mostly 0 */&lt;br /&gt;
  uint32_t blockSize;            /* mostly 0; used in conjunction with offset for block-aligned data */&lt;br /&gt;
  uint8_t  SoundData[];&lt;br /&gt;
 } SSND_data;&lt;br /&gt;
&lt;br /&gt;
Sample points are signed and stored, left-shifted to a multiple of eight bits. The padding bits are zeroed. Multi-channel audio is interleaved sample by sample.&lt;br /&gt;
&lt;br /&gt;
  1.. 8 bits --&amp;gt; 1 byte&lt;br /&gt;
  9..16 bits --&amp;gt; 2 bytes&lt;br /&gt;
 17..24 bits --&amp;gt; 3 bytes&lt;br /&gt;
 25..32 bits --&amp;gt; 4 bytes&lt;br /&gt;
&lt;br /&gt;
Multi-channel audio conventions:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | channels&lt;br /&gt;
|-&lt;br /&gt;
! || 1 || 2 || 3 || 4 || 5 || 6&lt;br /&gt;
|-&lt;br /&gt;
! stereo&lt;br /&gt;
| left || right || || || || &lt;br /&gt;
|-&lt;br /&gt;
! 3 channels&lt;br /&gt;
| left || right || center || || ||&lt;br /&gt;
|-&lt;br /&gt;
! quad&lt;br /&gt;
| front left || front right || rear left || rear right || || &lt;br /&gt;
|-&lt;br /&gt;
! 4 channels&lt;br /&gt;
| left || center || right || surround || || &lt;br /&gt;
|-&lt;br /&gt;
! 6 channels&lt;br /&gt;
| left || left center || center || right || right center || surround&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* MARK&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* INST&lt;br /&gt;
&lt;br /&gt;
* MIDI&lt;br /&gt;
&lt;br /&gt;
* COMT&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10189</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10189"/>
		<updated>2008-05-05T11:24:39Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCCs of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF]] || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMM]] || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.INST]] || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MARK]] || || Marker&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.SSND]] || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MIDI]] || || Midi Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMT]] || || Extended Comment&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][ gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===AIFF===&lt;br /&gt;
&lt;br /&gt;
AIFF provides a standard for storing sampled sounds.&lt;br /&gt;
&lt;br /&gt;
* COMM&lt;br /&gt;
&lt;br /&gt;
* SSND&lt;br /&gt;
&lt;br /&gt;
* MARK&lt;br /&gt;
&lt;br /&gt;
* INST&lt;br /&gt;
&lt;br /&gt;
* MIDI&lt;br /&gt;
&lt;br /&gt;
* COMT&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10188</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10188"/>
		<updated>2008-05-05T11:21:13Z</updated>

		<summary type="html">&lt;p&gt;Ivo: AIFF description stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF]] || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMM]] || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.INST]] || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MARK]] || || Marker&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.SSND]] || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.MIDI]] || || Midi Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#AIFF|AIFF.COMT]] || || Extended Comment&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][ gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===AIFF===&lt;br /&gt;
&lt;br /&gt;
AIFF provides a standard for storing sampled sounds.&lt;br /&gt;
&lt;br /&gt;
* COMM&lt;br /&gt;
&lt;br /&gt;
* SSND&lt;br /&gt;
&lt;br /&gt;
* MARK&lt;br /&gt;
&lt;br /&gt;
* INST&lt;br /&gt;
&lt;br /&gt;
* MIDI&lt;br /&gt;
&lt;br /&gt;
* COMT&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10187</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10187"/>
		<updated>2008-05-05T11:12:23Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ AIFF MARK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.COMM || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.INST || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.MARK || || Marker&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.SSND || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10186</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10186"/>
		<updated>2008-05-05T11:11:09Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ AIFF INST, and ASIF INST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.COMM || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.INST || || Instrument, sustain and release&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.SSND || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| ASIF || || Apple ][gs Sampled Instrument Format&lt;br /&gt;
|-&lt;br /&gt;
| ASIF.INST || || Instrument&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10185</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10185"/>
		<updated>2008-05-05T11:06:28Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ add COMM and SSND&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.COMM || || Channels, samples/frame, samplesize and samplerate&lt;br /&gt;
|-&lt;br /&gt;
| AIFF.SSND || || Sound Data&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10184</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10184"/>
		<updated>2008-05-05T11:00:18Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* ACBM and ABIT */ link BODY&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to ILBM except that the [[#BODY|BODY]] chunk is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10183</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10183"/>
		<updated>2008-05-05T10:57:05Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe ACBM and ABIT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM]] || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| [[#ACBM and ABIT|ACBM.ABIT]] || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ACBM and ABIT===&lt;br /&gt;
&lt;br /&gt;
ACBM is similar to [[#ILBM|ILBM]] except that the body is replaced by an ABIT chunk.&lt;br /&gt;
&lt;br /&gt;
An ABIT chunk conains non-interleaved, plane-by-plane planar image data. This format was conceived because it hugely sped up loading and saving screens from AmigaBasic.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10182</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10182"/>
		<updated>2008-05-05T10:53:13Z</updated>

		<summary type="html">&lt;p&gt;Ivo: ABIT is ACBM body&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| ACBM.ABIT || || Amiga Bitplanes&lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10178</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10178"/>
		<updated>2008-05-05T00:26:21Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* SEQN and FADE */ special VHDR values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned and are relative to the start of the High Octave voice */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
'''oneShotHiSamples''' should be set to 0 and '''repeatHiSamples''' should be equal to the waveform length (divided by two if CHAN defines it as stereo).&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10177</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10177"/>
		<updated>2008-05-05T00:22:42Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe SEQN and FADE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN and PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN and FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN and PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SEQN and FADE===&lt;br /&gt;
&lt;br /&gt;
SEQN chunks define a sequence of segments within the voice waveform that should be played in order. This way, parts of the waveform can be played multiple times.&lt;br /&gt;
&lt;br /&gt;
 int number_of_segments = chunk_size / 8;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint32_t segment_start;         /* offsets must be 32-bits aligned */&lt;br /&gt;
   uint32_t segment_end;&lt;br /&gt;
  } segments[number_of_segments];&lt;br /&gt;
 } SEQN_data;&lt;br /&gt;
&lt;br /&gt;
The FADE chunks defines when the sound has to slowly fade-out to silence.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t segment;                /* start fade-out at this segment */&lt;br /&gt;
 } FADE_data;&lt;br /&gt;
 &lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10176</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10176"/>
		<updated>2008-05-05T00:09:40Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe CHAN.PAN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#CHAN.PAN|8SVX.CHAN.PAN]] || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#SEQN.FADE|8SVX.SEQN.FADE]] || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CHAN.PAN===&lt;br /&gt;
&lt;br /&gt;
The optional CHAN chunk gives information about the sample type.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sampletype;       /* 2 = left, play mono sample left&lt;br /&gt;
                                    * 4 = right, play mono sample right&lt;br /&gt;
                                    * 6 = stereo, the BODY contains two channels, left first */&lt;br /&gt;
&lt;br /&gt;
The optional PAN chunk makes it possible to pan a mono sample.&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t sposition;        /* 0 = right, 0x8000 = center, 0x10000 = left */&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10175</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10175"/>
		<updated>2008-05-04T23:58:48Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* ATAK and RLSE */ multiple chunks for full ADSR envelope&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume. Multiple ATAK and RLSE chunks can be used to create a full ADSR (Attack, Decay, Sustain, Release) envelope.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10174</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10174"/>
		<updated>2008-05-04T23:56:24Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* ATAK and RLSE */ one-line description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
Gradually in- or decrease VHDR's volume.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10173</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10173"/>
		<updated>2008-05-04T23:53:18Z</updated>

		<summary type="html">&lt;p&gt;Ivo: move ATAK and RLSE up to 8SVX and describe them&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.ATAK]] || || Attack Envelope&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| [[#ATAK and RLSE|8SVX.RLSE]] || || Release Envelope&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===ATAK and RLSE===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t duration;        /* in milliseconds */&lt;br /&gt;
  int32_t  dest;            /* destination volume, 0 = off, 0x10000 = max */&lt;br /&gt;
 } EGPoint;&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10172</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10172"/>
		<updated>2008-05-04T23:47:51Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* BODY */ separate ilbm and 8svx body; describe fibo delta compression&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
* ILBM BODY&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
* 8SVX BODY&lt;br /&gt;
&lt;br /&gt;
The BODY contains data samples grouped by octave, the highest octave first. Each sample is an 8-bit signed number.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
====Fibonacci Delta Compression====&lt;br /&gt;
&lt;br /&gt;
This is a lossy data compression. It resembles traditional delta encoding, but stores the delta value in 4-bits. Small delta's are encoded exact, large&lt;br /&gt;
delta's are approximated.&lt;br /&gt;
&lt;br /&gt;
The bitstream format:&lt;br /&gt;
&lt;br /&gt;
 uint8_t pad;&lt;br /&gt;
 uint8_t initial_value;&lt;br /&gt;
 uint8_t data[];            /* i.e. two codes/nibbles per byte */&lt;br /&gt;
&lt;br /&gt;
Four bit LUT:&lt;br /&gt;
&lt;br /&gt;
 int8_t codeToDelta[16] = {&lt;br /&gt;
     -34, -21, -13, -8, -5, -3, -2, -1,&lt;br /&gt;
       0,   1,   2,  3,  5,  8, 13, 21&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10171</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10171"/>
		<updated>2008-05-04T23:35:42Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* VHDR */ sample --&amp;gt; waveform&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave waveform.&lt;br /&gt;
Each following octave waveform is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10170</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10170"/>
		<updated>2008-05-04T23:34:44Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* VHDR */ intro not preformatted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave sample.&lt;br /&gt;
Each following sample is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10169</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10169"/>
		<updated>2008-05-04T23:34:13Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe VHDR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
===VHDR===&lt;br /&gt;
&lt;br /&gt;
 A Voice holds waveform data for one or more octaves. The one-shot part is played once and the repeat part is looped.&lt;br /&gt;
 The sum of '''oneShotHiSamples''' and '''repeatHiSamples''' is the full length of the highest octave sample.&lt;br /&gt;
 Each following sample is twice as long as the previous one.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint32_t oneShotHiSamples;       /* length of highest octave one-short part */&lt;br /&gt;
  uint32_t repeatHiSamples;        /* length of highest octave repeat part */&lt;br /&gt;
  uint32_t samplesPerHiCycle;      /* frequency */&lt;br /&gt;
  uint16_t samplesPerSec;          /* samplerate */&lt;br /&gt;
  uint8_t  ctOctave;               /* number of octaves of waveforms */&lt;br /&gt;
  uint8_t  sCompression;           /* 0 = none, 1 = Fibonacci Delta Encoding */&lt;br /&gt;
  int32_t  volume;                 /* 0 = silent, 0x10000 = max */&lt;br /&gt;
 } Voice8Header;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10168</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10168"/>
		<updated>2008-05-04T23:24:36Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ link VHDR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[#VHDR|8SVX.VHDR]] || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10167</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10167"/>
		<updated>2008-05-04T23:23:55Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ move VHDR to 8SVX where it belongs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.VHDR || || Voice Header&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=10166</id>
		<title>User:Ivo</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=User:Ivo&amp;diff=10166"/>
		<updated>2008-05-04T23:21:23Z</updated>

		<summary type="html">&lt;p&gt;Ivo: email&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ivo van Poorten &amp;lt; ivop at euronet nl &amp;gt;&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Doodle&amp;diff=10150</id>
		<title>Doodle</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Doodle&amp;diff=10150"/>
		<updated>2008-05-03T18:08:28Z</updated>

		<summary type="html">&lt;p&gt;Ivo: categories: image file formats --&amp;gt; image formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Company: unknown&lt;br /&gt;
* Extensions: .doo&lt;br /&gt;
&lt;br /&gt;
'''Doodle''' files were used on the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
All '''Doodle''' files are 32000 bytes long and contain a raw uncompressed dump of the computer's video memory.&lt;br /&gt;
Originally it was only used for ''high resolution'' (640x400) monochrome images, but third party software also allowed ''low resolution'' (320x200x16)&lt;br /&gt;
and ''medium resolution'' (640x200x4) images to be saved as '''.doo''' files.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Atari_ST Atari ST] video memory is planar and stored like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Atarist_lowres.png]]&lt;br /&gt;
&lt;br /&gt;
''Medium resolution'' has two planes and ''high resolution'' has one plane.&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Doodle&amp;diff=10149</id>
		<title>Doodle</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Doodle&amp;diff=10149"/>
		<updated>2008-05-03T18:06:49Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe doodle format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Company: unknown&lt;br /&gt;
* Extensions: .doo&lt;br /&gt;
&lt;br /&gt;
'''Doodle''' files were used on the [http://en.wikipedia.org/wiki/Atari_ST Atari ST].&lt;br /&gt;
All '''Doodle''' files are 32000 bytes long and contain a raw uncompressed dump of the computer's video memory.&lt;br /&gt;
Originally it was only used for ''high resolution'' (640x400) monochrome images, but third party software also allowed ''low resolution'' (320x200x16)&lt;br /&gt;
and ''medium resolution'' (640x200x4) images to be saved as '''.doo''' files.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Atari_ST Atari ST] video memory is planar and stored like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Atarist_lowres.png]]&lt;br /&gt;
&lt;br /&gt;
''Medium resolution'' has two planes and ''high resolution'' has one plane.&lt;br /&gt;
&lt;br /&gt;
[[Category:Image File Formats]]&lt;br /&gt;
[[Category:Atari ST Image File Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10148</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10148"/>
		<updated>2008-05-03T16:23:28Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe CCRT and CRNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| [[#CCRT|CCRT]] || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| [[#CRNG|CRNG]] || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===CCRT===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t direction;     /* 0 = none, &amp;gt;0 = forwards, &amp;lt;0 = backwards */&lt;br /&gt;
  uint8_t start;         /* lower... */&lt;br /&gt;
  uint8_t end;           /* ...and upper color registers */&lt;br /&gt;
  int32_t seconds;       /* seconds between cycles */&lt;br /&gt;
  int32_t microseconds;  /* microseconds between cycles */&lt;br /&gt;
  int16_t pad;           /* 0 */&lt;br /&gt;
 } CycleInfo;&lt;br /&gt;
&lt;br /&gt;
===CRNG===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t pad1;        /* 0 */&lt;br /&gt;
  int16_t rate;        /* color cycle rate, 16384 = 60Hz */&lt;br /&gt;
  int16_t active;      /* 0 = off, &amp;gt;0 = on */&lt;br /&gt;
  uint8_t low;         /* lower... */&lt;br /&gt;
  uint8_t high;        /* ...and upper color registers */&lt;br /&gt;
 } CRange;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10147</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10147"/>
		<updated>2008-05-03T16:13:06Z</updated>

		<summary type="html">&lt;p&gt;Ivo: BODY and ByteRun1 algorithm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| [[#BODY|BODY]] || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===BODY===&lt;br /&gt;
&lt;br /&gt;
The BODY's content is a concatenation of scanlines. Each scanline consists of one row of data for each plane, starting at plane 0, followed by one row of&lt;br /&gt;
masking data (if BMHD.maskinh = mskHasMask). If BMHD.compression = cmpNone, all '''h''' rows are exactly ceil('''w'''/16) uint16_t's wide.&lt;br /&gt;
&lt;br /&gt;
====ByteRun1 Algorithm====&lt;br /&gt;
&lt;br /&gt;
    0 &amp;lt;= x &amp;lt;= 127  x+1 literals&lt;br /&gt;
 -127 &amp;lt;= x &amp;lt;= -1   -x+1 times next byte&lt;br /&gt;
 -128              unused&lt;br /&gt;
&lt;br /&gt;
Each row of each scanline is compressed separately.&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10146</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10146"/>
		<updated>2008-05-03T16:05:23Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* BMHD */  masking techniques and compression algorithms&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes */&lt;br /&gt;
  uint8_t  masking;              /* masking technique, 0 = mskNone, 1 = mskHasMask, 2 = mskHasTransparentColor, 3 = mskLasso */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm, 0 = cmpNone, 1 = cmpByteRun1 */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10145</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10145"/>
		<updated>2008-05-03T16:01:48Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe CAMG, DEST and SPRT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| [[#CAMG|CAMG]] || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#DEST|DEST]] || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| [[#SPRT|SPRT]] || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t  masking;              /* masking technique       */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===CAMG===&lt;br /&gt;
&lt;br /&gt;
 typedef int32_t viewportMode;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===DEST===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint8_t  depth;           /* # bitplanes in the original source */&lt;br /&gt;
  uint8_t  pad1;            /* 0 */&lt;br /&gt;
  uint16_t planePick;       /* how to scatter source bitplanes into destination */&lt;br /&gt;
  uint16_t planeOnOff;      /* default bitplane data for planePick */&lt;br /&gt;
  uint16_t planeMask;       /* which bitplanes to store into&lt;br /&gt;
 } DestMerge;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
===SPRT===&lt;br /&gt;
&lt;br /&gt;
 typedef uint16_t SpritePrecedence; /* relative precedence; 0 is highest */&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10144</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10144"/>
		<updated>2008-05-03T14:34:53Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Chunks Internals */ cosmetics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t  x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t  y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t  nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t  masking;              /* masking technique       */&lt;br /&gt;
  uint8_t  compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t  pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t  xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t  yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t  pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t  pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10143</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10143"/>
		<updated>2008-05-03T14:33:29Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Chunks Internals */ use standard names for structs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
Described below is how the '''data''' part of specific chunks are to be interpreted.&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } ColorMap;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } Point2D;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10142</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10142"/>
		<updated>2008-05-03T14:29:10Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB]] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BMHD_data;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } CMAP_data;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } GRAB_data;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10141</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10141"/>
		<updated>2008-05-03T14:28:38Z</updated>

		<summary type="html">&lt;p&gt;Ivo: describe GRAB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| [[#GRAB|GRAB] || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BMHD_data;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } CMAP_data;&lt;br /&gt;
&lt;br /&gt;
===GRAB===&lt;br /&gt;
&lt;br /&gt;
Hotspot, relative to the upper left corner. Think ''mouse cursor'' or ''paint brush''.&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  int16_t x;&lt;br /&gt;
  int16_t y;&lt;br /&gt;
 } GRAB_data;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10140</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10140"/>
		<updated>2008-05-03T14:25:28Z</updated>

		<summary type="html">&lt;p&gt;Ivo: move chunk padding remark to generic chunk format; note that the possible padding byte is nog included in chunk_size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. The possible padding byte is ''not'' included in '''chunk_size'''.&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BMHD_data;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } CMAP_data;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10139</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10139"/>
		<updated>2008-05-03T14:22:42Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Chunks */ link cmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| [[#CMAP|CMAP]] || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BMHD_data;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } CMAP_data;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10138</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10138"/>
		<updated>2008-05-03T14:21:47Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Chunks Internals */ describe CMAP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BMHD_data;&lt;br /&gt;
&lt;br /&gt;
===CMAP===&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  struct {&lt;br /&gt;
   uint8_t red;&lt;br /&gt;
   uint8_t green;&lt;br /&gt;
   uint8_t blue;&lt;br /&gt;
  } colormap[chunk_size / 3];&lt;br /&gt;
 } CMAP_data;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10137</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10137"/>
		<updated>2008-05-03T14:19:13Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Generic Chunk Format */ size --&amp;gt; chunk_size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t chunk_size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10136</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10136"/>
		<updated>2008-05-03T14:17:29Z</updated>

		<summary type="html">&lt;p&gt;Ivo: sample of chunked file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
Example of a chunked IFF file:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FORM&lt;br /&gt;
    {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
    |-&lt;br /&gt;
    | ILBM&lt;br /&gt;
         {| cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
         |-&lt;br /&gt;
         | BMHD&lt;br /&gt;
         |-&lt;br /&gt;
         | CMAP&lt;br /&gt;
         |-&lt;br /&gt;
         | BODY&lt;br /&gt;
         |}&lt;br /&gt;
    |}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10135</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10135"/>
		<updated>2008-05-03T13:59:28Z</updated>

		<summary type="html">&lt;p&gt;Ivo: generic chunk format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Generic Chunk Format==&lt;br /&gt;
&lt;br /&gt;
 typedef struct {&lt;br /&gt;
     char FOURCC[4];&lt;br /&gt;
     int32_t size;&lt;br /&gt;
     uint8_t data[size];&lt;br /&gt;
 } IFF_chunk;&lt;br /&gt;
&lt;br /&gt;
==Table Of Chunks==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10134</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10134"/>
		<updated>2008-05-03T13:54:51Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Forms/Chunks FOURCC's */ link BMHD with description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Table Of Forms/Chunks FOURCC's ==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| [[#BMHD|BMHD]] || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10133</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10133"/>
		<updated>2008-05-03T13:45:34Z</updated>

		<summary type="html">&lt;p&gt;Ivo: reorder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
==Table Of Forms/Chunks FOURCC's ==&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| BMHD || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chunks Internals==&lt;br /&gt;
&lt;br /&gt;
===BMHD===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each plane to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10132</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10132"/>
		<updated>2008-05-03T11:47:11Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Forms/Chunks FOURCC's */ more chunks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
===ILBM FOURCC===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each frame to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /* ---------- BitMapHeader ---------------------------------------------*/&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===Table Of Forms/Chunks FOURCC's ===&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| TREE || || Storage of arbitrary data structures like trees and nested lists&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| UNAM || EA85, reserved || Username Property&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
|-&lt;br /&gt;
| TDDD || || 3D Rendering Data, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| YUVN || || YUV Image Data, MacroSystems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| BMHD || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
|-&lt;br /&gt;
| TRKR || proposal || MOD Tracker Music&lt;br /&gt;
|-&lt;br /&gt;
| USCR || EA85, reserved || Uhuru Score&lt;br /&gt;
|-&lt;br /&gt;
| UVOX || EA85, reserved || Uhuru Mac Voice&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
|-&lt;br /&gt;
| VDEO || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| YAFA || private, unregistered || Wildfire Animation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TCDE || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| TERM || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TMUI || || Toolmaker IFF Project (Toolmaker v1.19)&lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| WORD || || ProWrite Document, New Horizons&lt;br /&gt;
|-&lt;br /&gt;
| WOWO || private, unregistered || Wordworth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10131</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10131"/>
		<updated>2008-05-03T11:38:09Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Forms/Chunks FOURCC's */ more chunks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
===ILBM FOURCC===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each frame to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /* ---------- BitMapHeader ---------------------------------------------*/&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===Table Of Forms/Chunks FOURCC's ===&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| OCMP || EA85, reserved || Computer Property&lt;br /&gt;
|-&lt;br /&gt;
| OCPU || EA85, reserved || CPU Property&lt;br /&gt;
|-&lt;br /&gt;
| OPGM || EA85, reserved || Program Property&lt;br /&gt;
|-&lt;br /&gt;
| OSN || EA85, reserved || Serial Number Property&lt;br /&gt;
|-&lt;br /&gt;
| PTXT || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Graphics Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| ILBM.* || || See ILBM Chunks below&lt;br /&gt;
|-&lt;br /&gt;
| OB3D || proposal || 3D Object&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| PICS || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PICS.PICT || EA85, reserved || Macintosh Picture&lt;br /&gt;
|-&lt;br /&gt;
| PLBM || EA85, reserved || Obsolete&lt;br /&gt;
|-&lt;br /&gt;
| RGB4 || private || 4-bit RGB&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBX || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| SC3D || private || 3D Scene, Sculpt-3D&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| BMHD || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || Sampled Sound&lt;br /&gt;
|-&lt;br /&gt;
| SYTH || private || SoundQuest Master Librarian MIDI System Driver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85, reserved || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85, reserved || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
|-&lt;br /&gt;
| ROXN || private ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Unclassified, unknown, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| PGTB || || Program Traceback (SAS Institute)&lt;br /&gt;
|-&lt;br /&gt;
| PMBC || proposal, reserved || Black Belt System, 1991-12-01&lt;br /&gt;
|-&lt;br /&gt;
| PREF || private, reserved || Commodore, User Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHI || private || AHI Global Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PREF.AHIU || private || AHI Unit Preferences&lt;br /&gt;
|-&lt;br /&gt;
| PRSP || || DPaint IV Perspective Move&lt;br /&gt;
|-&lt;br /&gt;
| PTCH || private || Patch File, SAS Institute&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SHAK || private || Shakespeare Format&lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SHO1 || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SHOW || private, reserved || Gary Bonham&lt;br /&gt;
|-&lt;br /&gt;
| SPLT || || ASDG's File Splitting System&lt;br /&gt;
|-&lt;br /&gt;
| SSRE || private, reserved || Merging Technologies, 1992-05-04&lt;br /&gt;
|-&lt;br /&gt;
| SWRT || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10130</id>
		<title>IFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=IFF&amp;diff=10130"/>
		<updated>2008-05-03T11:17:26Z</updated>

		<summary type="html">&lt;p&gt;Ivo: /* Table Of Forms/Chunks FOURCC's */ again, more fourcc's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: 8svx, 16sv, ilbm, anim&lt;br /&gt;
* MIME Types:&lt;br /&gt;
** 8svx: audio/8svx, audio/x-8svx&lt;br /&gt;
** 16sv: audio/16sv, audio/x-16sv&lt;br /&gt;
** ilbm: image/ilbm, image/x-ilbm&lt;br /&gt;
** anim: video/anim, video/x-anim&lt;br /&gt;
* Specification:&lt;br /&gt;
**[http://www.szonye.com/bradd/iff.html Original Electronic Arts specification] january 14 1985.&lt;br /&gt;
&lt;br /&gt;
IFF (Interchange File Format) is a format developed by electronic arts in the 80's. It is the predominant format on the Amiga computer. It is a [[chunked format]]. It can be used to store any type of data, but it is predominantly used to store images, animations and audio.&lt;br /&gt;
&lt;br /&gt;
IFF chunks are always padded to an even number of bytes. &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.xinehq.de xine] has a demuxer/decoder for iff. Manfred Tremmel the author of the xine code has agreed to relicence his xine code as LGPL to allow easier use in ffmpeg. Thanks Manfred. &lt;br /&gt;
* Werner Randelshofer the author of [http://www.randelshofer.ch/multishow/ multishow] has also granted permission for his iff code to be relicenced as LGPL. Thanks Werner.&lt;br /&gt;
* Xanim also contains code to support iff, it may contain some formats not available in xine. &lt;br /&gt;
* libiffanim supports lots of animation formats http://www-user.tu-chemnitz.de/~womar/projects/iffanim/&lt;br /&gt;
* Virtualdub contains a demuxer/decoder also, look in the file InputFileANIM.cpp&lt;br /&gt;
&lt;br /&gt;
===ILBM FOURCC===&lt;br /&gt;
Images are stored in planes. So, to get a pixels color value you need to combine the bits from each frame to create a color register index. &lt;br /&gt;
&lt;br /&gt;
 /* ---------- BitMapHeader ---------------------------------------------*/&lt;br /&gt;
 /*  Required Bitmap header (BMHD) structure describes an ILBM           */&lt;br /&gt;
 typedef struct {&lt;br /&gt;
  uint16_t             w;                    /* raster width in pixels  */&lt;br /&gt;
  uint16_t             h;                    /* raster height in pixels */&lt;br /&gt;
  int16_t              x;                    /* x offset in pixels  */&lt;br /&gt;
  int16_t              y;                    /* y offset in pixels */&lt;br /&gt;
  uint8_t              nplanes;              /* # source bitplanes      */&lt;br /&gt;
  uint8_t              masking;              /* masking technique       */&lt;br /&gt;
  uint8_t              compression;          /* compression algoithm    */&lt;br /&gt;
  uint8_t              pad1;                 /* UNUSED.  For consistency, put 0 here. */&lt;br /&gt;
  uint16_t             transparentColor;     /* transparent &amp;quot;color number&amp;quot; */&lt;br /&gt;
  uint8_t              xaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  uint8_t              yaspect;              /* aspect ratio, a rational number x/y */&lt;br /&gt;
  int16_t              pagewidth;            /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
  int16_t              pageheight;           /* source &amp;quot;page&amp;quot; size in pixels */&lt;br /&gt;
 } BitMapHeader;&lt;br /&gt;
&lt;br /&gt;
===Table Of Forms/Chunks FOURCC's ===&lt;br /&gt;
&lt;br /&gt;
Note: FOURCC's of less than four characters are padded with spaces.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Group Identifiers&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CAT || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| END || unofficial || END-of-FORM identifier (see Amiga RKM Devices Ed. 3 page 376)&lt;br /&gt;
|-&lt;br /&gt;
| FORM || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| LIST || EA85 ||&lt;br /&gt;
|-&lt;br /&gt;
| PROP || EA85 ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Text, annotations, et cetera&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| (c) || EA85 || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| ANNO || EA85 || Annotation&lt;br /&gt;
|-&lt;br /&gt;
| AUTH || EA85 || Author&lt;br /&gt;
|-&lt;br /&gt;
| CHRS || EA85 || Character String&lt;br /&gt;
|-&lt;br /&gt;
| CSET || || Character Set&lt;br /&gt;
|-&lt;br /&gt;
| FTXT || EA85 || Formatted Text&lt;br /&gt;
|-&lt;br /&gt;
| FVER || || Amiga OS Version String&lt;br /&gt;
|-&lt;br /&gt;
| HLID || private || HotLink IDentification (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| JUNK || || Ignore&lt;br /&gt;
|-&lt;br /&gt;
| NAME || EA85 || Title of image, music, ...&lt;br /&gt;
|-&lt;br /&gt;
| TEXT || EA85 || Unformatted ASCII Text&lt;br /&gt;
|-&lt;br /&gt;
| VERS || || File Version Number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Image Forms&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ACBM || || Amiga Contiguous Bitmap (AmigaBasic) &lt;br /&gt;
|-&lt;br /&gt;
| CHBM || private || Chunky Bitmap&lt;br /&gt;
|-&lt;br /&gt;
| DCCL || private || DCTV Paint Clip&lt;br /&gt;
|-&lt;br /&gt;
| DCPA || private || DCTV Paint Palette&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || private || DCTV Raw Picture&lt;br /&gt;
|-&lt;br /&gt;
| DEEP || || Chunky Pixel Image Files (TV Paint)&lt;br /&gt;
|-&lt;br /&gt;
| DR2D || || 2D Object, Vector Graphics&lt;br /&gt;
|-&lt;br /&gt;
| DRAW || reserved || Jim Bayless, 12/90&lt;br /&gt;
|-&lt;br /&gt;
| DSDR || private || DrawStudio&lt;br /&gt;
|-&lt;br /&gt;
| GRYP || proposal || Byteplane Storage&lt;br /&gt;
|-&lt;br /&gt;
| ILBM || EA85 || Raster Bitmap Form&lt;br /&gt;
|-&lt;br /&gt;
| PBM || || 256-Color Chunky Pixel&lt;br /&gt;
|-&lt;br /&gt;
| RGB8 || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
|-&lt;br /&gt;
| RGBN || || RGB Image, Turbo Silver (Impulse)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | ILBM Chunks&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 3DCM || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| 3DPA || reserved || by Haitex&lt;br /&gt;
|-&lt;br /&gt;
| ABIT || || ACBM Body&lt;br /&gt;
|-&lt;br /&gt;
| ASDG || private || ASDG Application&lt;br /&gt;
|-&lt;br /&gt;
| BHBA || private || Photon Paint (brushes)&lt;br /&gt;
|-&lt;br /&gt;
| BHCP || private || Photon Paint (screens)&lt;br /&gt;
|-&lt;br /&gt;
| BHSM || private || Photon Paint&lt;br /&gt;
|-&lt;br /&gt;
| BMHD || EA85 || ILBM Bitmap Header&lt;br /&gt;
|-&lt;br /&gt;
| BODY || EA85 || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| CAMG || || Amiga Viewport Modes&lt;br /&gt;
|-&lt;br /&gt;
| CCRT || || Graphicraft Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CLUT || || Color Lookup Table&lt;br /&gt;
|-&lt;br /&gt;
| CMAP || EA85 || 8-bit RGB Color Map (packed array of ColorRegisters)&lt;br /&gt;
|-&lt;br /&gt;
| CMYK || || CMYK Color Map (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CNAM || || Color Naming Chunk, providex names for CMAP and/or CMYK (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| CRNG || || Color Cycling&lt;br /&gt;
|-&lt;br /&gt;
| CTBL.DYCP || || Newtek Dynamic Ham Color&lt;br /&gt;
|-&lt;br /&gt;
| DCOL || unofficial || Direct Color&lt;br /&gt;
|-&lt;br /&gt;
| DCTV || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| DEST || || Destination Image Info&lt;br /&gt;
|-&lt;br /&gt;
| DGVW || private || Newtek DigiView&lt;br /&gt;
|-&lt;br /&gt;
| DLTA || || Image Data&lt;br /&gt;
|-&lt;br /&gt;
| DPI || || Dots Per Inch&lt;br /&gt;
|-&lt;br /&gt;
| DPPV || || DPaint Perspective (EA)&lt;br /&gt;
|-&lt;br /&gt;
| DRNG || || DPaint IV Enhanced Color Cycling (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EPSF || || Encapsulated Postscript&lt;br /&gt;
|-&lt;br /&gt;
| FAX3 || private || GPSoftware FAX&lt;br /&gt;
|-&lt;br /&gt;
| FAXX || || Fascimile Image&lt;br /&gt;
|-&lt;br /&gt;
| FAXX.GPHD || || Additional Header Info for FAXX forms&lt;br /&gt;
|-&lt;br /&gt;
| GRAB || || Hotspot Coordinates&lt;br /&gt;
|-&lt;br /&gt;
| MFAX || private, reserved || TKR GmbH &amp;amp; Co.&lt;br /&gt;
|-&lt;br /&gt;
| PCHG || || Line-by-line Palette Control Information&lt;br /&gt;
|-&lt;br /&gt;
| PRVW || proposal || Preview (thumbnail)&lt;br /&gt;
|-&lt;br /&gt;
| SHAM || || Sliced HAM Color&lt;br /&gt;
|-&lt;br /&gt;
| SPRT || || Sprite Identifier&lt;br /&gt;
|-&lt;br /&gt;
| TMAP || reserved || Transparency Map&lt;br /&gt;
|-&lt;br /&gt;
| VTAG || proposal || Viewmode Tags&lt;br /&gt;
|-&lt;br /&gt;
| XBMI || || Extended Bitmap Information (Soft-Logik)&lt;br /&gt;
|-&lt;br /&gt;
| XSSL || || Identifier for 3D X-Specs Image (Haitex)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Audio and Music&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| 16SV || || &lt;br /&gt;
|-&lt;br /&gt;
| 8SVX || EA85 || 8-bit Sound Sample&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.CHAN.PAN || || Stereo chunks&lt;br /&gt;
|-&lt;br /&gt;
| 8SVX.SEQN.FADE || || Looping chunks&lt;br /&gt;
|-&lt;br /&gt;
| AHIM || private || AHI Modes&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDN || private || Audio Driver Name&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDD || private || Audio Driver Data&lt;br /&gt;
|-&lt;br /&gt;
| AHIM.AUDM || private || Audio Mode&lt;br /&gt;
|-&lt;br /&gt;
| AIFF || || Audio 1-32 bit Samples&lt;br /&gt;
|-&lt;br /&gt;
| BANK || private || Soundquest Editor/Librarian MIDI Sysex Dump&lt;br /&gt;
|-&lt;br /&gt;
| CELP || proposal || Compressed ZyXEL Voice Data&lt;br /&gt;
|-&lt;br /&gt;
| CMUS || proposal || Common Musical Score&lt;br /&gt;
|-&lt;br /&gt;
| GSCR || EA85 || General Music Score&lt;br /&gt;
|-&lt;br /&gt;
| MIDI || private || Circum Design&lt;br /&gt;
|-&lt;br /&gt;
| MSCX || private || Music-X Format&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Fonts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| CPFM || private || Cloanto Personal Fontmaker&lt;br /&gt;
|-&lt;br /&gt;
| FNTR || EA85 || Raster Font&lt;br /&gt;
|-&lt;br /&gt;
| FNTV || EA85 || Vector Font&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Animation and Movies&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| AHAM || private ||&lt;br /&gt;
|-&lt;br /&gt;
| ANBM || || Animated Bitmap (Framer, Deluxe Video)&lt;br /&gt;
|-&lt;br /&gt;
| ANHD || || ANIM Frame&lt;br /&gt;
|-&lt;br /&gt;
| ANIM || || Cel Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.brush || || Brushes&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op6 || || Stereo, 3D Animation&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op7 || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ANIM.op8 || ||&lt;br /&gt;
|-&lt;br /&gt;
| DPAN || || Deluxe Paint Animation&lt;br /&gt;
|-&lt;br /&gt;
| FANT || || Fantavision Movie&lt;br /&gt;
|-&lt;br /&gt;
| FIGR || private || Deluxe Video&lt;br /&gt;
|-&lt;br /&gt;
| FILM || private || Store ILBM's with interleaved 8SVX audio&lt;br /&gt;
|-&lt;br /&gt;
| JMOV || private, reserved || Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| MOVI || private || LIST MOVI&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;background-color: #ddffdd;&amp;quot; | Rest...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #dddddd;&amp;quot; | ''FOURCC'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Standard'' || style=&amp;quot;background-color: #dddddd;&amp;quot; | ''Description''&lt;br /&gt;
|-&lt;br /&gt;
| ANFI || || &lt;br /&gt;
|-&lt;br /&gt;
| ANSQ || || &lt;br /&gt;
|-&lt;br /&gt;
| ARC || proposal || Archive Format&lt;br /&gt;
|-&lt;br /&gt;
| ARES || private, unregistered ||&lt;br /&gt;
|-&lt;br /&gt;
| ATXT || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| ATAK || || &lt;br /&gt;
|-&lt;br /&gt;
| AVCF || private || AmigaVision Flow format&lt;br /&gt;
|-&lt;br /&gt;
| BBSD || private || BBS Database, F. Patnaude, Jr., Phalanx Software&lt;br /&gt;
|-&lt;br /&gt;
| C100 || private || Cloanto Italiaformat&lt;br /&gt;
|-&lt;br /&gt;
| CLIP || private || CAT CLIP, holds various clipboard formats&lt;br /&gt;
|-&lt;br /&gt;
| DECK || private || Inovatronics CanDo&lt;br /&gt;
|-&lt;br /&gt;
| DOC || private || PageStream&lt;br /&gt;
|-&lt;br /&gt;
| DPPS || || &lt;br /&gt;
|-&lt;br /&gt;
| DTYP || || DataTypes Identification&lt;br /&gt;
|-&lt;br /&gt;
| EXEC || proposal || Executable Code&lt;br /&gt;
|-&lt;br /&gt;
| FACE || || &lt;br /&gt;
|-&lt;br /&gt;
| FRED || private || ASDG Global Chunk&lt;br /&gt;
|-&lt;br /&gt;
| GMS || || Gesture and Motion Signal (see libGMS)&lt;br /&gt;
|-&lt;br /&gt;
| GUI || proposal, private || Graphical User Interface Storage&lt;br /&gt;
|-&lt;br /&gt;
| HEAD || || Flow Idea Processor, New Horizons Software&lt;br /&gt;
|-&lt;br /&gt;
| IMRT || || &lt;br /&gt;
|-&lt;br /&gt;
| INFO || proposal || Contains data usually found in .info file&lt;br /&gt;
|-&lt;br /&gt;
| INS1 || || &lt;br /&gt;
|-&lt;br /&gt;
| IOBJ || private, reserved || Seven Seas Software&lt;br /&gt;
|-&lt;br /&gt;
| IODK || private, reserved || Jean-Marc Porchet, Merging Technologies&lt;br /&gt;
|-&lt;br /&gt;
| ITRF || private, reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| MSMP || reserved ||&lt;br /&gt;
|-&lt;br /&gt;
| MTRX || || Numerical Data Storage, MathVision - Seven Seas&lt;br /&gt;
|-&lt;br /&gt;
| NSEQ || private || Numerical Sequence, Stockhausen GmbH&lt;br /&gt;
|-&lt;br /&gt;
| RLSE || || &lt;br /&gt;
|-&lt;br /&gt;
| SAMP || || &lt;br /&gt;
|-&lt;br /&gt;
| SHDR || || &lt;br /&gt;
|-&lt;br /&gt;
| SMUS || || &lt;br /&gt;
|-&lt;br /&gt;
| TINY || || &lt;br /&gt;
|-&lt;br /&gt;
| TRAK || || &lt;br /&gt;
|-&lt;br /&gt;
| VHDR || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Commodore Amiga Image Formats]]&lt;br /&gt;
[[Category:Atari ST Image Formats]]&lt;/div&gt;</summary>
		<author><name>Ivo</name></author>
	</entry>
</feed>