diff --git a/test/data/IMG_3578.HEIC b/test/data/IMG_3578.heic
similarity index 100%
rename from test/data/IMG_3578.HEIC
rename to test/data/IMG_3578.heic
diff --git a/tests/bugfixes/github/test_pr1475_AVIF.py b/tests/bugfixes/github/test_pr1475_AVIF.py
new file mode 100644
index 00000000..ef5b6d13
--- /dev/null
+++ b/tests/bugfixes/github/test_pr1475_AVIF.py
@@ -0,0 +1,422 @@
+# -*- coding: utf-8 -*-
+
+import system_tests
+# test needs system_tests.vv.enable_bmff=1
+vv=system_tests.verbose_version()
+enable_bmff = 'enable_bmff'
+bSkip = not (enable_bmff in vv and vv[enable_bmff] == '1')
+
+class pr_1475_avif_avif(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/avif.avif"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -pa $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ,"$exiv2 -pC $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.ExifTag Long 1 26
+Exif.Photo.DateTimeOriginal Ascii 20 2018:08:15 11:37:35
+Exif.Photo.SubSecTimeOriginal Ascii 3 59
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->32 brand: avif
+Exiv2::BmffImage::boxHandler: meta 32->304
+ Exiv2::BmffImage::boxHandler: hdlr 44->33
+ Exiv2::BmffImage::boxHandler: pitm 77->14
+ Exiv2::BmffImage::boxHandler: iinf 91->56
+ Exiv2::BmffImage::boxHandler: infe 105->21 ID = 1 av01
+ Exiv2::BmffImage::boxHandler: infe 126->21 ID = 2 Exif *** Exif ***
+ Exiv2::BmffImage::boxHandler: iloc 147->44
+ 155 | 14 | ID | 1 | 408,218726
+ 169 | 14 | ID | 2 | 219134, 82
+ Exiv2::BmffImage::boxHandler: iprp 191->119
+ Exiv2::BmffImage::boxHandler: ipco 199->88
+ Exiv2::BmffImage::boxHandler: ispe 207->20 pixelWidth_, pixelHeight_ = 1920, 1080
+ Exiv2::BmffImage::boxHandler: colr 227->19
+ Exiv2::BmffImage::boxHandler: av1C 246->25
+ Exiv2::BmffImage::boxHandler: pixi 271->16
+ Exiv2::BmffImage::boxHandler: ipma 287->23
+ Exiv2::BmffImage::boxHandler: iref 310->26
+Exiv2::BMFF Exif: ID = 2 from,length = 219134,82
+Exiv2::BmffImage::boxHandler: free 336->64
+Exiv2::BmffImage::boxHandler: mdat 400->218816
+""","",""]
+
+class pr_1475_avif_exif_xmp(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/avif_exif_xmp.avif"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -g Image.Make -g Date -g Xm -g Expo -g Flash $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ,"$exiv2 -pC $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.DateTime Ascii 20 2021:02:13 21:19:50
+Xmp.iptcExt.DigitalSourceType XmpText 61 http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture
+Xmp.iptcExt.LocationCreated XmpBag 0
+Xmp.iptcExt.LocationShown XmpBag 0
+Xmp.iptcExt.ArtworkOrObject XmpBag 0
+Xmp.iptcExt.RegistryId XmpBag 0
+Xmp.xmpMM.DocumentID XmpText 52 gimp:docid:gimp:8cf1b29a-9b12-4dec-9930-f2c608b298de
+Xmp.xmpMM.InstanceID XmpText 44 xmp.iid:33e259b4-7237-4b2a-87bf-4609986012a8
+Xmp.xmpMM.OriginalDocumentID XmpText 44 xmp.did:02dfa8e8-ce11-4de7-971d-566a5bba5edb
+Xmp.xmpMM.History XmpText 0 type="Seq"
+Xmp.xmpMM.History[1] XmpText 0 type="Struct"
+Xmp.xmpMM.History[1]/stEvt:action XmpText 5 saved
+Xmp.xmpMM.History[1]/stEvt:changed XmpText 9 /metadata
+Xmp.xmpMM.History[1]/stEvt:instanceID XmpText 44 xmp.iid:446f9de2-f964-4680-8461-ddf05bfcc53e
+Xmp.xmpMM.History[1]/stEvt:softwareAgent XmpText 19 GIMP 2.99.5 (Linux)
+Xmp.xmpMM.History[1]/stEvt:when XmpText 25 2021-02-13T21:19:04+01:00
+Xmp.xmpMM.History[2] XmpText 0 type="Struct"
+Xmp.xmpMM.History[2]/stEvt:action XmpText 5 saved
+Xmp.xmpMM.History[2]/stEvt:changed XmpText 1 /
+Xmp.xmpMM.History[2]/stEvt:instanceID XmpText 44 xmp.iid:017dc808-2418-4f70-99f3-aa05905adb88
+Xmp.xmpMM.History[2]/stEvt:softwareAgent XmpText 19 GIMP 2.99.5 (Linux)
+Xmp.xmpMM.History[2]/stEvt:when XmpText 25 2021-02-13T21:20:14+01:00
+Xmp.plus.ModelReleaseStatus XmpText 38 None
+Xmp.plus.ImageSupplier XmpSeq 0
+Xmp.plus.ImageCreator XmpSeq 0
+Xmp.plus.CopyrightOwner XmpSeq 0
+Xmp.plus.Licensor XmpSeq 0
+Xmp.GIMP.API XmpText 3 3.0
+Xmp.GIMP.Platform XmpText 5 Linux
+Xmp.GIMP.TimeStamp XmpText 16 1613247614397805
+Xmp.GIMP.Version XmpText 6 2.99.5
+Xmp.dc.Format XmpText 10 image/avif
+Xmp.dc.creator XmpSeq 1 type="Seq" Developer
+Xmp.dc.description LangAlt 1 lang="x-default" This is a testfile
+Xmp.dc.rights LangAlt 1 lang="x-default" It is forbidden to use for evil purposes
+Xmp.dc.title LangAlt 1 lang="x-default" Personal photo
+Xmp.photoshop.AuthorsPosition XmpText 18 Computer Scientist
+Xmp.xmp.CreatorTool XmpText 4 GIMP
+Xmp.xmp.Rating XmpText 1 5
+Xmp.xmpRights.Marked XmpText 4 True
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->32 brand: avif
+Exiv2::BmffImage::boxHandler: meta 32->379
+ Exiv2::BmffImage::boxHandler: hdlr 44->40
+ Exiv2::BmffImage::boxHandler: pitm 84->14
+ Exiv2::BmffImage::boxHandler: iloc 98->58
+ 106 | 14 | ID | 1 | 5418, 5445
+ 120 | 14 | ID | 2 | 419, 316
+ 134 | 14 | ID | 3 | 735, 4683
+ Exiv2::BmffImage::boxHandler: iinf 156->109
+ Exiv2::BmffImage::boxHandler: infe 170->26 ID = 1 av01Color
+ Exiv2::BmffImage::boxHandler: infe 196->25 ID = 2 ExifExif *** Exif ***
+ Exiv2::BmffImage::boxHandler: infe 221->44 ID = 3 mimeXMP *** XMP ***
+ Exiv2::BmffImage::boxHandler: iref 265->40
+ Exiv2::BmffImage::boxHandler: iprp 305->106
+ Exiv2::BmffImage::boxHandler: ipco 313->75
+ Exiv2::BmffImage::boxHandler: ispe 321->20 pixelWidth_, pixelHeight_ = 120, 120
+ Exiv2::BmffImage::boxHandler: pixi 341->16
+ Exiv2::BmffImage::boxHandler: av1C 357->12
+ Exiv2::BmffImage::boxHandler: colr 369->19
+ Exiv2::BmffImage::boxHandler: ipma 388->23
+Exiv2::BMFF Exif: ID = 2 from,length = 419,316
+Exiv2::BMFF XMP: ID = 3 from,length = 735,4683
+Exiv2::BmffImage::boxHandler: mdat 411->10452
+""","""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ type="Seq" Developer
+
+
+
+
+ This is a testfile
+
+
+
+
+ It is forbidden to use for evil purposes
+
+
+
+
+ Personal photo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+""",""]
+
+class pr_1475_avif_metadata2(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/avif_metadata2.avif"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -g Image.Make -g Date -g Xm -g Expo -g Flash $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ,"$exiv2 -pC $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.DateTime Ascii 20 2021:02:13 21:25:32
+Xmp.iptcExt.DigitalSourceType XmpText 61 http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture
+Xmp.iptcExt.LocationCreated XmpBag 0
+Xmp.iptcExt.LocationShown XmpBag 0
+Xmp.iptcExt.ArtworkOrObject XmpBag 0
+Xmp.iptcExt.RegistryId XmpBag 0
+Xmp.xmpMM.DocumentID XmpText 52 gimp:docid:gimp:e38231ee-2d28-42e6-b17e-6fa80c9fd85b
+Xmp.xmpMM.InstanceID XmpText 44 xmp.iid:34774f89-42e3-4411-a691-f8cdb5b11def
+Xmp.xmpMM.OriginalDocumentID XmpText 44 xmp.did:e2129b55-045f-4085-bbd2-e11d11edfa0c
+Xmp.xmpMM.History XmpText 0 type="Seq"
+Xmp.xmpMM.History[1] XmpText 0 type="Struct"
+Xmp.xmpMM.History[1]/stEvt:action XmpText 5 saved
+Xmp.xmpMM.History[1]/stEvt:changed XmpText 9 /metadata
+Xmp.xmpMM.History[1]/stEvt:instanceID XmpText 44 xmp.iid:928b36e2-0239-4616-847a-eff7a31816e3
+Xmp.xmpMM.History[1]/stEvt:softwareAgent XmpText 19 GIMP 2.99.5 (Linux)
+Xmp.xmpMM.History[1]/stEvt:when XmpText 25 2021-02-13T21:24:26+01:00
+Xmp.xmpMM.History[2] XmpText 0 type="Struct"
+Xmp.xmpMM.History[2]/stEvt:action XmpText 5 saved
+Xmp.xmpMM.History[2]/stEvt:changed XmpText 1 /
+Xmp.xmpMM.History[2]/stEvt:instanceID XmpText 44 xmp.iid:23f267c5-c40a-45c8-947d-11313b4881c1
+Xmp.xmpMM.History[2]/stEvt:softwareAgent XmpText 19 GIMP 2.99.5 (Linux)
+Xmp.xmpMM.History[2]/stEvt:when XmpText 25 2021-02-13T21:25:41+01:00
+Xmp.plus.ModelReleaseStatus XmpText 38 None
+Xmp.plus.ImageSupplier XmpSeq 0
+Xmp.plus.ImageCreator XmpSeq 0
+Xmp.plus.CopyrightOwner XmpSeq 0
+Xmp.plus.Licensor XmpSeq 0
+Xmp.GIMP.API XmpText 3 3.0
+Xmp.GIMP.Platform XmpText 5 Linux
+Xmp.GIMP.TimeStamp XmpText 16 1613247941462908
+Xmp.GIMP.Version XmpText 6 2.99.5
+Xmp.dc.Format XmpText 10 image/avif
+Xmp.dc.creator XmpSeq 1 type="Seq" me
+Xmp.dc.description LangAlt 1 lang="x-default" bla bla bla
+Xmp.xmp.CreatorTool XmpText 4 GIMP
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->24 brand: avif
+Exiv2::BmffImage::boxHandler: meta 24->356
+ Exiv2::BmffImage::boxHandler: hdlr 36->33
+ Exiv2::BmffImage::boxHandler: pitm 69->14
+ Exiv2::BmffImage::boxHandler: iloc 83->70
+ 91 | 18 | ID | 1 | 388, 4730
+ 109 | 18 | ID | 2 | 5118, 412
+ 127 | 18 | ID | 3 | 5530, 4254
+ Exiv2::BmffImage::boxHandler: iinf 153->98
+ Exiv2::BmffImage::boxHandler: infe 167->21 ID = 1 av01
+ Exiv2::BmffImage::boxHandler: infe 188->21 ID = 2 Exif *** Exif ***
+ Exiv2::BmffImage::boxHandler: infe 209->42 ID = 3 mime *** XMP ***
+ Exiv2::BmffImage::boxHandler: iprp 251->89
+ Exiv2::BmffImage::boxHandler: ipco 259->59
+ Exiv2::BmffImage::boxHandler: colr 267->19
+ Exiv2::BmffImage::boxHandler: av1C 286->12
+ Exiv2::BmffImage::boxHandler: ispe 298->20 pixelWidth_, pixelHeight_ = 120, 120
+ Exiv2::BmffImage::boxHandler: ipma 318->22
+ Exiv2::BmffImage::boxHandler: iref 340->40
+Exiv2::BMFF Exif: ID = 2 from,length = 5118,412
+Exiv2::BMFF XMP: ID = 3 from,length = 5530,4254
+Exiv2::BmffImage::boxHandler: mdat 380->9404
+""","""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ type="Seq" me
+
+
+
+
+ bla bla bla
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+""",""]
+
diff --git a/tests/bugfixes/github/test_pr1475_HEIC.py b/tests/bugfixes/github/test_pr1475_HEIC.py
new file mode 100644
index 00000000..30afa993
--- /dev/null
+++ b/tests/bugfixes/github/test_pr1475_HEIC.py
@@ -0,0 +1,490 @@
+# -*- coding: utf-8 -*-
+
+import system_tests
+# test needs system_tests.vv.enable_bmff=1
+vv=system_tests.verbose_version()
+enable_bmff = 'enable_bmff'
+bSkip = not (enable_bmff in vv and vv[enable_bmff] == '1')
+
+class pr_1475_2021_heic(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/2021-02-13-1929.heic"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -g Image.Make -g Date -g Xm -g Expo -g Flash $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.Make Ascii 6 Apple
+Exif.Image.DateTime Ascii 20 2021:02:13 11:03:31
+Exif.Photo.ExposureTime Rational 1 1/30 s
+Exif.Photo.ExposureProgram Short 1 Auto
+Exif.Photo.DateTimeOriginal Ascii 20 2021:02:13 11:03:31
+Exif.Photo.DateTimeDigitized Ascii 20 2021:02:13 11:03:31
+Exif.Photo.ExposureBiasValue SRational 1 0 EV
+Exif.Photo.Flash Short 1 No, compulsory
+Exif.Photo.FlashpixVersion Undefined 4 1.00
+Exif.Photo.ExposureMode Short 1 Auto
+Exif.GPSInfo.GPSDateStamp Ascii 11 2021:02:13
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->36 brand: heic
+Exiv2::BmffImage::boxHandler: meta 36->3380
+ Exiv2::BmffImage::boxHandler: hdlr 48->34
+ Exiv2::BmffImage::boxHandler: dinf 82->36
+ Exiv2::BmffImage::boxHandler: pitm 118->14
+ Exiv2::BmffImage::boxHandler: iinf 132->1085
+ Exiv2::BmffImage::boxHandler: infe 146->21 ID = 1 hvc1
+ Exiv2::BmffImage::boxHandler: infe 167->21 ID = 2 hvc1
+ Exiv2::BmffImage::boxHandler: infe 188->21 ID = 3 hvc1
+ Exiv2::BmffImage::boxHandler: infe 209->21 ID = 4 hvc1
+ Exiv2::BmffImage::boxHandler: infe 230->21 ID = 5 hvc1
+ Exiv2::BmffImage::boxHandler: infe 251->21 ID = 6 hvc1
+ Exiv2::BmffImage::boxHandler: infe 272->21 ID = 7 hvc1
+ Exiv2::BmffImage::boxHandler: infe 293->21 ID = 8 hvc1
+ Exiv2::BmffImage::boxHandler: infe 314->21 ID = 9 hvc1
+ Exiv2::BmffImage::boxHandler: infe 335->21 ID = 10 hvc1
+ Exiv2::BmffImage::boxHandler: infe 356->21 ID = 11 hvc1
+ Exiv2::BmffImage::boxHandler: infe 377->21 ID = 12 hvc1
+ Exiv2::BmffImage::boxHandler: infe 398->21 ID = 13 hvc1
+ Exiv2::BmffImage::boxHandler: infe 419->21 ID = 14 hvc1
+ Exiv2::BmffImage::boxHandler: infe 440->21 ID = 15 hvc1
+ Exiv2::BmffImage::boxHandler: infe 461->21 ID = 16 hvc1
+ Exiv2::BmffImage::boxHandler: infe 482->21 ID = 17 hvc1
+ Exiv2::BmffImage::boxHandler: infe 503->21 ID = 18 hvc1
+ Exiv2::BmffImage::boxHandler: infe 524->21 ID = 19 hvc1
+ Exiv2::BmffImage::boxHandler: infe 545->21 ID = 20 hvc1
+ Exiv2::BmffImage::boxHandler: infe 566->21 ID = 21 hvc1
+ Exiv2::BmffImage::boxHandler: infe 587->21 ID = 22 hvc1
+ Exiv2::BmffImage::boxHandler: infe 608->21 ID = 23 hvc1
+ Exiv2::BmffImage::boxHandler: infe 629->21 ID = 24 hvc1
+ Exiv2::BmffImage::boxHandler: infe 650->21 ID = 25 hvc1
+ Exiv2::BmffImage::boxHandler: infe 671->21 ID = 26 hvc1
+ Exiv2::BmffImage::boxHandler: infe 692->21 ID = 27 hvc1
+ Exiv2::BmffImage::boxHandler: infe 713->21 ID = 28 hvc1
+ Exiv2::BmffImage::boxHandler: infe 734->21 ID = 29 hvc1
+ Exiv2::BmffImage::boxHandler: infe 755->21 ID = 30 hvc1
+ Exiv2::BmffImage::boxHandler: infe 776->21 ID = 31 hvc1
+ Exiv2::BmffImage::boxHandler: infe 797->21 ID = 32 hvc1
+ Exiv2::BmffImage::boxHandler: infe 818->21 ID = 33 hvc1
+ Exiv2::BmffImage::boxHandler: infe 839->21 ID = 34 hvc1
+ Exiv2::BmffImage::boxHandler: infe 860->21 ID = 35 hvc1
+ Exiv2::BmffImage::boxHandler: infe 881->21 ID = 36 hvc1
+ Exiv2::BmffImage::boxHandler: infe 902->21 ID = 37 hvc1
+ Exiv2::BmffImage::boxHandler: infe 923->21 ID = 38 hvc1
+ Exiv2::BmffImage::boxHandler: infe 944->21 ID = 39 hvc1
+ Exiv2::BmffImage::boxHandler: infe 965->21 ID = 40 hvc1
+ Exiv2::BmffImage::boxHandler: infe 986->21 ID = 41 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1007->21 ID = 42 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1028->21 ID = 43 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1049->21 ID = 44 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1070->21 ID = 45 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1091->21 ID = 46 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1112->21 ID = 47 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1133->21 ID = 48 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1154->21 ID = 49 grid
+ Exiv2::BmffImage::boxHandler: infe 1175->21 ID = 50 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1196->21 ID = 51 Exif *** Exif ***
+ Exiv2::BmffImage::boxHandler: iref 1217->148
+ Exiv2::BmffImage::boxHandler: iprp 1365->1203
+ Exiv2::BmffImage::boxHandler: ipco 1373->876
+ Exiv2::BmffImage::boxHandler: colr 1381->560
+ Exiv2::BmffImage::boxHandler: hvcC 1941->112
+ Exiv2::BmffImage::boxHandler: ispe 2053->20 pixelWidth_, pixelHeight_ = 512, 512
+ Exiv2::BmffImage::boxHandler: ispe 2073->20 pixelWidth_, pixelHeight_ = 4032, 3024
+ Exiv2::BmffImage::boxHandler: irot 2093->9
+ Exiv2::BmffImage::boxHandler: pixi 2102->16
+ Exiv2::BmffImage::boxHandler: hvcC 2118->111
+ Exiv2::BmffImage::boxHandler: ispe 2229->20 pixelWidth_, pixelHeight_ = 320, 240
+ Exiv2::BmffImage::boxHandler: ipma 2249->319
+ Exiv2::BmffImage::boxHandler: idat 2568->16
+ Exiv2::BmffImage::boxHandler: iloc 2584->832
+ 2592 | 16 | ID | 1 | 23265, 15453
+ 2608 | 16 | ID | 2 | 38718, 21882
+ 2624 | 16 | ID | 3 | 60600, 20196
+ 2640 | 16 | ID | 4 | 80796, 22234
+ 2656 | 16 | ID | 5 | 103030, 41489
+ 2672 | 16 | ID | 6 | 144519, 40845
+ 2688 | 16 | ID | 7 | 185364, 34948
+ 2704 | 16 | ID | 8 | 220312, 17650
+ 2720 | 16 | ID | 9 | 237962, 15024
+ 2736 | 16 | ID | 10 | 252986, 44647
+ 2752 | 16 | ID | 11 | 297633, 38092
+ 2768 | 16 | ID | 12 | 335725, 43666
+ 2784 | 16 | ID | 13 | 379391, 48523
+ 2800 | 16 | ID | 14 | 427914, 46992
+ 2816 | 16 | ID | 15 | 474906, 36063
+ 2832 | 16 | ID | 16 | 510969, 20737
+ 2848 | 16 | ID | 17 | 531706, 25756
+ 2864 | 16 | ID | 18 | 557462, 58455
+ 2880 | 16 | ID | 19 | 615917, 44896
+ 2896 | 16 | ID | 20 | 660813, 39730
+ 2912 | 16 | ID | 21 | 700543, 38596
+ 2928 | 16 | ID | 22 | 739139, 31795
+ 2944 | 16 | ID | 23 | 770934, 33214
+ 2960 | 16 | ID | 24 | 804148, 18858
+ 2976 | 16 | ID | 25 | 823006, 35122
+ 2992 | 16 | ID | 26 | 858128, 41015
+ 3008 | 16 | ID | 27 | 899143, 40362
+ 3024 | 16 | ID | 28 | 939505, 38288
+ 3040 | 16 | ID | 29 | 977793, 34497
+ 3056 | 16 | ID | 30 | 1012290, 31806
+ 3072 | 16 | ID | 31 | 1044096, 25360
+ 3088 | 16 | ID | 32 | 1069456, 19672
+ 3104 | 16 | ID | 33 | 1089128, 25400
+ 3120 | 16 | ID | 34 | 1114528, 34515
+ 3136 | 16 | ID | 35 | 1149043, 20863
+ 3152 | 16 | ID | 36 | 1169906, 25975
+ 3168 | 16 | ID | 37 | 1195881, 33532
+ 3184 | 16 | ID | 38 | 1229413, 31296
+ 3200 | 16 | ID | 39 | 1260709, 29869
+ 3216 | 16 | ID | 40 | 1290578, 16479
+ 3232 | 16 | ID | 41 | 1307057, 17323
+ 3248 | 16 | ID | 42 | 1324380, 17331
+ 3264 | 16 | ID | 43 | 1341711, 13357
+ 3280 | 16 | ID | 44 | 1355068, 22206
+ 3296 | 16 | ID | 45 | 1377274, 31859
+ 3312 | 16 | ID | 46 | 1409133, 26694
+ 3328 | 16 | ID | 47 | 1435827, 23620
+ 3344 | 16 | ID | 48 | 1459447, 15007
+ 3360 | 16 | ID | 49 | 0, 8
+ 3376 | 16 | ID | 50 | 3432, 17469
+ 3392 | 16 | ID | 51 | 20901, 2364
+Exiv2::BMFF Exif: ID = 51 from,length = 20901,2364
+Exiv2::BmffImage::boxHandler: mdat 3416->1 (1474454)
+""",""]
+
+class pr_1475_IMG_3578_heic(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/IMG_3578.heic"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -g Image.Make -g Date -g Xm -g Expo -g Flash $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.Make Ascii 6 Apple
+Exif.Image.DateTime Ascii 20 2020:04:17 10:03:40
+Exif.Photo.ExposureTime Rational 1 1/60 s
+Exif.Photo.ExposureProgram Short 1 Auto
+Exif.Photo.DateTimeOriginal Ascii 20 2020:04:17 10:03:40
+Exif.Photo.DateTimeDigitized Ascii 20 2020:04:17 10:03:40
+Exif.Photo.ExposureBiasValue SRational 1 0 EV
+Exif.Photo.Flash Short 1 No, compulsory
+Exif.Photo.FlashpixVersion Undefined 4 1.00
+Exif.Photo.ExposureMode Short 1 Auto
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->32 brand: heic
+Exiv2::BmffImage::boxHandler: meta 32->3380
+ Exiv2::BmffImage::boxHandler: hdlr 44->34
+ Exiv2::BmffImage::boxHandler: dinf 78->36
+ Exiv2::BmffImage::boxHandler: pitm 114->14
+ Exiv2::BmffImage::boxHandler: iinf 128->1085
+ Exiv2::BmffImage::boxHandler: infe 142->21 ID = 1 hvc1
+ Exiv2::BmffImage::boxHandler: infe 163->21 ID = 2 hvc1
+ Exiv2::BmffImage::boxHandler: infe 184->21 ID = 3 hvc1
+ Exiv2::BmffImage::boxHandler: infe 205->21 ID = 4 hvc1
+ Exiv2::BmffImage::boxHandler: infe 226->21 ID = 5 hvc1
+ Exiv2::BmffImage::boxHandler: infe 247->21 ID = 6 hvc1
+ Exiv2::BmffImage::boxHandler: infe 268->21 ID = 7 hvc1
+ Exiv2::BmffImage::boxHandler: infe 289->21 ID = 8 hvc1
+ Exiv2::BmffImage::boxHandler: infe 310->21 ID = 9 hvc1
+ Exiv2::BmffImage::boxHandler: infe 331->21 ID = 10 hvc1
+ Exiv2::BmffImage::boxHandler: infe 352->21 ID = 11 hvc1
+ Exiv2::BmffImage::boxHandler: infe 373->21 ID = 12 hvc1
+ Exiv2::BmffImage::boxHandler: infe 394->21 ID = 13 hvc1
+ Exiv2::BmffImage::boxHandler: infe 415->21 ID = 14 hvc1
+ Exiv2::BmffImage::boxHandler: infe 436->21 ID = 15 hvc1
+ Exiv2::BmffImage::boxHandler: infe 457->21 ID = 16 hvc1
+ Exiv2::BmffImage::boxHandler: infe 478->21 ID = 17 hvc1
+ Exiv2::BmffImage::boxHandler: infe 499->21 ID = 18 hvc1
+ Exiv2::BmffImage::boxHandler: infe 520->21 ID = 19 hvc1
+ Exiv2::BmffImage::boxHandler: infe 541->21 ID = 20 hvc1
+ Exiv2::BmffImage::boxHandler: infe 562->21 ID = 21 hvc1
+ Exiv2::BmffImage::boxHandler: infe 583->21 ID = 22 hvc1
+ Exiv2::BmffImage::boxHandler: infe 604->21 ID = 23 hvc1
+ Exiv2::BmffImage::boxHandler: infe 625->21 ID = 24 hvc1
+ Exiv2::BmffImage::boxHandler: infe 646->21 ID = 25 hvc1
+ Exiv2::BmffImage::boxHandler: infe 667->21 ID = 26 hvc1
+ Exiv2::BmffImage::boxHandler: infe 688->21 ID = 27 hvc1
+ Exiv2::BmffImage::boxHandler: infe 709->21 ID = 28 hvc1
+ Exiv2::BmffImage::boxHandler: infe 730->21 ID = 29 hvc1
+ Exiv2::BmffImage::boxHandler: infe 751->21 ID = 30 hvc1
+ Exiv2::BmffImage::boxHandler: infe 772->21 ID = 31 hvc1
+ Exiv2::BmffImage::boxHandler: infe 793->21 ID = 32 hvc1
+ Exiv2::BmffImage::boxHandler: infe 814->21 ID = 33 hvc1
+ Exiv2::BmffImage::boxHandler: infe 835->21 ID = 34 hvc1
+ Exiv2::BmffImage::boxHandler: infe 856->21 ID = 35 hvc1
+ Exiv2::BmffImage::boxHandler: infe 877->21 ID = 36 hvc1
+ Exiv2::BmffImage::boxHandler: infe 898->21 ID = 37 hvc1
+ Exiv2::BmffImage::boxHandler: infe 919->21 ID = 38 hvc1
+ Exiv2::BmffImage::boxHandler: infe 940->21 ID = 39 hvc1
+ Exiv2::BmffImage::boxHandler: infe 961->21 ID = 40 hvc1
+ Exiv2::BmffImage::boxHandler: infe 982->21 ID = 41 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1003->21 ID = 42 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1024->21 ID = 43 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1045->21 ID = 44 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1066->21 ID = 45 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1087->21 ID = 46 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1108->21 ID = 47 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1129->21 ID = 48 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1150->21 ID = 49 grid
+ Exiv2::BmffImage::boxHandler: infe 1171->21 ID = 50 hvc1
+ Exiv2::BmffImage::boxHandler: infe 1192->21 ID = 51 Exif *** Exif ***
+ Exiv2::BmffImage::boxHandler: iref 1213->148
+ Exiv2::BmffImage::boxHandler: iprp 1361->1203
+ Exiv2::BmffImage::boxHandler: ipco 1369->876
+ Exiv2::BmffImage::boxHandler: colr 1377->560
+ Exiv2::BmffImage::boxHandler: hvcC 1937->112
+ Exiv2::BmffImage::boxHandler: ispe 2049->20 pixelWidth_, pixelHeight_ = 512, 512
+ Exiv2::BmffImage::boxHandler: ispe 2069->20 pixelWidth_, pixelHeight_ = 4032, 3024
+ Exiv2::BmffImage::boxHandler: irot 2089->9
+ Exiv2::BmffImage::boxHandler: pixi 2098->16
+ Exiv2::BmffImage::boxHandler: hvcC 2114->111
+ Exiv2::BmffImage::boxHandler: ispe 2225->20 pixelWidth_, pixelHeight_ = 320, 240
+ Exiv2::BmffImage::boxHandler: ipma 2245->319
+ Exiv2::BmffImage::boxHandler: idat 2564->16
+ Exiv2::BmffImage::boxHandler: iloc 2580->832
+ 2588 | 16 | ID | 1 | 10931, 11943
+ 2604 | 16 | ID | 2 | 22874, 24817
+ 2620 | 16 | ID | 3 | 47691, 20110
+ 2636 | 16 | ID | 4 | 67801, 19449
+ 2652 | 16 | ID | 5 | 87250, 19714
+ 2668 | 16 | ID | 6 | 106964, 20223
+ 2684 | 16 | ID | 7 | 127187, 18124
+ 2700 | 16 | ID | 8 | 145311, 8745
+ 2716 | 16 | ID | 9 | 154056, 21761
+ 2732 | 16 | ID | 10 | 175817, 25378
+ 2748 | 16 | ID | 11 | 201195, 16664
+ 2764 | 16 | ID | 12 | 217859, 18638
+ 2780 | 16 | ID | 13 | 236497, 22750
+ 2796 | 16 | ID | 14 | 259247, 15801
+ 2812 | 16 | ID | 15 | 275048, 15063
+ 2828 | 16 | ID | 16 | 290111, 15671
+ 2844 | 16 | ID | 17 | 305782, 19360
+ 2860 | 16 | ID | 18 | 325142, 19415
+ 2876 | 16 | ID | 19 | 344557, 29895
+ 2892 | 16 | ID | 20 | 374452, 21193
+ 2908 | 16 | ID | 21 | 395645, 46228
+ 2924 | 16 | ID | 22 | 441873, 9356
+ 2940 | 16 | ID | 23 | 451229, 14175
+ 2956 | 16 | ID | 24 | 465404, 16734
+ 2972 | 16 | ID | 25 | 482138, 32304
+ 2988 | 16 | ID | 26 | 514442, 44251
+ 3004 | 16 | ID | 27 | 558693, 21635
+ 3020 | 16 | ID | 28 | 580328, 27907
+ 3036 | 16 | ID | 29 | 608235, 8462
+ 3052 | 16 | ID | 30 | 616697, 17997
+ 3068 | 16 | ID | 31 | 634694, 22077
+ 3084 | 16 | ID | 32 | 656771, 17266
+ 3100 | 16 | ID | 33 | 674037, 19623
+ 3116 | 16 | ID | 34 | 693660, 22028
+ 3132 | 16 | ID | 35 | 715688, 22078
+ 3148 | 16 | ID | 36 | 737766, 21911
+ 3164 | 16 | ID | 37 | 759677, 20937
+ 3180 | 16 | ID | 38 | 780614, 35413
+ 3196 | 16 | ID | 39 | 816027, 53869
+ 3212 | 16 | ID | 40 | 869896, 33923
+ 3228 | 16 | ID | 41 | 903819, 18130
+ 3244 | 16 | ID | 42 | 921949, 16268
+ 3260 | 16 | ID | 43 | 938217, 23620
+ 3276 | 16 | ID | 44 | 961837, 31499
+ 3292 | 16 | ID | 45 | 993336, 33513
+ 3308 | 16 | ID | 46 | 1026849, 37642
+ 3324 | 16 | ID | 47 | 1064491, 37734
+ 3340 | 16 | ID | 48 | 1102225, 20085
+ 3356 | 16 | ID | 49 | 0, 8
+ 3372 | 16 | ID | 50 | 3428, 5479
+ 3388 | 16 | ID | 51 | 8907, 2024
+Exiv2::BMFF Exif: ID = 51 from,length = 8907,2024
+Exiv2::BmffImage::boxHandler: mdat 3412->1 (1122310)
+""",""]
+
+class pr_1475_Stonehenge_heic(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/Stonehenge.heic"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -g Image.Make -g Date -g Xm -g Expo -g Flash $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["""Exif.Image.Make Ascii 18 NIKON CORPORATION
+Exif.Image.DateTime Ascii 20 2015:07:16 20:25:28
+Exif.Photo.ExposureTime Rational 1 1/400 s
+Exif.Photo.ExposureProgram Short 1 Not defined
+Exif.Photo.DateTimeOriginal Ascii 20 2015:07:16 15:38:54
+Exif.Photo.DateTimeDigitized Ascii 20 2015:07:16 15:38:54
+Exif.Photo.ExposureBiasValue SRational 1 0 EV
+Exif.Photo.Flash Short 1 No, compulsory
+Exif.Photo.FlashpixVersion Undefined 4 1.00
+Exif.Photo.ExposureMode Short 1 Auto
+Xmp.aux.SerialNumber XmpText 7 2567806
+Xmp.aux.FlashCompensation XmpText 3 0/1
+Xmp.aux.LensInfo XmpText 20 18/1 250/1 7/2 63/10
+Xmp.aux.Lens XmpText 23 18.0-250.0 mm f/3.5-6.3
+Xmp.aux.ImageNumber XmpText 4 9608
+Xmp.aux.LensID XmpText 20 -7910804157571773682
+Xmp.xmp.Rating XmpText 1 0
+Xmp.xmp.CreatorTool XmpText 9 Ver.1.00
+Xmp.xmp.CreateDate XmpText 22 2015-07-16T15:38:54.00
+Xmp.xmp.ModifyDate XmpText 28 2015-07-16T20:25:28.00+01:00
+Xmp.cm2e.Father XmpText 11 Robin Mills
+Xmp.cm2e.Family XmpBag 0
+Xmp.photoshop.DateCreated XmpText 22 2015-07-16T15:38:54.00
+Xmp.dc.description LangAlt 1 lang="x-default" Classic View
+Xmp.dc.Family XmpBag 1 Robin
+""","""Exiv2::BmffImage::boxHandler: ftyp 0->24 brand: heic
+Exiv2::BmffImage::boxHandler: meta 24->508
+ Exiv2::BmffImage::boxHandler: hdlr 36->34
+ Exiv2::BmffImage::boxHandler: dinf 70->36
+ Exiv2::BmffImage::boxHandler: pitm 106->14
+ Exiv2::BmffImage::boxHandler: iinf 120->97
+ Exiv2::BmffImage::boxHandler: infe 134->21 ID = 1 hvc1
+ Exiv2::BmffImage::boxHandler: infe 155->21 ID = 2 Exif *** Exif ***
+ Exiv2::BmffImage::boxHandler: infe 176->41 ID = 3 mime *** XMP ***
+ Exiv2::BmffImage::boxHandler: iref 217->40
+ Exiv2::BmffImage::boxHandler: iprp 257->217
+ Exiv2::BmffImage::boxHandler: ipco 265->185
+ Exiv2::BmffImage::boxHandler: colr 273->19
+ Exiv2::BmffImage::boxHandler: hvcC 292->113
+ Exiv2::BmffImage::boxHandler: ispe 405->20 pixelWidth_, pixelHeight_ = 300, 200
+ Exiv2::BmffImage::boxHandler: irot 425->9
+ Exiv2::BmffImage::boxHandler: pixi 434->16
+ Exiv2::BmffImage::boxHandler: ipma 450->24
+ Exiv2::BmffImage::boxHandler: iloc 474->58
+ 482 | 14 | ID | 1 | 4780, 13461
+ 496 | 14 | ID | 2 | 548, 1082
+ 510 | 14 | ID | 3 | 1630, 3150
+Exiv2::BMFF Exif: ID = 2 from,length = 548,1082
+Exiv2::BMFF XMP: ID = 3 from,length = 1630,3150
+Exiv2::BmffImage::boxHandler: mdat 532->1 (18241)
+""","""
+
+
+
+
+
+
+
+
+ Classic View
+
+
+
+
+ Robin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+"""]
+
+class pr_1475_heic_heic(metaclass=system_tests.CaseMeta):
+ url = "https://github.com/Exiv2/exiv2/pull/1475"
+ filename = "$data_path/heic.heic"
+ if bSkip:
+ commands=[]
+ retval=[]
+ stdin=[]
+ stderr=[]
+ stdout=[]
+ print("*** test skipped. requires enable_bmff=1***")
+ else:
+ commands = ["$exiv2 -pa $filename"
+ ,"$exiv2 -pS $filename"
+ ,"$exiv2 -pX $filename"
+ ]
+ retval = [ 0 ] * len(commands)
+ stderr = [ "" ] * len(commands)
+ stdin = [ "" ] * len(commands)
+ stdout = ["","""Exiv2::BmffImage::boxHandler: ftyp 0->28 brand: mif1
+Exiv2::BmffImage::boxHandler: meta 28->921
+ Exiv2::BmffImage::boxHandler: hdlr 40->33
+ Exiv2::BmffImage::boxHandler: pitm 73->14
+ Exiv2::BmffImage::boxHandler: iloc 87->88
+ 95 | 18 | ID | 20004 | 957,333704
+ 113 | 18 | ID | 20005 | 334669, 24523
+ 131 | 18 | ID | 20006 | 359200,330132
+ 149 | 18 | ID | 20007 | 689340, 28758
+ Exiv2::BmffImage::boxHandler: iinf 175->140
+ Exiv2::BmffImage::boxHandler: iref 315->40
+ Exiv2::BmffImage::boxHandler: iprp 355->594
+ Exiv2::BmffImage::boxHandler: ipco 363->550
+ Exiv2::BmffImage::boxHandler: hvcC 371->126
+ Exiv2::BmffImage::boxHandler: ispe 497->20 pixelWidth_, pixelHeight_ = 1280, 854
+ Exiv2::BmffImage::boxHandler: hvcC 517->125
+ Exiv2::BmffImage::boxHandler: ispe 642->20 pixelWidth_, pixelHeight_ = 320, 212
+ Exiv2::BmffImage::boxHandler: hvcC 662->126
+ Exiv2::BmffImage::boxHandler: hvcC 788->125
+ Exiv2::BmffImage::boxHandler: ipma 913->36
+Exiv2::BmffImage::boxHandler: mdat 949->333712
+Exiv2::BmffImage::boxHandler: mdat 334661->24531
+Exiv2::BmffImage::boxHandler: mdat 359192->330140
+Exiv2::BmffImage::boxHandler: mdat 689332->28766
+Exiv2::BmffImage::boxHandler: mdat 718098->16
+""",""]
+