1
1
mirror of https://github.com/wader/fq.git synced 2024-11-23 09:56:07 +03:00
fq/format/mp4/testdata/heic.fqtest
Mattias Wadman 1b32b42f93 decode: Major decode API refactor
Generate more code
More generic and comfortable API
Improve and Update format decoder to new API
Add some more format tests
2021-11-15 21:12:07 +01:00

182 lines
21 KiB
Plaintext

# ffmpeg -f lavfi -i testsrc=size=16x16:r=1 -preset slower -r 1 -t 1s -pix_fmt yuv420p -f hevc heic.hvc
# MP4Box -add-image heic.hvc -ab heic -new heic.mp4
$ fq -d mp4 verbose /heic.mp4
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.: {} /heic.mp4 (mp4) 0x0-0xb2c.7 (2861)
| | | boxes: [4] 0x0-0xb2c.7 (2861)
| | | [0]: box {} 0x0-0x17.7 (24)
0x000|00 00 00 18 |.... | size: 24 0x0-0x3.7 (4)
0x000| 66 74 79 70 | ftyp | type: "ftyp" (File type and compatibility) 0x4-0x7.7 (4)
0x000| 6d 69 66 31 | mif1 | major_brand: "mif1" 0x8-0xb.7 (4)
0x000| 00 00 00 00| ....| minor_version: 0 0xc-0xf.7 (4)
| | | brands: [2] 0x10-0x17.7 (8)
0x010|6d 69 66 31 |mif1 | [0]: brand "mif1" (High Efficiency Image Format still image (.HEIF)) 0x10-0x13.7 (4)
0x010| 68 65 69 63 | heic | [1]: brand "heic" (High Efficiency Image Format HEVC still image (.HEIC)) 0x14-0x17.7 (4)
| | | [1]: box {} 0x18-0x16b.7 (340)
0x010| 00 00 01 54 | ...T | size: 340 0x18-0x1b.7 (4)
0x010| 6d 65 74 61| meta| type: "meta" (Metadata container) 0x1c-0x1f.7 (4)
0x020|00 00 00 00 |.... | maybe_flags: 0 0x20-0x23.7 (4)
| | | boxes: [4] 0x24-0x16b.7 (328)
| | | [0]: box {} 0x24-0x55.7 (50)
0x020| 00 00 00 32 | ...2 | size: 50 0x24-0x27.7 (4)
0x020| 68 64 6c 72 | hdlr | type: "hdlr" (Handler, declares the media (handler) type) 0x28-0x2b.7 (4)
0x020| 00 | . | version: 0 0x2c-0x2c.7 (1)
0x020| 00 00 00| ...| flags: 0 0x2d-0x2f.7 (3)
0x030|00 00 00 00 |.... | component_type: "" 0x30-0x33.7 (4)
0x030| 70 69 63 74 | pict | component_subtype: "pict" (Picture) 0x34-0x37.7 (4)
0x030| 00 00 00 00 | .... | component_manufacturer: "" 0x38-0x3b.7 (4)
0x030| 00 00 00 00| ....| component_flags: 0 0x3c-0x3f.7 (4)
0x040|00 00 00 00 |.... | component_flags_mask: 0 0x40-0x43.7 (4)
0x040| 47 50 41 43 20 70 69 63 74 20 48 61| GPAC pict Ha| component_name: "GPAC pict Handler" 0x44-0x55.7 (18)
0x050|6e 64 6c 65 72 00 |ndler. |
| | | [1]: box {} 0x56-0x73.7 (30)
0x050| 00 00 00 1e | .... | size: 30 0x56-0x59.7 (4)
0x050| 69 6c 6f 63 | iloc | type: "iloc" (Item location) 0x5a-0x5d.7 (4)
0x050| 00 | . | version: 0 0x5e-0x5e.7 (1)
0x050| 00| .| flags: 0 0x5f-0x61.7 (3)
0x060|00 00 |.. |
0x060| 04 | . | offset_size: 0 0x62-0x62.3 (0.4)
0x060| 04 | . | length_size: 4 0x62.4-0x62.7 (0.4)
0x060| 40 | @ | base_offset_size: 4 0x63-0x63.3 (0.4)
0x060| 40 | @ | reserved: 0 0x63.4-0x63.7 (0.4)
0x060| 00 01 | .. | item_count: 1 0x64-0x65.7 (2)
| | | items: [1] 0x66-0x73.7 (14)
| | | [0]: item {} 0x66-0x73.7 (14)
0x060| 00 01 | .. | id: 1 0x66-0x67.7 (2)
0x060| 00 00 | .. | data_reference_index: 0 0x68-0x69.7 (2)
0x060| 00 00 01 74 | ...t | base_offset: 372 0x6a-0x6d.7 (4)
0x060| 00 01| ..| extent_count: 1 0x6e-0x6f.7 (2)
| | | extends: [1] 0x70-0x73.7 (4)
| | | [0]: extent {} 0x70-0x73.7 (4)
| | | offset: 0 0x70-NA (0)
0x070|00 00 09 7f |.... | length: 2431 0x70-0x73.7 (4)
| | | [2]: box {} 0x74-0x9b.7 (40)
0x070| 00 00 00 28 | ...( | size: 40 0x74-0x77.7 (4)
0x070| 69 69 6e 66 | iinf | type: "iinf" (Item information) 0x78-0x7b.7 (4)
0x070| 00 | . | version: 0 0x7c-0x7c.7 (1)
0x070| 00 00 00| ...| flags: 0 0x7d-0x7f.7 (3)
0x080|00 01 |.. | entry_count: 1 0x80-0x81.7 (2)
| | | boxes: [1] 0x82-0x9b.7 (26)
| | | [0]: box {} 0x82-0x9b.7 (26)
0x080| 00 00 00 1a | .... | size: 26 0x82-0x85.7 (4)
0x080| 69 6e 66 65 | infe | type: "infe" (Item information entry) 0x86-0x89.7 (4)
0x080| 02 | . | version: 2 0x8a-0x8a.7 (1)
0x080| 00 00 00 | ... | flags: 0 0x8b-0x8d.7 (3)
0x080| 00 01| ..| id: 1 0x8e-0x8f.7 (2)
0x090|00 00 |.. | protection_index: 0 0x90-0x91.7 (2)
0x090| 68 76 63 31 49 6d 61 67 65 00 | hvc1Image. | item_name: "hvc1Image" 0x92-0x9b.7 (10)
| | | [3]: box {} 0x9c-0x16b.7 (208)
0x090| 00 00 00 d0| ....| size: 208 0x9c-0x9f.7 (4)
0x0a0|69 70 72 70 |iprp | type: "iprp" (Item Properties Box) 0xa0-0xa3.7 (4)
| | | boxes: [2] 0xa4-0x16b.7 (200)
| | | [0]: box {} 0xa4-0x154.7 (177)
0x0a0| 00 00 00 b1 | .... | size: 177 0xa4-0xa7.7 (4)
0x0a0| 69 70 63 6f | ipco | type: "ipco" (ItemPropertyContainerBox) 0xa8-0xab.7 (4)
| | | boxes: [4] 0xac-0x154.7 (169)
| | | [0]: box {} 0xac-0xbf.7 (20)
0x0a0| 00 00 00 14| ....| size: 20 0xac-0xaf.7 (4)
0x0b0|69 73 70 65 |ispe | type: "ispe" 0xb0-0xb3.7 (4)
0x0b0| 00 00 00 00 00 00 00 10 00 00 00 10| ............| data: raw bits 0xb4-0xbf.7 (12)
| | | [1]: box {} 0xc0-0xcf.7 (16)
0x0c0|00 00 00 10 |.... | size: 16 0xc0-0xc3.7 (4)
0x0c0| 70 61 73 70 | pasp | type: "pasp" (Pixel aspect ratio) 0xc4-0xc7.7 (4)
0x0c0| 00 00 00 01 | .... | h_spacing: 1 0xc8-0xcb.7 (4)
0x0c0| 00 00 00 01| ....| v_spacing: 1 0xcc-0xcf.7 (4)
| | | [2]: box {} 0xd0-0x144.7 (117)
0x0d0|00 00 00 75 |...u | size: 117 0xd0-0xd3.7 (4)
0x0d0| 68 76 63 43 | hvcC | type: "hvcC" 0xd4-0xd7.7 (4)
| | | descriptor: {} (hevc_dcr) 0xd8-0x144.7 (109)
0x0d0| 01 | . | configuration_version: 1 0xd8-0xd8.7 (1)
0x0d0| 01 | . | general_profile_space: 0 0xd9-0xd9.1 (0.2)
0x0d0| 01 | . | general_tier_flag: 0 0xd9.2-0xd9.2 (0.1)
0x0d0| 01 | . | general_profile_idc: 1 0xd9.3-0xd9.7 (0.5)
0x0d0| 60 00 00 00 | `... | general_profile_compatibility_flags: 1610612736 0xda-0xdd.7 (4)
0x0d0| 90 00| ..| general_constraint_indicator_flags: 158329674399744 0xde-0xe3.7 (6)
0x0e0|00 00 00 00 |.... |
0x0e0| 1e | . | general_level_idc: 30 0xe4-0xe4.7 (1)
0x0e0| f0 | . | reserved0: 15 0xe5-0xe5.3 (0.4)
0x0e0| f0 00 | .. | min_spatial_segmentation_idc: 0 0xe5.4-0xe6.7 (1.4)
0x0e0| fd | . | reserved1: 63 0xe7-0xe7.5 (0.6)
0x0e0| fd | . | parallelism_type: 1 0xe7.6-0xe7.7 (0.2)
0x0e0| fd | . | reserved2: 63 0xe8-0xe8.5 (0.6)
0x0e0| fd | . | chroma_format_idc: 1 0xe8.6-0xe8.7 (0.2)
0x0e0| f8 | . | reserved3: 31 0xe9-0xe9.4 (0.5)
0x0e0| f8 | . | bit_depth_luma_minus8: 0 0xe9.5-0xe9.7 (0.3)
0x0e0| f8 | . | reserved4: 31 0xea-0xea.4 (0.5)
0x0e0| f8 | . | bit_depth_chroma_minus8: 0 0xea.5-0xea.7 (0.3)
0x0e0| 00 00 | .. | avg_frame_rate: 0 0xeb-0xec.7 (2)
0x0e0| 0f | . | constant_frame_rate: 0 0xed-0xed.1 (0.2)
0x0e0| 0f | . | num_temporal_layers: 1 0xed.2-0xed.4 (0.3)
0x0e0| 0f | . | temporal_id_nested: 1 0xed.5-0xed.5 (0.1)
0x0e0| 0f | . | length_size_minus_one: 3 0xed.6-0xed.7 (0.2)
0x0e0| 03 | . | num_of_arrays: 3 0xee-0xee.7 (1)
| | | arrays: [3] 0xef-0x144.7 (86)
| | | [0]: array {} 0xef-0x10c.7 (30)
0x0e0| a0| .| array_completeness: 1 0xef-0xef (0.1)
0x0e0| a0| .| reserved0: 0 0xef.1-0xef.1 (0.1)
0x0e0| a0| .| nal_unit_type: "VPS_NUT" (32) 0xef.2-0xef.7 (0.6)
0x0f0|00 01 |.. | num_nalus: 1 0xf0-0xf1.7 (2)
| | | nals: [1] 0xf2-0x10c.7 (27)
| | | [0]: nal {} 0xf2-0x10c.7 (27)
0x0f0| 00 19 | .. | nal_unit_length: 25 0xf2-0xf3.7 (2)
| | | nal: {} (hevc_nalu) 0xf4-0x10c.7 (25)
0x0f0| 40 | @ | forbidden_zero_bit: false 0xf4-0xf4 (0.1)
0x0f0| 40 | @ | nal_unit_type: "VPS_NUT" (32) 0xf4.1-0xf4.6 (0.6)
0x0f0| 40 01 | @. | nuh_layer_id: 0 0xf4.7-0xf5.4 (0.6)
0x0f0| 01 | . | nuh_temporal_id_plus1: 1 0xf5.5-0xf5.7 (0.3)
0x0f0| 0c 01 ff ff 01 60 00 00 03 00| .....`....| data: raw bits 0xf6-0x10c.7 (23)
0x100|90 00 00 03 00 00 03 00 1e 99 8a 02 40 |............@ |
| | | [1]: array {} 0x10d-0x139.7 (45)
0x100| a1 | . | array_completeness: 1 0x10d-0x10d (0.1)
0x100| a1 | . | reserved0: 0 0x10d.1-0x10d.1 (0.1)
0x100| a1 | . | nal_unit_type: "SPS_NUT" (33) 0x10d.2-0x10d.7 (0.6)
0x100| 00 01| ..| num_nalus: 1 0x10e-0x10f.7 (2)
| | | nals: [1] 0x110-0x139.7 (42)
| | | [0]: nal {} 0x110-0x139.7 (42)
0x110|00 28 |.( | nal_unit_length: 40 0x110-0x111.7 (2)
| | | nal: {} (hevc_nalu) 0x112-0x139.7 (40)
0x110| 42 | B | forbidden_zero_bit: false 0x112-0x112 (0.1)
0x110| 42 | B | nal_unit_type: "SPS_NUT" (33) 0x112.1-0x112.6 (0.6)
0x110| 42 01 | B. | nuh_layer_id: 0 0x112.7-0x113.4 (0.6)
0x110| 01 | . | nuh_temporal_id_plus1: 1 0x113.5-0x113.7 (0.3)
0x110| 01 01 60 00 00 03 00 90 00 00 03 00| ..`.........| data: raw bits 0x114-0x139.7 (38)
0x120|00 03 00 1e a0 88 45 96 66 2a ad b6 bc 05 a0 20|......E.f*..... |
0x130|00 00 03 00 20 00 00 03 00 21 |.... ....! |
| | | [2]: array {} 0x13a-0x144.7 (11)
0x130| a2 | . | array_completeness: 1 0x13a-0x13a (0.1)
0x130| a2 | . | reserved0: 0 0x13a.1-0x13a.1 (0.1)
0x130| a2 | . | nal_unit_type: "PPS_NUT" (34) 0x13a.2-0x13a.7 (0.6)
0x130| 00 01 | .. | num_nalus: 1 0x13b-0x13c.7 (2)
| | | nals: [1] 0x13d-0x144.7 (8)
| | | [0]: nal {} 0x13d-0x144.7 (8)
0x130| 00 06 | .. | nal_unit_length: 6 0x13d-0x13e.7 (2)
| | | nal: {} (hevc_nalu) 0x13f-0x144.7 (6)
0x130| 44| D| forbidden_zero_bit: false 0x13f-0x13f (0.1)
0x130| 44| D| nal_unit_type: "PPS_NUT" (34) 0x13f.1-0x13f.6 (0.6)
0x130| 44| D| nuh_layer_id: 0 0x13f.7-0x140.4 (0.6)
0x140|01 |. |
0x140|01 |. | nuh_temporal_id_plus1: 1 0x140.5-0x140.7 (0.3)
0x140| c1 73 d8 89 | .s.. | data: raw bits 0x141-0x144.7 (4)
| | | [3]: box {} 0x145-0x154.7 (16)
0x140| 00 00 00 10 | .... | size: 16 0x145-0x148.7 (4)
0x140| 70 69 78 69 | pixi | type: "pixi" 0x149-0x14c.7 (4)
0x140| 00 00 00| ...| data: raw bits 0x14d-0x154.7 (8)
0x150|00 03 08 08 08 |..... |
| | | [1]: box {} 0x155-0x16b.7 (23)
0x150| 00 00 00 17 | .... | size: 23 0x155-0x158.7 (4)
0x150| 69 70 6d 61 | ipma | type: "ipma" (ItemPropertyAssociation) 0x159-0x15c.7 (4)
0x150| 00 00 00| ...| data: raw bits 0x15d-0x16b.7 (15)
0x160|00 00 00 00 01 00 01 04 01 02 83 84 |............ |
| | | [2]: box {} 0x16c-0xaf2.7 (2439)
0x160| 00 00 09 87| ....| size: 2439 0x16c-0x16f.7 (4)
0x170|6d 64 61 74 |mdat | type: "mdat" (Media data container) 0x170-0x173.7 (4)
0x170| 00 00 08 b9 4e 01 05 ff ff ff ff ff| ....N.......| data: raw bits 0x174-0xaf2.7 (2431)
0x180|ff ff ff b4 2c a2 de 09 b5 17 47 db bb 55 a4 fe|....,.....G..U..|
* |until 0xaf2.7 (2431) | |
| | | [3]: box {} 0xaf3-0xb2c.7 (58)
0xaf0| 00 00 00 3a | ...: | size: 58 0xaf3-0xaf6.7 (4)
0xaf0| 66 72 65 65 | free | type: "free" (Free space) 0xaf7-0xafa.7 (4)
0xaf0| 49 73 6f 4d 65| IsoMe| data: raw bits 0xafb-0xb2c.7 (50)
0xb00|64 69 61 20 46 69 6c 65 20 50 72 6f 64 75 63 65|dia File Produce|
* |until 0xb2c.7 (end) (50) | |
| | | tracks: [0] 0xb2d-NA (0)