libheif icon indicating copy to clipboard operation
libheif copied to clipboard

Invalid input: No 'hvcC' box

Open bigcat88 opened this issue 11 months ago • 5 comments

libheif version: 1.19.5 file can be taken from this issue: https://github.com/bigcat88/pillow_heif/issues/329

note: macOS can open such file

bigcat88 avatar Jan 25 '25 07:01 bigcat88

Probably related to the unsupported tmap HDR.

bradh avatar Jan 25 '25 10:01 bradh

The error is produced for image item 57, which is part of a grid item with id 63.

Box: iref -----
...
| reference with type 'dimg' from ID: 63 to IDs: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 
...

Usually, these images have properties 2 (ispe) and 17 (hvcC). For some reason, the hvcC property is missing for items 57-61:

| | associations for item ID: 48
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 49
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 50
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 51
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 52
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 53
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 54
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 55
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 56
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 57
| | | property index: 2 (essential: true)
| | associations for item ID: 58
| | | property index: 2 (essential: true)
| | associations for item ID: 59
| | | property index: 2 (essential: true)
| | associations for item ID: 60
| | | property index: 2 (essential: true)
| | associations for item ID: 61
| | | property index: 2 (essential: true)
| | associations for item ID: 62
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)

Thus, it appears correct to me that libheif reports this error.

I am wondering why macOS decodes this image (as you say). @leo-barnes : why can macOS decode this image? What does it assume as the hvcC for hvc1 items 57-61? According to the original issue, the image was taken by an iPhone 15.

The complete box dump
Box: ftyp -----
size: 44   (header size: 8)
major brand: heic
minor version: 0
compatible brands: mif1,MiHB,MiHE,MiPr,miaf,heic,tmap

Box: meta -----
size: 31152   (header size: 12)
| Box: hdlr -----
| size: 33   (header size: 12)
| pre_defined: 0
| handler_type: pict
| name: 
| 
| Box: dinf -----
| size: 36   (header size: 8)
| | Box: dref -----
| | size: 28   (header size: 12)
| | | Box: url  -----
| | | size: 12   (header size: 12)
| | | location: 
| 
| Box: pitm -----
| size: 14   (header size: 12)
| item_ID: 46
| 
| Box: iinf -----
| size: 1461   (header size: 12)
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 1
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 2
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 3
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 4
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 5
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 6
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 7
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 8
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 9
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 10
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 11
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 12
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 13
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 14
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 15
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 16
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 17
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 18
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 19
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 20
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 21
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 22
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 23
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 24
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 25
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 26
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 27
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 28
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 29
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 30
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 31
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 32
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 33
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 34
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 35
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 36
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 37
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 38
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 39
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 40
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 41
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 42
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 43
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 44
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 45
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 46
| | item_protection_index: 0
| | item_type: grid
| | item_name: 
| | hidden item: false
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 47
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: false
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 48
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 49
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 50
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 51
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 52
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 53
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 54
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 55
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 56
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 57
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 58
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 59
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 60
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 61
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 62
| | item_protection_index: 0
| | item_type: hvc1
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 63
| | item_protection_index: 0
| | item_type: grid
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 41   (header size: 12)
| | item_ID: 64
| | item_protection_index: 0
| | item_type: mime
| | item_name: 
| | content_type: application/rdf+xml
| | content_encoding: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 66
| | item_protection_index: 0
| | item_type: tmap
| | item_name: 
| | hidden item: false
| | 
| | Box: infe -----
| | size: 21   (header size: 12)
| | item_ID: 67
| | item_protection_index: 0
| | item_type: Exif
| | item_name: 
| | hidden item: true
| | 
| | Box: infe -----
| | size: 41   (header size: 12)
| | item_ID: 68
| | item_protection_index: 0
| | item_type: mime
| | item_name: 
| | content_type: application/rdf+xml
| | content_encoding: 
| | hidden item: true
| 
| Box: iref -----
| size: 246   (header size: 12)
| reference with type 'dimg' from ID: 46 to IDs: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 
| reference with type 'thmb' from ID: 47 to IDs: 46 
| reference with type 'dimg' from ID: 63 to IDs: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 
| reference with type 'auxl' from ID: 63 to IDs: 46 
| reference with type 'cdsc' from ID: 64 to IDs: 63 
| reference with type 'dimg' from ID: 66 to IDs: 46 63 
| reference with type 'cdsc' from ID: 67 to IDs: 46 66 
| reference with type 'cdsc' from ID: 68 to IDs: 46 66 
| 
| Box: iprp -----
| size: 28220   (header size: 8)
| | Box: ipco -----
| | size: 27826   (header size: 8)
| | | index: 1
| | | Box: colr -----
| | | size: 548   (header size: 8)
| | | colour_type: prof
| | | profile size: 536
| | | 
| | | index: 2
| | | Box: ispe -----
| | | size: 20   (header size: 12)
| | | image width: 640
| | | image height: 896
| | | 
| | | index: 3
| | | Box: ispe -----
| | | size: 20   (header size: 12)
| | | image width: 5712
| | | image height: 4284
| | | 
| | | index: 4
| | | Box: irot -----
| | | size: 9   (header size: 8)
| | | rotation: 270 degrees (CCW)
| | | 
| | | index: 5
| | | Box: pixi -----
| | | size: 16   (header size: 12)
| | | bits_per_channel: 8,8,8
| | | 
| | | index: 6
| | | Box: ispe -----
| | | size: 20   (header size: 12)
| | | image width: 416
| | | image height: 312
| | | 
| | | index: 7
| | | Box: ispe -----
| | | size: 20   (header size: 12)
| | | image width: 2856
| | | image height: 2142
| | | 
| | | index: 8
| | | Box: pixi -----
| | | size: 14   (header size: 12)
| | | bits_per_channel: 8
| | | 
| | | index: 9
| | | Box: auxC -----
| | | size: 52   (header size: 12)
| | | aux type: urn:com:apple:photo:2020:aux:hdrgainmap
| | | aux subtypes: 
| | | 
| | | index: 10
| | | Box: colr -----
| | | size: 26700   (header size: 8)
| | | colour_type: prof
| | | profile size: 26688
| | | 
| | | index: 11
| | | Box: colr -----
| | | size: 19   (header size: 8)
| | | colour_type: nclx
| | | colour_primaries: 2
| | | transfer_characteristics: 2
| | | matrix_coefficients: 2
| | | full_range_flag: 1
| | | 
| | | index: 12
| | | Box: ispe -----
| | | size: 20   (header size: 12)
| | | image width: 4284
| | | image height: 5712
| | | 
| | | index: 13
| | | Box: irot -----
| | | size: 9   (header size: 8)
| | | rotation: 0 degrees (CCW)
| | | 
| | | index: 14
| | | Box: pixi -----
| | | size: 16   (header size: 12)
| | | bits_per_channel: 10,10,10
| | | 
| | | index: 15
| | | Box: hvcC -----
| | | size: 112   (header size: 8)
| | | configuration_version: 1
| | | general_profile_space: 0
| | | general_tier_flag: 0
| | | general_profile_idc: 3
| | | general_profile_compatibility_flags: 0111.0000 0000.0000 0000.0000 0000.0000 
| | | general_constraint_indicator_flags: 10110000 00000000 00000000 00000000 00000000 00000000 
| | | general_level_idc: 63
| | | min_spatial_segmentation_idc: 0
| | | parallelism_type: 0
| | | chroma_format: 4:2:0
| | | bit_depth_luma: 8
| | | bit_depth_chroma: 8
| | | avg_frame_rate: 0
| | | constant_frame_rate: 0
| | | num_temporal_layers: 1
| | | temporal_id_nested: 0
| | | length_size: 4
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 32
| | | | 40 01 0c 01 ff ff 03 70 00 00 03 00 b0 00 00 03 00 00 03 00 3f 70 24 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 33
| | | | 42 01 01 03 70 00 00 03 00 b0 00 00 03 00 00 03 00 3f a0 0d 08 05 07 cb 88 7b 91 65 53 70 c0 10 60 08 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 34
| | | | 44 01 c0 61 72 c8 40 53 24 
| | | 
| | | index: 16
| | | Box: hvcC -----
| | | size: 112   (header size: 8)
| | | configuration_version: 1
| | | general_profile_space: 0
| | | general_tier_flag: 0
| | | general_profile_idc: 3
| | | general_profile_compatibility_flags: 0111.0000 0000.0000 0000.0000 0000.0000 
| | | general_constraint_indicator_flags: 10110000 00000000 00000000 00000000 00000000 00000000 
| | | general_level_idc: 93
| | | min_spatial_segmentation_idc: 0
| | | parallelism_type: 0
| | | chroma_format: 4:2:0
| | | bit_depth_luma: 8
| | | bit_depth_chroma: 8
| | | avg_frame_rate: 0
| | | constant_frame_rate: 0
| | | num_temporal_layers: 1
| | | temporal_id_nested: 0
| | | length_size: 4
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 32
| | | | 40 01 0c 01 ff ff 03 70 00 00 03 00 b0 00 00 03 00 00 03 00 5d 70 24 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 33
| | | | 42 01 01 03 70 00 00 03 00 b0 00 00 03 00 00 03 00 5d a0 05 02 00 e0 58 87 b9 16 55 37 0c 01 06 00 80 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 34
| | | | 44 01 c0 61 52 c8 40 53 24 
| | | 
| | | index: 17
| | | Box: hvcC -----
| | | size: 111   (header size: 8)
| | | configuration_version: 1
| | | general_profile_space: 0
| | | general_tier_flag: 0
| | | general_profile_idc: 4
| | | general_profile_compatibility_flags: 0000.1000 0000.0000 0000.0000 0000.0000 
| | | general_constraint_indicator_flags: 10111111 11001000 00000000 00000000 00000000 00000000 
| | | general_level_idc: 93
| | | min_spatial_segmentation_idc: 0
| | | parallelism_type: 0
| | | chroma_format: 0
| | | bit_depth_luma: 8
| | | bit_depth_chroma: 8
| | | avg_frame_rate: 0
| | | constant_frame_rate: 0
| | | num_temporal_layers: 1
| | | temporal_id_nested: 0
| | | length_size: 4
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 32
| | | | 40 01 0c 01 ff ff 04 08 00 00 03 00 bf c8 00 00 03 00 00 5d 17 02 40 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 33
| | | | 42 01 01 04 08 00 00 03 00 bf c8 00 00 03 00 00 5d c0 14 08 03 81 62 05 ee 45 95 4d c0 80 80 80 20 
| | | <array>
| | | | array_completeness: 0
| | | | NAL_unit_type: 34
| | | | 44 01 c0 63 cb 21 01 4c 90 
| | 
| | Box: ipma -----
| | size: 386   (header size: 12)
| | associations for item ID: 1
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 2
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 3
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 4
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 5
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 6
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 7
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 8
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 9
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 10
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 11
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 12
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 13
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 14
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 15
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 16
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 17
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 18
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 19
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 20
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 21
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 22
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 23
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 24
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 25
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 26
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 27
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 28
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 29
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 30
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 31
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 32
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 33
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 34
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 35
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 36
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 37
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 38
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 39
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 40
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 41
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 42
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 43
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 44
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 45
| | | property index: 2 (essential: true)
| | | property index: 1 (essential: true)
| | | property index: 16 (essential: true)
| | associations for item ID: 46
| | | property index: 1 (essential: true)
| | | property index: 3 (essential: false)
| | | property index: 4 (essential: true)
| | | property index: 5 (essential: false)
| | associations for item ID: 47
| | | property index: 1 (essential: true)
| | | property index: 6 (essential: false)
| | | property index: 4 (essential: true)
| | | property index: 5 (essential: false)
| | | property index: 15 (essential: true)
| | associations for item ID: 48
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 49
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 50
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 51
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 52
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 53
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 54
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 55
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 56
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 57
| | | property index: 2 (essential: true)
| | associations for item ID: 58
| | | property index: 2 (essential: true)
| | associations for item ID: 59
| | | property index: 2 (essential: true)
| | associations for item ID: 60
| | | property index: 2 (essential: true)
| | associations for item ID: 61
| | | property index: 2 (essential: true)
| | associations for item ID: 62
| | | property index: 2 (essential: true)
| | | property index: 17 (essential: true)
| | associations for item ID: 63
| | | property index: 7 (essential: false)
| | | property index: 4 (essential: true)
| | | property index: 8 (essential: false)
| | | property index: 9 (essential: true)
| | | property index: 11 (essential: true)
| | associations for item ID: 66
| | | property index: 10 (essential: true)
| | | property index: 12 (essential: false)
| | | property index: 13 (essential: true)
| | | property index: 14 (essential: false)
| 
| Box: grpl -----
| size: 36   (header size: 8)
| | Box: altr -----
| | size: 28   (header size: 12)
| | group id: 65
| | entity IDs: 66 46
| 
| Box: idat -----
| size: 86   (header size: 8)
| number of data bytes: 78
| 
| Box: iloc -----
| size: 1008   (header size: 12)
| item ID: 1
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 70026,50967 
| item ID: 2
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 120993,50284 
| item ID: 3
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 171277,40180 
| item ID: 4
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 211457,45947 
| item ID: 5
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 257404,37750 
| item ID: 6
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 295154,38550 
| item ID: 7
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 333704,36437 
| item ID: 8
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 370141,64833 
| item ID: 9
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 434974,79306 
| item ID: 10
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 514280,41690 
| item ID: 11
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 555970,40420 
| item ID: 12
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 596390,39056 
| item ID: 13
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 635446,41754 
| item ID: 14
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 677200,42340 
| item ID: 15
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 719540,60359 
| item ID: 16
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 779899,44769 
| item ID: 17
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 824668,61665 
| item ID: 18
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 886333,75022 
| item ID: 19
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 961355,33460 
| item ID: 20
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 994815,37363 
| item ID: 21
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1032178,41474 
| item ID: 22
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1073652,44486 
| item ID: 23
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1118138,36393 
| item ID: 24
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1154531,37360 
| item ID: 25
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1191891,38441 
| item ID: 26
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1230332,51210 
| item ID: 27
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1281542,63729 
| item ID: 28
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1345271,35772 
| item ID: 29
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1381043,37476 
| item ID: 30
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1418519,43516 
| item ID: 31
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1462035,36942 
| item ID: 32
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1498977,32502 
| item ID: 33
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1531479,38994 
| item ID: 34
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1570473,31027 
| item ID: 35
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1601500,51002 
| item ID: 36
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1652502,49755 
| item ID: 37
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1702257,31873 
| item ID: 38
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1734130,34109 
| item ID: 39
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1768239,36328 
| item ID: 40
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1804567,31044 
| item ID: 41
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1835611,33339 
| item ID: 42
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1868950,35432 
| item ID: 43
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1904382,24307 
| item ID: 44
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1928689,48474 
| item ID: 45
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 1977163,28205 
| item ID: 46
|   construction method: 1
|   data_reference_index: 0
|   base_offset: 0
|   extents: 0,8 
| item ID: 47
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 37307,32719 
| item ID: 48
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2005368,13203 
| item ID: 49
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2018571,12524 
| item ID: 50
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2031095,11651 
| item ID: 51
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2042746,15454 
| item ID: 52
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2058200,16338 
| item ID: 53
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2074538,6144 
| item ID: 54
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2080682,10383 
| item ID: 55
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2091065,8072 
| item ID: 56
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2099137,12656 
| item ID: 62
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 2111793,1453 
| item ID: 63
|   construction method: 1
|   data_reference_index: 0
|   base_offset: 0
|   extents: 8,8 
| item ID: 64
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 31212,445 
| item ID: 66
|   construction method: 1
|   data_reference_index: 0
|   base_offset: 0
|   extents: 16,62 
| item ID: 67
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 31657,2460 
| item ID: 68
|   construction method: 0
|   data_reference_index: 0
|   base_offset: 0
|   extents: 34117,3190 

farindk avatar Feb 18 '25 23:02 farindk

@farindk This is a known issue. There was an edge case where the camera would capture corrupt images where some of the tiles were missing. It has since been fixed, so no more such images should be getting created.

why can macOS decode this image? What does it assume as the hvcC for hvc1 items 57-61?

We simply ignore those tiles and leave the grid canvas black where we don't have any tiles. (You'll notice that there is actually no iloc entries for those tiles in any case, so assuming some hvcC won't help.)

leo-barnes avatar Feb 19 '25 11:02 leo-barnes

I work at Aura Frames (@pushd), and we have this issue popping up for about 27k customer images that we're unable to show on customer digital photo frames because we can't process them. Is libheif interested in doing something like Apple's fix to ignore those tiles, or should we investigate using something like Apple's sips utility to rewrite heif files with this problem?

sleepdeprecation avatar Mar 27 '25 18:03 sleepdeprecation

We are also seeing this issue where we continue to get corrupt images from iOS users. It would be very useful to have a workaround so that libheic does not error out when processing those files

renchap avatar Apr 16 '25 13:04 renchap