Example of hachoir-parser output.

logo-kubuntu.png

0) file:logo-kubuntu.png: PNG picture: 331x90x32 (alpha layer) (9.8 KB)
   0) id= "\x89PNG\r\n\x1a\n": PNG identifier ('\x89PNG\r\n\x1A\n') (8 bytes)
 - 8) header: Header: 331x90 pixels and 32 bits/pixel (25 bytes)
      0) size= 13: Size (4 bytes)
      4) tag= "IHDR": Tag (4 bytes)
      8) width= 331: Width (pixels) (4 bytes)
      12) height= 90: Height (pixels) (4 bytes)
      16) bit_depth= 8: Bit depth (1 byte)
      17.0) reserved= <null> (5 bits)
      17.5) has_alpha= True: Has alpha channel? (1 bit)
      17.6) color= True: Color used? (1 bit)
      17.7) has_palette= False: Has a color palette? (1 bit)
      18) compression= deflate: Compression method (1 byte)
      19) filter= 0: Filter method (1 byte)
      20) interlace= 0: Interlace method (1 byte)
      21) crc32= 0x314a7414: CRC32 (4 bytes)
 - 33) background: Background color: White (18 bytes)
      0) size= 6: Size (4 bytes)
      4) tag= "bKGD": Tag (4 bytes)
      8) red= 255 (2 bytes)
      10) green= 255 (2 bytes)
      12) blue= 255 (2 bytes)
      14) crc32= 0xa0bda793: CRC32 (4 bytes)
 - 51) physical: Physical: 2835x2835 pixels per meter (21 bytes)
      0) size= 9: Size (4 bytes)
      4) tag= "pHYs": Tag (4 bytes)
      8) pixel_per_unit_x= 2835: Pixel per unit, X axis (4 bytes)
      12) pixel_per_unit_y= 2835: Pixel per unit, Y axis (4 bytes)
      16) unit= Meter: Unit type (1 byte)
      17) crc32= 0x009a9c18: CRC32 (4 bytes)
 - 72) time= 2006-05-26 09:41:46: Timestamp (19 bytes)
      0) size= 7: Size (4 bytes)
      4) tag= "tIME": Tag (4 bytes)
      8) year= 2006: Year (2 bytes)
      10) month= 5: Month (1 byte)
      11) day= 26: Day (1 byte)
      12) hour= 9: Hour (1 byte)
      13) minute= 41: Minute (1 byte)
      14) second= 46: Second (1 byte)
      15) crc32= 0x68b6c4b2: CRC32 (4 bytes)
 + 91) data[0]: Image data (8204 bytes)
 + 8295) data[1]: Image data (1715 bytes)
 + 10010) end: End (12 bytes)

kde_click.wav

0) file:kde_click.wav: Microft WAVE audio (1824 bytes)
   0) signature= "RIFF": AVI header (RIFF) (4 bytes)
   4) filesize= 1816 bytes: File size (4 bytes)
   8) type= "WAVE": Content type ("AVI ", "WAVE", ...) (4 bytes)
 - 12) format: Audio format (24 bytes)
      0) tag= "fmt ": Tag (4 bytes)
      4) size= 16 bytes: Size (4 bytes)
      8) codec= Microsoft Pulse Code Modulation (PCM): Audio codec (2 bytes)
      10) nb_channel= 2: Number of audio channel (2 bytes)
      12) sample_per_sec= 22050: Sample per second (4 bytes)
      16) byte_per_sec= 88200: Average byte per second (4 bytes)
      20) block_align= 4: Block align (2 bytes)
      22) bit_per_sample= 16: Bits per sample (2 bytes)
 - 36) audio_data: Audio stream data (1732 bytes)
      0) tag= "data": Tag (4 bytes)
      4) size= 1724 bytes: Size (4 bytes)
      8) raw_content= "|\1d\1\xca\x0b\x85\x0b\xcb\x1cx\x19\xc9\x14(...)": Raw data (1724 bytes)
 - 1768) info: File informations (56 bytes)
      0) tag= "LIST": Tag (4 bytes)
      4) size= 48 bytes: Size (4 bytes)
      8) subtag= "INFO": Sub-tag (4 bytes)
    - 12) creation_date: Creation date (20 bytes)
         0) tag= "ICRD": Tag (4 bytes)
         4) size= 11 bytes: Size (4 bytes)
         8) text= "2001-02-21" (11 bytes)
         19) padding[0]= "\0" (1 byte)
    - 32) producer: Producer (24 bytes)
         0) tag= "ISFT": Tag (4 bytes)
         4) size= 16 bytes: Size (4 bytes)
         8) text= "Sound Forge 4.5" (16 bytes)

matrix_ping_pong.wmv

0) file:matrix_ping_pong.wmv: Window Media Video (wmv) (3.4 MB)
 - 0) header (1391 bytes)
    - 0) guid= GUID v1 (Timestamp & MAC-48): 75B22630-668E-11CF-A6D9-00AA0062CE6C (16 bytes)
         0.0) time= 1996-02-14 05:13:46.303236 (60 bits)
         7.4) version= Timestamp & MAC-48 (4 bits)
         8.0) variant= Microsoft Corporation (3 bits)
         8.3) clock= 0x1b34 (13 bits)
       - 10) mac= INTEL CORPORATION [62:ce:6c]: IEEE 802 MAC address (6 bytes)
            0) organization= INTEL CORPORATION (3 bytes)
            3) nic= 62:ce:6c (3 bytes)
      16) size= 1391 bytes (8 bytes)
    - 24) content (1367 bytes)
         0) obj_count= 11 (4 bytes)
         4) reserved[0]= "\1\2": Padding (2 bytes)
       - 6) metadata (262 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): 75B22633-668E-11CF-A6D9-00AA0062CE6C (16 bytes)
            16) size= 262 bytes (8 bytes)
          - 24) content (238 bytes)
               0) size[0]= 36 (2 bytes)
               2) size[1]= 86 (2 bytes)
               4) size[2]= 102 (2 bytes)
               6) size[3]= 2 (2 bytes)
               8) size[4]= 2 (2 bytes)
               10) title= "\u6b3d\u3061\u3083\u3093\uff06\u9999\u53(...)" (36 bytes)
               46) author= "Nippon Television Network Corporation[NT(...)" (86 bytes)
               132) copyright= "[C]Nippon Television Network Corporation(...)" (102 bytes)
               234) xxx= (empty) (2 bytes)
               236) yyy= (empty) (2 bytes)
       - 268) bit_rates (50 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): 7BF875CE-468D-11D1-8D82-006097C9A2B2 (16 bytes)
            16) size= 50 bytes (8 bytes)
          - 24) content (26 bytes)
               0) count= 4 (2 bytes)
             - 2) bit_rate[0] (6 bytes)
                  0.0) stream_index= 1 (7 bits)
                  0.7) reserved= 0: Padding (9 bits)
                  2) avg_bitrate= 13.0 Kbit/sec (4 bytes)
             + 8) bit_rate[1] (6 bytes)
             + 14) bit_rate[2] (6 bytes)
             + 20) bit_rate[3] (6 bytes)
       - 318) file_prop (104 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): 8CABDCA1-A947-11CF-8EE4-00C00C205365 (16 bytes)
            16) size= 104 bytes (8 bytes)
          - 24) content (80 bytes)
             + 0) guid= GUID v4 (Randomly generated): A68CB690-E4F7-4E5D-8AC7-FCD810D5E6EC (16 bytes)
               16) file_size= 3.4 MB (8 bytes)
               24) creation_date= 2003-06-16 07:57:23.235000 (8 bytes)
               32) pckt_count= 465 (8 bytes)
               40) play_duration= 1 min 47 sec 258 ms (8 bytes)
               48) send_duration= 1 min 44 sec 126 ms (8 bytes)
               56) preroll= 3358 (8 bytes)
               64.0) broadcast= False: Is broadcast? (1 bit)
               64.1) seekable= True: Seekable stream? (1 bit)
               64.2) reserved[0]= 0: Padding (30 bits)
               68) min_pckt_size= 7750 bytes (4 bytes)
               72) max_pckt_size= 7750 bytes (4 bytes)
               76) max_bitrate= 276.9 Kbit/sec (4 bytes)
       + 422) header_ext (46 bytes)
       - 468) stream_prop[0] (114 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): B7DC0791-A9B7-11CF-8EE6-00C00C205365 (16 bytes)
            16) size= 114 bytes (8 bytes)
          - 24) content (90 bytes)
             + 0) type= GUID v1 (Timestamp & MAC-48): F8699E40-5B4D-11CF-A8FD-00805F5C442B (16 bytes)
             + 16) error_correction= GUID v1 (Timestamp & MAC-48): BFC3CD50-618F-11CF-8BB2-00AA00B4E220 (16 bytes)
               32) time_offset= 0 (8 bytes)
               40) data_len= 28 (4 bytes)
               44) error_correct_len= 8 (4 bytes)
               48.0) stream_index= 1 (7 bits)
               48.7) reserved[0]= 0 (1 byte)
               49.7) encrypted= False: Content is encrypted? (1 bit)
               50) reserved[1]= 120 (4 bytes)
             + 54) audio_header (28 bytes)
               82) error_correct= "\1\x80\1\x80\1\1\0\0": Raw data (8 bytes)
       + 582) stream_prop[1] (129 bytes)
       + 711) stream_prop[2] (129 bytes)
       + 840) stream_prop[3] (129 bytes)
       + 969) bitrate_mutex (48 bytes)
       - 1017) ext_desc (140 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): D2D0A440-E307-11D2-97F0-00A0C95EA850 (16 bytes)
            16) size= 140 bytes (8 bytes)
          - 24) content (116 bytes)
               0) count= 2 (2 bytes)
             - 2) descriptor[0] (60 bytes)
                  0) name= "WMFSDKVersion": Name (30 bytes)
                  30) type= Unicode (2 bytes)
                  32) value_length= 26 (2 bytes)
                  34) value= "7.01.00.3055" (26 bytes)
             - 62) descriptor[1] (54 bytes)
                  0) name= "WMFSDKNeeded": Name (28 bytes)
                  28) type= Unicode (2 bytes)
                  30) value_length= 22 (2 bytes)
                  32) value= "0.0.0.0000" (22 bytes)
       - 1157) codec_list (210 bytes)
          + 0) guid= GUID v1 (Timestamp & MAC-48): 86D15240-311D-11D0-A3A4-00A0C90348F6 (16 bytes)
            16) size= 210 bytes (8 bytes)
          - 24) content (186 bytes)
             + 0) reserved[0]= GUID v1 (Timestamp & MAC-48): 86D15241-311D-11D0-A3A4-00A0C90348F6 (16 bytes)
               16) count= 2 (4 bytes)
             - 20) codec[0] (60 bytes)
                  0) type= video (2 bytes)
                  2) name_len= 23: Name length in character (byte=len*2) (2 bytes)
                  4) name= "Windows Media Video V7": Name (46 bytes)
                  50) desc_len= 1: Description length in character (byte=len*2) (2 bytes)
                  52) desc= (empty): Description (2 bytes)
                  54) info_len= 4 (2 bytes)
                  56) info= "WMV1": Raw data (4 bytes)
             + 80) codec[1] (106 bytes)
 - 1391) data (3.4 MB)
    + 0) guid= GUID v1 (Timestamp & MAC-48): 75B22636-668E-11CF-A6D9-00AA0062CE6C (16 bytes)
      16) size= 3.4 MB (8 bytes)
    + 24) content (3.4 MB)

usa_railroad.jpg

0) file:usa_railroad.jpg: JPEG picture (101.3 KB)
 + 0) start_image: Start of image (SOI) (2 bytes)
 - 2) app0: APP0 (18 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xe0: Type (1 byte)
      2) size= 16: Size (2 bytes)
    - 4) content: Chunk content (14 bytes)
         0) jfif= "JFIF\0": JFIF string (5 bytes)
         5) ver_maj= 1: Major version (1 byte)
         6) ver_min= 2: Minor version (1 byte)
         7) units= dots per inch: Units (1 byte)
         8) x_density= 72: X density (2 bytes)
         10) y_density= 72: Y density (2 bytes)
         12) thumb_w= 0: Thumbnail width (1 byte)
         13) thumb_h= 0: Thumbnail height (1 byte)
 - 20) exif: EXIF (5128 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xe1: Type (1 byte)
      2) size= 5126: Size (2 bytes)
    - 4) content: Chunk content (5124 bytes)
         0) header= "Exif\0\0": Header (Exif\0\0) (6 bytes)
         6) byte_order= "MM": Byte order (2 bytes)
         8) header2= 42: Header2 (42) (2 bytes)
         10) nb_entry= 0: Number of entries (2 bytes)
         12) whatsthis= 8: What's this ?? (2 bytes)
       - 14) ifd[0]: IFD (260 bytes)
            0) count= 12: Number of entries (2 bytes)
          - 2) entry[0]: Entry: Camera (Image input equipment) manufacturer (12 bytes)
               0) tag= Camera (Image input equipment) manufacturer: Tag (2 bytes)
               2) type= ASCII (8 bits): Type (2 bytes)
               4) count= 9: Count (4 bytes)
               8) offset= 158: Value offset (4 bytes)
          + 14) entry[1]: Entry: Camera (Input input equipment) model (12 bytes)
          + 26) entry[2]: Entry: Orientation of image (12 bytes)
          + 38) entry[3]: Entry: Image resolution width direction (12 bytes)
          + 50) entry[4]: Entry: Image resolution in height direction (12 bytes)
          + 62) entry[5]: Entry: Unit of X and Y resolution (12 bytes)
          + 74) entry[6]: Entry: Software (12 bytes)
          + 86) entry[7]: Entry: File change date and time (12 bytes)
          + 98) entry[8]: Entry: File change date and time (12 bytes)
          + 110) entry[9]: Entry: Y and C positioning (12 bytes)
          + 122) entry[10]: Entry: Copyright holder (12 bytes)
          + 134) entry[11]: Entry: Exif IFD Pointer (12 bytes)
            146) next= 828: Next IFD offset (4 bytes)
            150) value_entry[0]= "FUJIFILM": Value of "Camera (Image input equipment) manufacturer" (9 bytes)
            159) value_entry[1]= "FinePixS2Pro": Value of "Camera (Input input equipment) model" (13 bytes)
            172) value_entry[3][0]= 72: Value of "Image resolution width direction" (4 bytes)
            176) value_entry[3][1]= 1: Value of "Image resolution width direction" (4 bytes)
            180) value_entry[4][0]= 72: Value of "Image resolution in height direction" (4 bytes)
            184) value_entry[4][1]= 1: Value of "Image resolution in height direction" (4 bytes)
            188) value_entry[6]= "Adobe Photoshop 7.0": Value of "Software" (20 bytes)
            208) value_entry[7]= "2003:11:03 17:38:44": Value of "File change date and time" (20 bytes)
            228) value_entry[8]= "Ian Britton": Value of "File change date and time" (12 bytes)
            240) value_entry[10]= "FreeFoto.com": Value of "Copyright holder" (17 bytes)
            257) padding[0]= "\0\0\0" (3 bytes)
       + 274) ifd[1]: IFD (560 bytes)
       + 834) ifd[2]: IFD (94 bytes)
         928) thumbnail= "\xff\xd8\xff\xe0\0\x10JFIF\0\1\2\1(...)": Thumbnail (JPEG file) (4196 bytes)
 - 5148) photoshop: Photoshop (5778 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xed: Type (1 byte)
      2) size= 5776: Size (2 bytes)
    - 4) content: Chunk content (5774 bytes)
         0) signature= "Photoshop 3.0": Photoshop version (14 bytes)
       - 14) iptc: IPTC/NAA (86 bytes)
            0) signature= "8BIM": 8BIM signature (4 bytes)
            4) tag= 0x0404 (2 bytes)
            6) name= (empty) (4 bytes)
            10) size= 73 (2 bytes)
          - 12) content (74 bytes)
             + 0) record_version: Record version (2 for JPEG) (7 bytes)
             + 7) author: By-line (Author) (16 bytes)
             - 23) credit: Credit (29 bytes)
                  0) signature= 0x1c: IPTC signature (0x1c) (1 byte)
                  1) dataset_nb= 0x02: Dataset number (1 byte)
                  2) tag= 110: Tag (1 byte)
                + 3) size= 24: Content size (2 bytes)
                  5) content= "Ian Britton FreeFoto.com" (24 bytes)
             + 52) copyright: Copyright notice (21 bytes)
               73) padding= <null> (1 byte)
       + 100) item[0] (28 bytes)
       + 128) res_info: Resolution information (28 bytes)
       + 156) item[1] (26 bytes)
       + 182) glob_angle: Global lighting angle for effects (16 bytes)
       + 198) glob_altitude: Global altitude (16 bytes)
       + 214) print_flg: Print flags: labels, crop marks, colour bars, etc. (22 bytes)
       + 236) copyright_flg: Copyright flag (14 bytes)
       + 250) item[2] (24 bytes)
       + 274) print_flg2: Print flags (2) (22 bytes)
       + 296) col_half_info: Colour half-toning information (84 bytes)
       + 380) color_trans_func: Colour transfer function (124 bytes)
       + 504) grid_guide: Grid guides informations (28 bytes)
       + 532) url_list: Unicode URL's (16 bytes)
       + 548) slices: Slices (856 bytes)
       + 1404) base_layer_id: Base value for new layers ID's (16 bytes)
       + 1420) thumb_res2: Thumbnail resource (2) (4236 bytes)
       + 5656) version: Version information (98 bytes)
       + 5754) jpeg_qual: JPEG quality (20 bytes)
 + 10926) chunk[0]: Chunk: 0xe1 (6060 bytes)
 + 16986) chunk[1]: Chunk: 0xe2 (3162 bytes)
 - 20148) adobe: Image encoding information for DCT filters (Adobe) (16 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xee: Type (1 byte)
      2) size= 14: Size (2 bytes)
    - 4) content: Chunk content (12 bytes)
         0) adobe= "Adobe": "Adobe" string (5 bytes)
         5) version= 100: DCT encoder version (2 bytes)
         7.0) flag00= Chop down- or subsmapling (1 bit)
         7.1) flags0_reserved= 16384 (15 bits)
         9) flags1= <null> (2 bytes)
         11) color_transform= YCbCr (converted from RGB): Colorspace transformation code (1 byte)
 - 20164) quantization[0]: Define Quantization Table (DQT) (134 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xdb: Type (1 byte)
      2) size= 132: Size (2 bytes)
    - 4) content: Chunk content (130 bytes)
       - 0) qt[0]: Quantification table #0 (65 bytes)
            0.0) is_16bit= 0 (4 bits)
            0.4) index= 0 (4 bits)
            1) coeff[0]= 4 (1 byte)
            2) coeff[1]= 3 (1 byte)
            3) coeff[8]= 3 (1 byte)
            4) coeff[16]= 3 (1 byte)
            5) coeff[9]= 3 (1 byte)
            6) coeff[2]= 3 (1 byte)
            7) coeff[3]= 4 (1 byte)
            8) coeff[10]= 3 (1 byte)
            (...)
       + 65) qt[1]: Quantification table #1 (65 bytes)
 + 20298) start_frame: Start of frame (baseline) (19 bytes)
 - 20317) restart_interval: Define Restart Interval (DRI) (6 bytes)
      0) header= 0xff: Header (1 byte)
      1) type= 0xdd: Type (1 byte)
      2) size= 4: Size (2 bytes)
    - 4) content: Chunk content (2 bytes)
         0) interval= 75: Restart inteval (2 bytes)
 + 20323) huffman[0]: Define Huffman Table (DHT) (420 bytes)
 + 20743) start_scan: Start Of Scan (SOS) (14 bytes)
   20757) data= "\x95\1\x9d\x94C\xe5\xe7\x9bt\x19$:\x87\x15(...)": JPEG data (81.0 KB)
 + 103746) end_image: End of image (EOI) (2 bytes)

interlude_david_aubrun.ogg

0) file:interlude_david_aubrun.ogg: Ogg multimedia container (914.6 KB)
 - 0) page[0] (58 bytes)
      0) capture_pattern= "OggS" (4 bytes)
      4) stream_structure_version= 0 (1 byte)
      5.0) continued_packet= False (1 bit)
      5.1) first_page= True (1 bit)
      5.2) last_page= False (1 bit)
      5.3) unused= <null> (5 bits)
      6) abs_granule_pos= 0 (8 bytes)
      14) serial= 0x2c3974f4 (4 bytes)
      18) page= 0 (4 bytes)
      22) checksum= 0x87812d62 (4 bytes)
      26) lacing_size= 1 (1 byte)
    + 27) lacing (1 byte)
    - 28) segments (30 bytes)
         -> next= /page[1]/segments
       - 0) vorbis_hdr (30 bytes)
            0) type= 1 (1 byte)
            1) codec= "vorbis" (6 bytes)
            7) vorbis_version= 0 (4 bytes)
            11) audio_channels= 2 (1 byte)
            12) audio_sample_rate= 44100 (4 bytes)
            16) bitrate_maximum= 0 (4 bytes)
            20) bitrate_nominal= 120000 (4 bytes)
            24) bitrate_minimum= 0 (4 bytes)
            28.0) blocksize_0= 8 (4 bits)
            28.4) blocksize_1= 11 (4 bits)
            29) framing_flag= 1 (1 byte)
 - 58) page[1] (4286 bytes)
      0) capture_pattern= "OggS" (4 bytes)
      4) stream_structure_version= 0 (1 byte)
      5.0) continued_packet= False (1 bit)
      5.1) first_page= False (1 bit)
      5.2) last_page= False (1 bit)
      5.3) unused= <null> (5 bits)
      6) abs_granule_pos= 0 (8 bytes)
      14) serial= 0x2c3974f4 (4 bytes)
      18) page= 1 (4 bytes)
      22) checksum= 0x806bff11 (4 bytes)
      26) lacing_size= 17 (1 byte)
    + 27) lacing (17 bytes)
    - 44) segments (4242 bytes)
         -> first= /page[0]/segments
         -> next= /page[2]/segments
       - 0) comment (417 bytes)
            0) type= 3 (1 byte)
            1) codec= "vorbis" (6 bytes)
            7) vendor= "Xiph.Org libVorbis I 20040629" (33 bytes)
            40) count= 12 (4 bytes)
            44) metadata[0]= "ARTIST=david aubrun" (23 bytes)
            67) metadata[1]= "ALBUM=trip with water" (25 bytes)
            92) metadata[2]= "TRACKNUMBER=2" (17 bytes)
            109) metadata[3]= "TITLE=interlude symbiosys1" (30 bytes)
            139) metadata[4]= "DATE=2006-10-20 14:56:34" (28 bytes)
            167) metadata[5]= "ORGANIZATION=Jamendo : http://www.jamend(...)" (50 bytes)
            217) metadata[6]= "COMMENT=Jamendo : http://www.jamendo.com(...)" (45 bytes)
            262) metadata[7]= "DESCRIPTION=Jamendo : http://www.jamendo(...)" (49 bytes)
            311) metadata[8]= "WWW=http://www.jamendo.com/album/3132" (41 bytes)
            352) metadata[9]= "LICENSE=" (12 bytes)
            364) metadata[10]= "WCOP=" (9 bytes)
            373) metadata[11]= "WOAF=http://www.jamendo.com/track/22586" (43 bytes)
            416) framing_flag= 1 (1 byte)
       - 417) chunk[0] (3825 bytes)
            0) type= 5 (1 byte)
            1) codec= "vorbis" (6 bytes)
            7) raw= "%BCV\1\0@\0\0$s\x18*F(...)": Raw data (3818 bytes)
 + 4344) page[2] (35 bytes)
 + 4379) page[3] (4380 bytes)
   (...)