hachoir-parser is a package of most common file format parsers written for
Hachoir framework. Not all parsers are complete, some are very good and other
are poor: only parser first level of the tree for example.

A perfect parser have no "raw" field: with a perfect parser you are able to
know *each* bit meaning. Some good (but not perfect ;-)) parsers:

 * Matroska video
 * Microsoft RIFF (AVI video, WAV audio, CDA file)
 * PNG picture
 * TAR and ZIP archive

GnomeKeyring parser requires Python Crypto module:
http://www.amk.ca/python/code/crypto.html

Website: http://bitbucket.org/haypo/hachoir/wiki/hachoir-parser

hachoir-parser 1.3.4 (2010-07-26)
=================================

 * update matroska parser to support WebM videos

hachoir-parser 1.3.3 (2010-04-15)
=================================

 * fix setup.py: don't use with statement to stay compatible with python 2.4

hachoir-parser 1.3.2 (2010-03-01)
=================================

 * Include the README file in the tarball
 * setup.py reads the README file instead of using README.py to break the
   build dependency on hachoir-core

hachoir-parser 1.3.1 (2010-01-28)
=================================

 * Create MANIFEST.in to include extra files: README.py, README.header,
   tests/run_testcase.py, etc.
 * Create an INSTALL file

hachoir-parser 1.3 (2010-01-20)
===============================

 * New parsers:

   - BLP: Blizzard Image
   - PRC: Palm resource

 * HachoirParserList() is no more a singleton:
   use HachoirParserList.getInstance() to get a singleton
 * Add tags optional argument to createParser(), it can be used for example to
   force a parser
 * Fix ParserList.print_(): first argument is now the title and not 'out'.
   If out is not specified, use sys.stdout.
 * MP3: support encapsulated objects (GEOB in ID3)
 * Create a dictionary: Windows codepage => charset name (CODEPAGE_CHARSET)
 * ASN.1: support boolean and enum types; fix bit string parser
 * MKV: use textHandler()
 * AVI: create index parser, use file size header to detect padding at the end
 * ISO9660: strip nul bytes in application name
 * JPEG: add ICC profile chunk name
 * PNG: fix transparency parser (tRNS)
 * BPLIST: support empty value for markers 4, 5 and 6
 * Microsoft Office summary: support more codepages (CP874, Windows 1250..1257)
 * tcpdump: support ICMPv6 and IPv6
 * Java: add bytecode parser, support JDK 1.6
 * Python: parse lnotab content, fill a string table for the references
 * MPEG Video: parse much more chunks
 * MOV: Parse file type header, create the right MIME type


hachoir-parser 1.2.1 (2008-10-16)
=================================

 * Improve OLE2 and MS Office parsers:
   - support small blocks
   - fix the charset of the summary properties
   - summary property integers are unsigned
   - use TimedeltaWin64 for the TotalEditingTime field
   - create minimum Word document parser
 * Python parser: support magic numbers of Python 3000
   with the keyword only arguments
 * Create Apple/NeXT Binary Property List (BPLIST) parser
 * MPEG audio: reject file with no valid frame nor ID3 header
 * Skip subfiles in JPEG files
 * Create Apple/NeXT Binary Property List (BPLIST) parser by Robert Xiao

hachoir-parser 1.2 (2008-09-03)
===============================

 * Create FLAC parser, written by Esteban Loiseau
 * Create Action Script parser used in Flash parser,
   written by Sebastien Ponce
 * Create Gnome Keyring parser: able to parse the stored passwords using
   Python Crypto if the main password is written in the code :-)
 * GIF: support text extension field; parse image content
   (LZW compressed data)
 * Fix charset of IPTC string (guess it, it's not always ISO-8859-1)
 * TIFF: Sebastien Ponce improved the parser: parse image data, add many
   tags, etc.
 * MS Office: guess the charset for summary strings since it could be
   ISO-8859-1 or UTF-8

hachoir-parser 1.1 (2008-04-01)
===============================

Main changes: add "EFI Platform Initialization Firmware
Volume" (PIFV) and "Microsoft Windows Help" (HLP) parsers. Details:

 * MPEG audio:

   - add createContentSize() to support hachoir-subfile
   - support file starting with ID3v1
   - if file doesn't contain any frame, use ID3v1 or ID3v2 to create the
     description

 * EXIF:

   - use "count" field value
   - create RationalInt32 and RationalUInt32
   - fix for empty value
   - add GPS tags

 * JPEG:

   - support Ducky (APP12) chunk
   - support Comment chunk
   - improve validate(): make sure that first 3 chunk types are known

 * RPM: use bzip2 or gzip handler to decompress content
 * S3M: fix some parser bugs
 * OLE2: reject negative block index (or special block index)
 * ip2name(): catch KeybordInterrupt and don't resolve next addresses
 * ELF: support big endian
 * PE: createContentSize() works on PE program, improve resource section
   detection
 * AMF: stop mixed array parser on empty key

hachoir-parser 1.0 (2007-07-11)
===============================

Changes:

 * OLE2: Support file bigger than 6 MB (support many DIFAT blocks)
 * OLE2: Add createContentSize() to guess content size
 * LNK: Improve parser (now able to parse the whole file)
 * EXE PE: Add more subsystem names
 * PYC: Support Python 2.5c2
 * Fix many spelling mistakes

Minor changes:

 * PYC: Fix long integer parser (negative number), add (disabled) code
   to disassemble bytecode, use self.code_info to avoid replacing self.info
 * OLE2: Add ".msi" file extension
 * OLE2: Fix to support documents generated on Mac
 * EXIF: set max IFD entry count to 1000 (instead of 200)
 * EXIF: don't limit BYTE/UNDEFINED IFD entry count
 * EXIF: add "User comment" tag
 * GIF: fix image and screen description
 * bzip2: catch decompressor error to be able to read trailing data
 * Fix file extensions of AIFF
 * Windows GUID use new TimestampUUID60 field type
 * RIFF: convert class constant names to upper case
 * Fix RIFF: don't replace self.info method
 * ISO9660: Write parser for terminator content

Parser list
===========

Archive
-------

* 7zip: Compressed archive in 7z format
* ace: ACE archive
* bzip2: bzip2 archive
* cab: Microsoft Cabinet archive
* gzip: gzip archive
* mar: Microsoft Archive
* rar: Roshal archive (RAR)
* rpm: RPM package
* tar: TAR archive
* unix_archive: Unix archive
* zip: ZIP archive

Audio
-----

* aiff: Audio Interchange File Format (AIFF)
* fasttracker2: FastTracker2 module
* flac: FLAC audio
* itunesdb: iPod iTunesDB file
* midi: MIDI audio
* mod: Uncompressed amiga module
* mpeg_audio: MPEG audio version 1, 2, 2.5
* ptm: PolyTracker module (v1.17)
* real_audio: Real audio (.ra)
* s3m: ScreamTracker3 module
* sun_next_snd: Sun/NeXT audio

Container
---------

* asn1: Abstract Syntax Notation One (ASN.1)
* matroska: Matroska multimedia container
* ogg: Ogg multimedia container
* ogg_stream: Ogg logical stream
* real_media: RealMedia (rm) Container File
* riff: Microsoft RIFF container
* swf: Macromedia Flash data

File System
-----------

* ext2: EXT2/EXT3 file system
* fat12: FAT12 filesystem
* fat16: FAT16 filesystem
* fat32: FAT32 filesystem
* iso9660: ISO 9660 file system
* linux_swap: Linux swap file
* msdos_harddrive: MS-DOS hard drive with Master Boot Record (MBR)
* ntfs: NTFS file system
* reiserfs: ReiserFS file system

Game
----

* blp1: Blizzard Image Format, version 1
* blp2: Blizzard Image Format, version 2
* lucasarts_font: LucasArts Font
* spiderman_video: The Amazing Spider-Man vs. The Kingpin (Sega CD) FMV video
* zsnes: ZSNES Save State File (only version 143)

Image
-----

* bmp: Microsoft bitmap (BMP) picture
* gif: GIF picture
* ico: Microsoft Windows icon or cursor
* jpeg: JPEG picture
* pcx: PC Paintbrush (PCX) picture
* png: Portable Network Graphics (PNG) picture
* psd: Photoshop (PSD) picture
* targa: Truevision Targa Graphic (TGA)
* tiff: TIFF picture
* wmf: Microsoft Windows Metafile (WMF)
* xcf: Gimp (XCF) picture

Misc
----

* 3do: renderdroid 3d model.
* 3ds: 3D Studio Max model
* bplist: Apple/NeXT Binary Property List
* chm: Microsoft's HTML Help (.chm)
* gnomekeyring: Gnome keyring
* hlp: Microsoft Windows Help (HLP)
* lnk: Windows Shortcut (.lnk)
* ole2: Microsoft Office document
* pcf: X11 Portable Compiled Font (pcf)
* pdf: Portable Document Format (PDF) document
* tcpdump: Tcpdump file (network)
* torrent: Torrent metainfo file
* ttf: TrueType font

Program
-------

* elf: ELF Unix/BSD program/library
* exe: Microsoft Windows Portable Executable
* java_class: Compiled Java class
* pifv: EFI Platform Initialization Firmware Volume
* prc: Palm Resource File
* python: Compiled Python script (.pyc/.pyo files)

Video
-----

* asf: Advanced Streaming Format (ASF), used for WMV (video) and WMA (audio)
* flv: Macromedia Flash video
* mov: Apple QuickTime movie
* mpeg_ts: MPEG-2 Transport Stream
* mpeg_video: MPEG video, version 1 or 2

Total: 78 parsers
