AVI Analyzer

Author: Michael Schmid
History: 2015/10/19: First version
Source: AVI_Analyzer.java
Installation: Drag and drop AVI_Analyzer.class onto the "ImageJ" window and save it in the plugins folder or immediate sub-folder, or download AVI_Analyzer.class and install it using the Plugins>Install command.
Description: This is an ImageJ Plugin for analyzing the basic structure of RIFF (AVI) files.
   The AVI format looks like this:
   RIFF AVI         RIFF HEADER, AVI CHUNK          
      | LIST hdrl      MAIN AVI HEADER
      | | avih       AVI HEADER
      | | LIST strl      STREAM LIST(s) (One per stream)
      | | | strh       STREAM HEADER (Required after above; fourcc type is 'vids' for video stream)
      | | | strf       STREAM FORMAT (for video: BitMapInfo; may also contain palette)
      | | | strd       OPTIONAL -- STREAM DATA (ignored in this plugin)
      | | | strn       OPTIONAL -- STREAM NAME (ignored in this plugin)
      | | | indx       OPTIONAL -- MAIN 'AVI 2.0' INDEX
      | LIST movi      MOVIE DATA
      | | ix00       partial video index of 'AVI 2.0', usually missing in AVI 1 (ix01 would be for audio)
      | | [rec]        RECORD DATA (one record per frame for interleaved video; optional, unsupported in this plugin)
      | | |-dataSubchunks  RAW DATA: '??wb' for audio, '??db' and '??dc' for uncompressed and
      | |          compressed video, respectively. "??" denotes stream number, usually "00" or "01"
      | idx1         AVI 1 INDEX ('old-style'); may be missing in very old formats
   RIFF AVIX        'AVI 2.0' only: further chunks
      | LIST movi      more movie data, as above, usually with ix00 index
             Any number of further chunks (RIFF tags) may follow
    
   Items ('chunks') with one fourcc (four-character code such as 'strh') start with two 4-byte words:
   the fourcc and the size of the data area.
   Items with two fourcc (e.g. 'LIST hdrl') have three 4-byte words: the first fourcc, the size and the
   second fourcc. Note that the size includes the 4 bytes needed for the second fourcc.
    
   Chunks with fourcc 'JUNK' can appear anywhere and should be ignored.