exiftool_vendored 11.89.0 → 11.90.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

@@ -45,7 +45,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
45
45
  use Image::ExifTool::Exif;
46
46
  use Image::ExifTool::GPS;
47
47
 
48
- $VERSION = '2.43';
48
+ $VERSION = '2.44';
49
49
 
50
50
  sub ProcessMOV($$;$);
51
51
  sub ProcessKeys($$$);
@@ -2071,7 +2071,6 @@ my %eeBox = (
2071
2071
  # kgcg - 128 bytes 0's and 1's
2072
2072
  # kgsi - 4 bytes "00 00 00 80"
2073
2073
  # FIEL - 18 bytes "FIEL\0\x01\0\0\0..."
2074
-
2075
2074
  #
2076
2075
  # other 3rd-party tags
2077
2076
  # (ref http://code.google.com/p/mp4parser/source/browse/trunk/isoparser/src/main/resources/isoparser-default.properties?r=814)
@@ -2574,19 +2573,35 @@ my %eeBox = (
2574
2573
  Mask => 0x1f,
2575
2574
  PrintConv => {
2576
2575
  0 => 'No Profile',
2577
- 1 => 'Main Profile',
2578
- 2 => 'Main 10 Profile',
2579
- 3 => 'Main Still Picture Profile',
2576
+ 1 => 'Main',
2577
+ 2 => 'Main 10',
2578
+ 3 => 'Main Still Picture',
2579
+ 4 => 'Format Range Extensions',
2580
+ 5 => 'High Throughput',
2581
+ 6 => 'Multiview Main',
2582
+ 7 => 'Scalable Main',
2583
+ 8 => '3D Main',
2584
+ 9 => 'Screen Content Coding Extensions',
2585
+ 10 => 'Scalable Format Range Extensions',
2586
+ 11 => 'High Throughput Screen Content Coding Extensions',
2580
2587
  },
2581
2588
  },
2582
2589
  2 => {
2583
2590
  Name => 'GenProfileCompatibilityFlags',
2584
2591
  Format => 'int32u',
2585
2592
  PrintConv => { BITMASK => {
2586
- 31 => 'No Profile', # (bit 0 in stream)
2587
- 30 => 'Main', # (bit 1 in stream)
2588
- 29 => 'Main 10', # (bit 2 in stream)
2589
- 28 => 'Main Still Picture', # (bit 3 in stream)
2593
+ 31 => 'No Profile', # (bit 0 in stream)
2594
+ 30 => 'Main', # (bit 1 in stream)
2595
+ 29 => 'Main 10', # (bit 2 in stream)
2596
+ 28 => 'Main Still Picture', # (bit 3 in stream)
2597
+ 27 => 'Format Range Extensions',# (...)
2598
+ 26 => 'High Throughput',
2599
+ 25 => 'Multiview Main',
2600
+ 24 => 'Scalable Main',
2601
+ 23 => '3D Main',
2602
+ 22 => 'Screen Content Coding Extensions',
2603
+ 21 => 'Scalable Format Range Extensions',
2604
+ 20 => 'High Throughput Screen Content Coding Extensions',
2590
2605
  }},
2591
2606
  },
2592
2607
  6 => {
@@ -2945,7 +2960,9 @@ my %eeBox = (
2945
2960
  Name => 'GenreID',
2946
2961
  Format => 'int32u',
2947
2962
  SeparateTable => 1,
2948
- PrintConv => { #21/PH (based on https://affiliate.itunes.apple.com/resources/documentation/genre-mapping/)
2963
+ # the following lookup is based on http://itunes.apple.com/WebObjects/MZStoreServices.woa/ws/genres
2964
+ # (see scripts/parse_genre to parse genre JSON file from above)
2965
+ PrintConv => { #21/PH
2949
2966
  2 => 'Music|Blues',
2950
2967
  3 => 'Music|Comedy',
2951
2968
  4 => "Music|Children's Music",
@@ -2991,6 +3008,17 @@ my %eeBox = (
2991
3008
  53 => 'Music|Instrumental',
2992
3009
  74 => 'Audiobooks|News',
2993
3010
  75 => 'Audiobooks|Programs & Performances',
3011
+ 500 => 'Fitness Music',
3012
+ 501 => 'Fitness Music|Pop',
3013
+ 502 => 'Fitness Music|Dance',
3014
+ 503 => 'Fitness Music|Hip-Hop',
3015
+ 504 => 'Fitness Music|Rock',
3016
+ 505 => 'Fitness Music|Alt/Indie',
3017
+ 506 => 'Fitness Music|Latino',
3018
+ 507 => 'Fitness Music|Country',
3019
+ 508 => 'Fitness Music|World',
3020
+ 509 => 'Fitness Music|New Age',
3021
+ 510 => 'Fitness Music|Classical',
2994
3022
  1001 => 'Music|Alternative|College Rock',
2995
3023
  1002 => 'Music|Alternative|Goth Rock',
2996
3024
  1003 => 'Music|Alternative|Grunge',
@@ -3162,8 +3190,8 @@ my %eeBox = (
3162
3190
  1174 => 'Music|Vocal|Traditional Pop',
3163
3191
  1175 => 'Music|Jazz|Vocal Jazz',
3164
3192
  1176 => 'Music|Vocal|Vocal Pop',
3165
- 1177 => 'Music|World|Afro-Beat',
3166
- 1178 => 'Music|World|Afro-Pop',
3193
+ 1177 => 'Music|African|Afro-Beat',
3194
+ 1178 => 'Music|African|Afro-Pop',
3167
3195
  1179 => 'Music|World|Cajun',
3168
3196
  1180 => 'Music|World|Celtic',
3169
3197
  1181 => 'Music|World|Celtic Folk',
@@ -3188,7 +3216,7 @@ my %eeBox = (
3188
3216
  1200 => 'Music|World|Australia',
3189
3217
  1201 => 'Music|World|Japan',
3190
3218
  1202 => 'Music|World|France',
3191
- 1203 => 'Music|World|Africa',
3219
+ 1203 => 'Music|African',
3192
3220
  1204 => 'Music|World|Asia',
3193
3221
  1205 => 'Music|World|Europe',
3194
3222
  1206 => 'Music|World|South Africa',
@@ -3247,18 +3275,18 @@ my %eeBox = (
3247
3275
  1267 => 'Music|Indian|Devotional & Spiritual',
3248
3276
  1268 => 'Music|Indian|Sufi',
3249
3277
  1269 => 'Music|Indian|Indian Classical',
3250
- 1270 => 'Music|World|Russian Chanson',
3278
+ 1270 => 'Music|Russian|Russian Chanson',
3251
3279
  1271 => 'Music|World|Dini',
3252
- 1272 => 'Music|World|Halk',
3253
- 1273 => 'Music|World|Sanat',
3280
+ 1272 => 'Music|Turkish|Halk',
3281
+ 1273 => 'Music|Turkish|Sanat',
3254
3282
  1274 => 'Music|World|Dangdut',
3255
3283
  1275 => 'Music|World|Indonesian Religious',
3256
3284
  1276 => 'Music|World|Calypso',
3257
3285
  1277 => 'Music|World|Soca',
3258
3286
  1278 => 'Music|Indian|Ghazals',
3259
3287
  1279 => 'Music|Indian|Indian Folk',
3260
- 1280 => 'Music|World|Arabesque',
3261
- 1281 => 'Music|World|Afrikaans',
3288
+ 1280 => 'Music|Turkish|Arabesque',
3289
+ 1281 => 'Music|African|Afrikaans',
3262
3290
  1282 => 'Music|World|Farsi',
3263
3291
  1283 => 'Music|World|Israeli',
3264
3292
  1284 => 'Music|Arabic|Khaleeji',
@@ -3275,8 +3303,8 @@ my %eeBox = (
3275
3303
  1296 => 'Music|World|Tango',
3276
3304
  1297 => 'Music|World|Fado',
3277
3305
  1298 => 'Music|World|Iberia',
3278
- 1299 => 'Music|World|Russian',
3279
- 1300 => 'Music|World|Turkish',
3306
+ 1299 => 'Music|Russian',
3307
+ 1300 => 'Music|Turkish',
3280
3308
  1301 => 'Podcasts|Arts',
3281
3309
  1302 => 'Podcasts|Society & Culture|Personal Journals',
3282
3310
  1303 => 'Podcasts|Comedy',
@@ -3345,6 +3373,90 @@ my %eeBox = (
3345
3373
  1479 => 'Podcasts|Science & Medicine|Social Sciences',
3346
3374
  1480 => 'Podcasts|Technology|Software How-To',
3347
3375
  1481 => 'Podcasts|Health|Alternative Health',
3376
+ 1482 => 'Podcasts|Arts|Books',
3377
+ 1483 => 'Podcasts|Fiction',
3378
+ 1484 => 'Podcasts|Fiction|Drama',
3379
+ 1485 => 'Podcasts|Fiction|Science Fiction',
3380
+ 1486 => 'Podcasts|Fiction|Comedy Fiction',
3381
+ 1487 => 'Podcasts|History',
3382
+ 1488 => 'Podcasts|True Crime',
3383
+ 1489 => 'Podcasts|News',
3384
+ 1490 => 'Podcasts|News|Business News',
3385
+ 1491 => 'Podcasts|Business|Management',
3386
+ 1492 => 'Podcasts|Business|Marketing',
3387
+ 1493 => 'Podcasts|Business|Entrepreneurship',
3388
+ 1494 => 'Podcasts|Business|Non-Profit',
3389
+ 1495 => 'Podcasts|Comedy|Improv',
3390
+ 1496 => 'Podcasts|Comedy|Comedy Interviews',
3391
+ 1497 => 'Podcasts|Comedy|Stand-Up',
3392
+ 1498 => 'Podcasts|Education|Language Learning',
3393
+ 1499 => 'Podcasts|Education|How To',
3394
+ 1500 => 'Podcasts|Education|Self-Improvement',
3395
+ 1501 => 'Podcasts|Education|Courses',
3396
+ 1502 => 'Podcasts|Leisure',
3397
+ 1503 => 'Podcasts|Leisure|Automotive',
3398
+ 1504 => 'Podcasts|Leisure|Aviation',
3399
+ 1505 => 'Podcasts|Leisure|Hobbies',
3400
+ 1506 => 'Podcasts|Leisure|Crafts',
3401
+ 1507 => 'Podcasts|Leisure|Games',
3402
+ 1508 => 'Podcasts|Leisure|Home & Garden',
3403
+ 1509 => 'Podcasts|Leisure|Video Games',
3404
+ 1510 => 'Podcasts|Leisure|Animation & Manga',
3405
+ 1511 => 'Podcasts|Government',
3406
+ 1512 => 'Podcasts|Health & Fitness',
3407
+ 1513 => 'Podcasts|Health & Fitness|Alternative Health',
3408
+ 1514 => 'Podcasts|Health & Fitness|Fitness',
3409
+ 1515 => 'Podcasts|Health & Fitness|Nutrition',
3410
+ 1516 => 'Podcasts|Health & Fitness|Sexuality',
3411
+ 1517 => 'Podcasts|Health & Fitness|Mental Health',
3412
+ 1518 => 'Podcasts|Health & Fitness|Medicine',
3413
+ 1519 => 'Podcasts|Kids & Family|Education for Kids',
3414
+ 1520 => 'Podcasts|Kids & Family|Stories for Kids',
3415
+ 1521 => 'Podcasts|Kids & Family|Parenting',
3416
+ 1522 => 'Podcasts|Kids & Family|Pets & Animals',
3417
+ 1523 => 'Podcasts|Music|Music Commentary',
3418
+ 1524 => 'Podcasts|Music|Music History',
3419
+ 1525 => 'Podcasts|Music|Music Interviews',
3420
+ 1526 => 'Podcasts|News|Daily News',
3421
+ 1527 => 'Podcasts|News|Politics',
3422
+ 1528 => 'Podcasts|News|Tech News',
3423
+ 1529 => 'Podcasts|News|Sports News',
3424
+ 1530 => 'Podcasts|News|News Commentary',
3425
+ 1531 => 'Podcasts|News|Entertainment News',
3426
+ 1532 => 'Podcasts|Religion & Spirituality|Religion',
3427
+ 1533 => 'Podcasts|Science',
3428
+ 1534 => 'Podcasts|Science|Natural Sciences',
3429
+ 1535 => 'Podcasts|Science|Social Sciences',
3430
+ 1536 => 'Podcasts|Science|Mathematics',
3431
+ 1537 => 'Podcasts|Science|Nature',
3432
+ 1538 => 'Podcasts|Science|Astronomy',
3433
+ 1539 => 'Podcasts|Science|Chemistry',
3434
+ 1540 => 'Podcasts|Science|Earth Sciences',
3435
+ 1541 => 'Podcasts|Science|Life Sciences',
3436
+ 1542 => 'Podcasts|Science|Physics',
3437
+ 1543 => 'Podcasts|Society & Culture|Documentary',
3438
+ 1544 => 'Podcasts|Society & Culture|Relationships',
3439
+ 1545 => 'Podcasts|Sports',
3440
+ 1546 => 'Podcasts|Sports|Soccer',
3441
+ 1547 => 'Podcasts|Sports|Football',
3442
+ 1548 => 'Podcasts|Sports|Basketball',
3443
+ 1549 => 'Podcasts|Sports|Baseball',
3444
+ 1550 => 'Podcasts|Sports|Hockey',
3445
+ 1551 => 'Podcasts|Sports|Running',
3446
+ 1552 => 'Podcasts|Sports|Rugby',
3447
+ 1553 => 'Podcasts|Sports|Golf',
3448
+ 1554 => 'Podcasts|Sports|Cricket',
3449
+ 1555 => 'Podcasts|Sports|Wrestling',
3450
+ 1556 => 'Podcasts|Sports|Tennis',
3451
+ 1557 => 'Podcasts|Sports|Volleyball',
3452
+ 1558 => 'Podcasts|Sports|Swimming',
3453
+ 1559 => 'Podcasts|Sports|Wilderness',
3454
+ 1560 => 'Podcasts|Sports|Fantasy Sports',
3455
+ 1561 => 'Podcasts|TV & Film|TV Reviews',
3456
+ 1562 => 'Podcasts|TV & Film|After Shows',
3457
+ 1563 => 'Podcasts|TV & Film|Film Reviews',
3458
+ 1564 => 'Podcasts|TV & Film|Film History',
3459
+ 1565 => 'Podcasts|TV & Film|Film Interviews',
3348
3460
  1602 => 'Music Videos|Blues',
3349
3461
  1603 => 'Music Videos|Comedy',
3350
3462
  1604 => "Music Videos|Children's Music",
@@ -3437,10 +3549,10 @@ my %eeBox = (
3437
3549
  1695 => 'Music Videos|Indian|Devotional & Spiritual',
3438
3550
  1696 => 'Music Videos|Indian|Sufi',
3439
3551
  1697 => 'Music Videos|Indian|Indian Classical',
3440
- 1698 => 'Music Videos|World|Russian Chanson',
3552
+ 1698 => 'Music Videos|Russian|Russian Chanson',
3441
3553
  1699 => 'Music Videos|World|Dini',
3442
- 1700 => 'Music Videos|World|Halk',
3443
- 1701 => 'Music Videos|World|Sanat',
3554
+ 1700 => 'Music Videos|Turkish|Halk',
3555
+ 1701 => 'Music Videos|Turkish|Sanat',
3444
3556
  1702 => 'Music Videos|World|Dangdut',
3445
3557
  1703 => 'Music Videos|World|Indonesian Religious',
3446
3558
  1704 => 'Music Videos|Indian|Indian Pop',
@@ -3448,8 +3560,8 @@ my %eeBox = (
3448
3560
  1706 => 'Music Videos|World|Soca',
3449
3561
  1707 => 'Music Videos|Indian|Ghazals',
3450
3562
  1708 => 'Music Videos|Indian|Indian Folk',
3451
- 1709 => 'Music Videos|World|Arabesque',
3452
- 1710 => 'Music Videos|World|Afrikaans',
3563
+ 1709 => 'Music Videos|Turkish|Arabesque',
3564
+ 1710 => 'Music Videos|African|Afrikaans',
3453
3565
  1711 => 'Music Videos|World|Farsi',
3454
3566
  1712 => 'Music Videos|World|Israeli',
3455
3567
  1713 => 'Music Videos|Arabic',
@@ -3467,8 +3579,8 @@ my %eeBox = (
3467
3579
  1726 => 'Music Videos|World|Tango',
3468
3580
  1727 => 'Music Videos|World|Fado',
3469
3581
  1728 => 'Music Videos|World|Iberia',
3470
- 1729 => 'Music Videos|World|Russian',
3471
- 1730 => 'Music Videos|World|Turkish',
3582
+ 1729 => 'Music Videos|Russian',
3583
+ 1730 => 'Music Videos|Turkish',
3472
3584
  1731 => 'Music Videos|Alternative|College Rock',
3473
3585
  1732 => 'Music Videos|Alternative|Goth Rock',
3474
3586
  1733 => 'Music Videos|Alternative|Grunge',
@@ -3641,9 +3753,9 @@ my %eeBox = (
3641
3753
  1901 => 'Music Videos|Vocal|Traditional Pop',
3642
3754
  1902 => 'Music Videos|Jazz|Vocal Jazz',
3643
3755
  1903 => 'Music Videos|Vocal|Vocal Pop',
3644
- 1904 => 'Music Videos|World|Africa',
3645
- 1905 => 'Music Videos|World|Afro-Beat',
3646
- 1906 => 'Music Videos|World|Afro-Pop',
3756
+ 1904 => 'Music Videos|African',
3757
+ 1905 => 'Music Videos|African|Afro-Beat',
3758
+ 1906 => 'Music Videos|African|Afro-Pop',
3647
3759
  1907 => 'Music Videos|World|Asia',
3648
3760
  1908 => 'Music Videos|World|Australia',
3649
3761
  1909 => 'Music Videos|World|Cajun',
@@ -3711,12 +3823,69 @@ my %eeBox = (
3711
3823
  1973 => 'Music Videos|Indian|Regional Indian|Bengali',
3712
3824
  1974 => 'Music Videos|Indian|Indian Classical|Carnatic Classical',
3713
3825
  1975 => 'Music Videos|Indian|Indian Classical|Hindustani Classical',
3826
+ 1976 => 'Music Videos|African|Afro House',
3827
+ 1977 => 'Music Videos|African|Afro Soul',
3828
+ 1978 => 'Music Videos|African|Afrobeats',
3829
+ 1979 => 'Music Videos|African|Benga',
3830
+ 1980 => 'Music Videos|African|Bongo-Flava',
3831
+ 1981 => 'Music Videos|African|Coupe-Decale',
3832
+ 1982 => 'Music Videos|African|Gqom',
3833
+ 1983 => 'Music Videos|African|Highlife',
3834
+ 1984 => 'Music Videos|African|Kuduro',
3835
+ 1985 => 'Music Videos|African|Kizomba',
3836
+ 1986 => 'Music Videos|African|Kwaito',
3837
+ 1987 => 'Music Videos|African|Mbalax',
3838
+ 1988 => 'Music Videos|African|Ndombolo',
3839
+ 1989 => 'Music Videos|African|Shangaan Electro',
3840
+ 1990 => 'Music Videos|African|Soukous',
3841
+ 1991 => 'Music Videos|African|Taarab',
3842
+ 1992 => 'Music Videos|African|Zouglou',
3843
+ 1993 => 'Music Videos|Turkish|Ozgun',
3844
+ 1994 => 'Music Videos|Turkish|Fantezi',
3845
+ 1995 => 'Music Videos|Turkish|Religious',
3846
+ 1996 => 'Music Videos|Pop|Turkish Pop',
3847
+ 1997 => 'Music Videos|Rock|Turkish Rock',
3848
+ 1998 => 'Music Videos|Alternative|Turkish Alternative',
3849
+ 1999 => 'Music Videos|Hip-Hop/Rap|Turkish Hip-Hop/Rap',
3850
+ 2000 => 'Music Videos|African|Maskandi',
3851
+ 2001 => 'Music Videos|Russian|Russian Romance',
3852
+ 2002 => 'Music Videos|Russian|Russian Bard',
3853
+ 2003 => 'Music Videos|Russian|Russian Pop',
3854
+ 2004 => 'Music Videos|Russian|Russian Rock',
3855
+ 2005 => 'Music Videos|Russian|Russian Hip-Hop',
3856
+ 2006 => 'Music Videos|Arabic|Levant',
3857
+ 2007 => 'Music Videos|Arabic|Levant|Dabke',
3858
+ 2008 => 'Music Videos|Arabic|Maghreb Rai',
3859
+ 2009 => 'Music Videos|Arabic|Khaleeji|Khaleeji Jalsat',
3860
+ 2010 => 'Music Videos|Arabic|Khaleeji|Khaleeji Shailat',
3861
+ 2011 => 'Music Videos|Tarab',
3862
+ 2012 => 'Music Videos|Tarab|Iraqi Tarab',
3863
+ 2013 => 'Music Videos|Tarab|Egyptian Tarab',
3864
+ 2014 => 'Music Videos|Tarab|Khaleeji Tarab',
3865
+ 2015 => 'Music Videos|Pop|Levant Pop',
3866
+ 2016 => 'Music Videos|Pop|Iraqi Pop',
3867
+ 2017 => 'Music Videos|Pop|Egyptian Pop',
3868
+ 2018 => 'Music Videos|Pop|Maghreb Pop',
3869
+ 2019 => 'Music Videos|Pop|Khaleeji Pop',
3870
+ 2020 => 'Music Videos|Hip-Hop/Rap|Levant Hip-Hop',
3871
+ 2021 => 'Music Videos|Hip-Hop/Rap|Egyptian Hip-Hop',
3872
+ 2022 => 'Music Videos|Hip-Hop/Rap|Maghreb Hip-Hop',
3873
+ 2023 => 'Music Videos|Hip-Hop/Rap|Khaleeji Hip-Hop',
3874
+ 2024 => 'Music Videos|Alternative|Indie Levant',
3875
+ 2025 => 'Music Videos|Alternative|Indie Egyptian',
3876
+ 2026 => 'Music Videos|Alternative|Indie Maghreb',
3877
+ 2027 => 'Music Videos|Electronic|Levant Electronic',
3878
+ 2028 => "Music Videos|Electronic|Electro-Cha'abi",
3879
+ 2029 => 'Music Videos|Electronic|Maghreb Electronic',
3880
+ 2030 => 'Music Videos|Folk|Iraqi Folk',
3881
+ 2031 => 'Music Videos|Folk|Khaleeji Folk',
3882
+ 2032 => 'Music Videos|Dance|Maghreb Dance',
3714
3883
  4000 => 'TV Shows|Comedy',
3715
3884
  4001 => 'TV Shows|Drama',
3716
3885
  4002 => 'TV Shows|Animation',
3717
3886
  4003 => 'TV Shows|Action & Adventure',
3718
- 4004 => 'TV Shows|Classic',
3719
- 4005 => 'TV Shows|Kids',
3887
+ 4004 => 'TV Shows|Classics',
3888
+ 4005 => 'TV Shows|Kids & Family',
3720
3889
  4006 => 'TV Shows|Nonfiction',
3721
3890
  4007 => 'TV Shows|Reality TV',
3722
3891
  4008 => 'TV Shows|Sci-Fi & Fantasy',
@@ -3782,9 +3951,11 @@ my %eeBox = (
3782
3951
  6023 => 'App Store|Food & Drink',
3783
3952
  6024 => 'App Store|Shopping',
3784
3953
  6025 => 'App Store|Stickers',
3954
+ 6026 => 'App Store|Developer Tools',
3955
+ 6027 => 'App Store|Graphics & Design',
3785
3956
  7001 => 'App Store|Games|Action',
3786
3957
  7002 => 'App Store|Games|Adventure',
3787
- 7003 => 'App Store|Games|Arcade',
3958
+ 7003 => 'App Store|Games|Casual',
3788
3959
  7004 => 'App Store|Games|Board',
3789
3960
  7005 => 'App Store|Games|Card',
3790
3961
  7006 => 'App Store|Games|Casino',
@@ -4083,11 +4254,11 @@ my %eeBox = (
4083
4254
  8301 => 'Tones|Ringtones|Vocal|Trot',
4084
4255
  8302 => 'Tones|Ringtones|Jazz|Vocal Jazz',
4085
4256
  8303 => 'Tones|Ringtones|Vocal|Vocal Pop',
4086
- 8304 => 'Tones|Ringtones|World|Africa',
4087
- 8305 => 'Tones|Ringtones|World|Afrikaans',
4088
- 8306 => 'Tones|Ringtones|World|Afro-Beat',
4089
- 8307 => 'Tones|Ringtones|World|Afro-Pop',
4090
- 8308 => 'Tones|Ringtones|World|Arabesque',
4257
+ 8304 => 'Tones|Ringtones|African',
4258
+ 8305 => 'Tones|Ringtones|African|Afrikaans',
4259
+ 8306 => 'Tones|Ringtones|African|Afro-Beat',
4260
+ 8307 => 'Tones|Ringtones|African|Afro-Pop',
4261
+ 8308 => 'Tones|Ringtones|Turkish|Arabesque',
4091
4262
  8309 => 'Tones|Ringtones|World|Asia',
4092
4263
  8310 => 'Tones|Ringtones|World|Australia',
4093
4264
  8311 => 'Tones|Ringtones|World|Cajun',
@@ -4103,7 +4274,7 @@ my %eeBox = (
4103
4274
  8321 => 'Tones|Ringtones|World|Farsi',
4104
4275
  8322 => 'Tones|Ringtones|World|Flamenco',
4105
4276
  8323 => 'Tones|Ringtones|World|France',
4106
- 8324 => 'Tones|Ringtones|World|Halk',
4277
+ 8324 => 'Tones|Ringtones|Turkish|Halk',
4107
4278
  8325 => 'Tones|Ringtones|World|Hawaii',
4108
4279
  8326 => 'Tones|Ringtones|World|Iberia',
4109
4280
  8327 => 'Tones|Ringtones|World|Indonesian Religious',
@@ -4112,15 +4283,15 @@ my %eeBox = (
4112
4283
  8330 => 'Tones|Ringtones|World|Klezmer',
4113
4284
  8331 => 'Tones|Ringtones|World|North America',
4114
4285
  8332 => 'Tones|Ringtones|World|Polka',
4115
- 8333 => 'Tones|Ringtones|World|Russian',
4116
- 8334 => 'Tones|Ringtones|World|Russian Chanson',
4117
- 8335 => 'Tones|Ringtones|World|Sanat',
4286
+ 8333 => 'Tones|Ringtones|Russian',
4287
+ 8334 => 'Tones|Ringtones|Russian|Russian Chanson',
4288
+ 8335 => 'Tones|Ringtones|Turkish|Sanat',
4118
4289
  8336 => 'Tones|Ringtones|World|Soca',
4119
4290
  8337 => 'Tones|Ringtones|World|South Africa',
4120
4291
  8338 => 'Tones|Ringtones|World|South America',
4121
4292
  8339 => 'Tones|Ringtones|World|Tango',
4122
4293
  8340 => 'Tones|Ringtones|World|Traditional Celtic',
4123
- 8341 => 'Tones|Ringtones|World|Turkish',
4294
+ 8341 => 'Tones|Ringtones|Turkish',
4124
4295
  8342 => 'Tones|Ringtones|World|Worldbeat',
4125
4296
  8343 => 'Tones|Ringtones|World|Zydeco',
4126
4297
  8345 => 'Tones|Ringtones|Classical|Art Song',
@@ -4171,6 +4342,63 @@ my %eeBox = (
4171
4342
  8390 => 'Tones|Ringtones|Indian|Regional Indian|Bengali',
4172
4343
  8391 => 'Tones|Ringtones|Indian|Indian Classical|Carnatic Classical',
4173
4344
  8392 => 'Tones|Ringtones|Indian|Indian Classical|Hindustani Classical',
4345
+ 8393 => 'Tones|Ringtones|African|Afro House',
4346
+ 8394 => 'Tones|Ringtones|African|Afro Soul',
4347
+ 8395 => 'Tones|Ringtones|African|Afrobeats',
4348
+ 8396 => 'Tones|Ringtones|African|Benga',
4349
+ 8397 => 'Tones|Ringtones|African|Bongo-Flava',
4350
+ 8398 => 'Tones|Ringtones|African|Coupe-Decale',
4351
+ 8399 => 'Tones|Ringtones|African|Gqom',
4352
+ 8400 => 'Tones|Ringtones|African|Highlife',
4353
+ 8401 => 'Tones|Ringtones|African|Kuduro',
4354
+ 8402 => 'Tones|Ringtones|African|Kizomba',
4355
+ 8403 => 'Tones|Ringtones|African|Kwaito',
4356
+ 8404 => 'Tones|Ringtones|African|Mbalax',
4357
+ 8405 => 'Tones|Ringtones|African|Ndombolo',
4358
+ 8406 => 'Tones|Ringtones|African|Shangaan Electro',
4359
+ 8407 => 'Tones|Ringtones|African|Soukous',
4360
+ 8408 => 'Tones|Ringtones|African|Taarab',
4361
+ 8409 => 'Tones|Ringtones|African|Zouglou',
4362
+ 8410 => 'Tones|Ringtones|Turkish|Ozgun',
4363
+ 8411 => 'Tones|Ringtones|Turkish|Fantezi',
4364
+ 8412 => 'Tones|Ringtones|Turkish|Religious',
4365
+ 8413 => 'Tones|Ringtones|Pop|Turkish Pop',
4366
+ 8414 => 'Tones|Ringtones|Rock|Turkish Rock',
4367
+ 8415 => 'Tones|Ringtones|Alternative|Turkish Alternative',
4368
+ 8416 => 'Tones|Ringtones|Hip-Hop/Rap|Turkish Hip-Hop/Rap',
4369
+ 8417 => 'Tones|Ringtones|African|Maskandi',
4370
+ 8418 => 'Tones|Ringtones|Russian|Russian Romance',
4371
+ 8419 => 'Tones|Ringtones|Russian|Russian Bard',
4372
+ 8420 => 'Tones|Ringtones|Russian|Russian Pop',
4373
+ 8421 => 'Tones|Ringtones|Russian|Russian Rock',
4374
+ 8422 => 'Tones|Ringtones|Russian|Russian Hip-Hop',
4375
+ 8423 => 'Tones|Ringtones|Arabic|Levant',
4376
+ 8424 => 'Tones|Ringtones|Arabic|Levant|Dabke',
4377
+ 8425 => 'Tones|Ringtones|Arabic|Maghreb Rai',
4378
+ 8426 => 'Tones|Ringtones|Arabic|Khaleeji|Khaleeji Jalsat',
4379
+ 8427 => 'Tones|Ringtones|Arabic|Khaleeji|Khaleeji Shailat',
4380
+ 8428 => 'Tones|Ringtones|Tarab',
4381
+ 8429 => 'Tones|Ringtones|Tarab|Iraqi Tarab',
4382
+ 8430 => 'Tones|Ringtones|Tarab|Egyptian Tarab',
4383
+ 8431 => 'Tones|Ringtones|Tarab|Khaleeji Tarab',
4384
+ 8432 => 'Tones|Ringtones|Pop|Levant Pop',
4385
+ 8433 => 'Tones|Ringtones|Pop|Iraqi Pop',
4386
+ 8434 => 'Tones|Ringtones|Pop|Egyptian Pop',
4387
+ 8435 => 'Tones|Ringtones|Pop|Maghreb Pop',
4388
+ 8436 => 'Tones|Ringtones|Pop|Khaleeji Pop',
4389
+ 8437 => 'Tones|Ringtones|Hip-Hop/Rap|Levant Hip-Hop',
4390
+ 8438 => 'Tones|Ringtones|Hip-Hop/Rap|Egyptian Hip-Hop',
4391
+ 8439 => 'Tones|Ringtones|Hip-Hop/Rap|Maghreb Hip-Hop',
4392
+ 8440 => 'Tones|Ringtones|Hip-Hop/Rap|Khaleeji Hip-Hop',
4393
+ 8441 => 'Tones|Ringtones|Alternative|Indie Levant',
4394
+ 8442 => 'Tones|Ringtones|Alternative|Indie Egyptian',
4395
+ 8443 => 'Tones|Ringtones|Alternative|Indie Maghreb',
4396
+ 8444 => 'Tones|Ringtones|Electronic|Levant Electronic',
4397
+ 8445 => "Tones|Ringtones|Electronic|Electro-Cha'abi",
4398
+ 8446 => 'Tones|Ringtones|Electronic|Maghreb Electronic',
4399
+ 8447 => 'Tones|Ringtones|Folk|Iraqi Folk',
4400
+ 8448 => 'Tones|Ringtones|Folk|Khaleeji Folk',
4401
+ 8449 => 'Tones|Ringtones|Dance|Maghreb Dance',
4174
4402
  9002 => 'Books|Nonfiction',
4175
4403
  9003 => 'Books|Romance',
4176
4404
  9004 => 'Books|Travel & Adventure',
@@ -4184,7 +4412,7 @@ my %eeBox = (
4184
4412
  9019 => 'Books|Science & Nature',
4185
4413
  9020 => 'Books|Sci-Fi & Fantasy',
4186
4414
  9024 => 'Books|Lifestyle & Home',
4187
- 9025 => 'Books|Health, Mind & Body',
4415
+ 9025 => 'Books|Self-Development',
4188
4416
  9026 => 'Books|Comics & Graphic Novels',
4189
4417
  9027 => 'Books|Computers & Internet',
4190
4418
  9028 => 'Books|Cookbooks, Food & Wine',
@@ -4198,7 +4426,7 @@ my %eeBox = (
4198
4426
  10001 => 'Books|Lifestyle & Home|Antiques & Collectibles',
4199
4427
  10002 => 'Books|Arts & Entertainment|Art & Architecture',
4200
4428
  10003 => 'Books|Religion & Spirituality|Bibles',
4201
- 10004 => 'Books|Health, Mind & Body|Spirituality',
4429
+ 10004 => 'Books|Self-Development|Spirituality',
4202
4430
  10005 => 'Books|Business & Personal Finance|Industries & Professions',
4203
4431
  10006 => 'Books|Business & Personal Finance|Marketing & Sales',
4204
4432
  10007 => 'Books|Business & Personal Finance|Small Business & Entrepreneurship',
@@ -4263,7 +4491,7 @@ my %eeBox = (
4263
4491
  10066 => 'Books|Reference|Foreign Languages',
4264
4492
  10067 => 'Books|Arts & Entertainment|Games',
4265
4493
  10068 => 'Books|Lifestyle & Home|Gardening',
4266
- 10069 => 'Books|Health, Mind & Body|Health & Fitness',
4494
+ 10069 => 'Books|Self-Development|Health & Fitness',
4267
4495
  10070 => 'Books|History|Africa',
4268
4496
  10071 => 'Books|History|Americas',
4269
4497
  10072 => 'Books|History|Ancient',
@@ -4288,7 +4516,7 @@ my %eeBox = (
4288
4516
  10091 => 'Books|Nonfiction|Philosophy',
4289
4517
  10092 => 'Books|Arts & Entertainment|Photography',
4290
4518
  10093 => 'Books|Fiction & Literature|Poetry',
4291
- 10094 => 'Books|Health, Mind & Body|Psychology',
4519
+ 10094 => 'Books|Self-Development|Psychology',
4292
4520
  10095 => 'Books|Reference|Almanacs & Yearbooks',
4293
4521
  10096 => 'Books|Reference|Atlases & Maps',
4294
4522
  10097 => 'Books|Reference|Catalogs & Directories',
@@ -4313,7 +4541,7 @@ my %eeBox = (
4313
4541
  10116 => 'Books|Science & Nature|Life Sciences',
4314
4542
  10117 => 'Books|Science & Nature|Physics',
4315
4543
  10118 => 'Books|Science & Nature|Reference',
4316
- 10119 => 'Books|Health, Mind & Body|Self-Improvement',
4544
+ 10119 => 'Books|Self-Development|Self-Improvement',
4317
4545
  10120 => 'Books|Nonfiction|Social Science',
4318
4546
  10121 => 'Books|Sports & Outdoors|Baseball',
4319
4547
  10122 => 'Books|Sports & Outdoors|Basketball',
@@ -4403,7 +4631,7 @@ my %eeBox = (
4403
4631
  11059 => 'Books|Sports & Outdoors|Motor Sports',
4404
4632
  11060 => 'Books|Sports & Outdoors|Rugby',
4405
4633
  11061 => 'Books|Sports & Outdoors|Running',
4406
- 11062 => 'Books|Health, Mind & Body|Diet & Nutrition',
4634
+ 11062 => 'Books|Self-Development|Diet & Nutrition',
4407
4635
  11063 => 'Books|Science & Nature|Agriculture',
4408
4636
  11064 => 'Books|Science & Nature|Atmosphere',
4409
4637
  11065 => 'Books|Science & Nature|Biology',
@@ -4647,6 +4875,8 @@ my %eeBox = (
4647
4875
  11339 => 'Books|Comics & Graphic Novels|Manga|Girls',
4648
4876
  11340 => 'Books|Comics & Graphic Novels|Manga|Women',
4649
4877
  11341 => 'Books|Comics & Graphic Novels|Manga|Other',
4878
+ 11342 => 'Books|Comics & Graphic Novels|Manga|Yaoi',
4879
+ 11343 => 'Books|Comics & Graphic Novels|Manga|Comic Essays',
4650
4880
  12001 => 'Mac App Store|Business',
4651
4881
  12002 => 'Mac App Store|Developer Tools',
4652
4882
  12003 => 'Mac App Store|Education',
@@ -4670,7 +4900,7 @@ my %eeBox = (
4670
4900
  12022 => 'Mac App Store|Graphics & Design',
4671
4901
  12201 => 'Mac App Store|Games|Action',
4672
4902
  12202 => 'Mac App Store|Games|Adventure',
4673
- 12203 => 'Mac App Store|Games|Arcade',
4903
+ 12203 => 'Mac App Store|Games|Casual',
4674
4904
  12204 => 'Mac App Store|Games|Board',
4675
4905
  12205 => 'Mac App Store|Games|Card',
4676
4906
  12206 => 'Mac App Store|Games|Casino',
@@ -5092,6 +5322,63 @@ my %eeBox = (
5092
5322
  100046 => 'Music|Indian|Regional Indian|Bengali',
5093
5323
  100047 => 'Music|Indian|Indian Classical|Carnatic Classical',
5094
5324
  100048 => 'Music|Indian|Indian Classical|Hindustani Classical',
5325
+ 100049 => 'Music|African|Afro House',
5326
+ 100050 => 'Music|African|Afro Soul',
5327
+ 100051 => 'Music|African|Afrobeats',
5328
+ 100052 => 'Music|African|Benga',
5329
+ 100053 => 'Music|African|Bongo-Flava',
5330
+ 100054 => 'Music|African|Coupe-Decale',
5331
+ 100055 => 'Music|African|Gqom',
5332
+ 100056 => 'Music|African|Highlife',
5333
+ 100057 => 'Music|African|Kuduro',
5334
+ 100058 => 'Music|African|Kizomba',
5335
+ 100059 => 'Music|African|Kwaito',
5336
+ 100060 => 'Music|African|Mbalax',
5337
+ 100061 => 'Music|African|Ndombolo',
5338
+ 100062 => 'Music|African|Shangaan Electro',
5339
+ 100063 => 'Music|African|Soukous',
5340
+ 100064 => 'Music|African|Taarab',
5341
+ 100065 => 'Music|African|Zouglou',
5342
+ 100066 => 'Music|Turkish|Ozgun',
5343
+ 100067 => 'Music|Turkish|Fantezi',
5344
+ 100068 => 'Music|Turkish|Religious',
5345
+ 100069 => 'Music|Pop|Turkish Pop',
5346
+ 100070 => 'Music|Rock|Turkish Rock',
5347
+ 100071 => 'Music|Alternative|Turkish Alternative',
5348
+ 100072 => 'Music|Hip-Hop/Rap|Turkish Hip-Hop/Rap',
5349
+ 100073 => 'Music|African|Maskandi',
5350
+ 100074 => 'Music|Russian|Russian Romance',
5351
+ 100075 => 'Music|Russian|Russian Bard',
5352
+ 100076 => 'Music|Russian|Russian Pop',
5353
+ 100077 => 'Music|Russian|Russian Rock',
5354
+ 100078 => 'Music|Russian|Russian Hip-Hop',
5355
+ 100079 => 'Music|Arabic|Levant',
5356
+ 100080 => 'Music|Arabic|Levant|Dabke',
5357
+ 100081 => 'Music|Arabic|Maghreb Rai',
5358
+ 100082 => 'Music|Arabic|Khaleeji|Khaleeji Jalsat',
5359
+ 100083 => 'Music|Arabic|Khaleeji|Khaleeji Shailat',
5360
+ 100084 => 'Music|Tarab',
5361
+ 100085 => 'Music|Tarab|Iraqi Tarab',
5362
+ 100086 => 'Music|Tarab|Egyptian Tarab',
5363
+ 100087 => 'Music|Tarab|Khaleeji Tarab',
5364
+ 100088 => 'Music|Pop|Levant Pop',
5365
+ 100089 => 'Music|Pop|Iraqi Pop',
5366
+ 100090 => 'Music|Pop|Egyptian Pop',
5367
+ 100091 => 'Music|Pop|Maghreb Pop',
5368
+ 100092 => 'Music|Pop|Khaleeji Pop',
5369
+ 100093 => 'Music|Hip-Hop/Rap|Levant Hip-Hop',
5370
+ 100094 => 'Music|Hip-Hop/Rap|Egyptian Hip-Hop',
5371
+ 100095 => 'Music|Hip-Hop/Rap|Maghreb Hip-Hop',
5372
+ 100096 => 'Music|Hip-Hop/Rap|Khaleeji Hip-Hop',
5373
+ 100097 => 'Music|Alternative|Indie Levant',
5374
+ 100098 => 'Music|Alternative|Indie Egyptian',
5375
+ 100099 => 'Music|Alternative|Indie Maghreb',
5376
+ 100100 => 'Music|Electronic|Levant Electronic',
5377
+ 100101 => "Music|Electronic|Electro-Cha'abi",
5378
+ 100102 => 'Music|Electronic|Maghreb Electronic',
5379
+ 100103 => 'Music|Folk|Iraqi Folk',
5380
+ 100104 => 'Music|Folk|Khaleeji Folk',
5381
+ 100105 => 'Music|Dance|Maghreb Dance',
5095
5382
  40000000 => 'iTunes U',
5096
5383
  40000001 => 'iTunes U|Business & Economics',
5097
5384
  40000002 => 'iTunes U|Business & Economics|Economics',
@@ -5317,6 +5604,7 @@ my %eeBox = (
5317
5604
  50000090 => 'Books|Comics & Graphic Novels|Comics',
5318
5605
  50000091 => 'Books|Romance|Multicultural',
5319
5606
  50000092 => 'Audiobooks|Erotica',
5607
+ 50000093 => 'Audiobooks|Light Novels',
5320
5608
  },
5321
5609
  },
5322
5610
  grup => { Name => 'Grouping', Avoid => 1 }, #10
@@ -6292,7 +6580,7 @@ my %eeBox = (
6292
6580
  sgpd => {
6293
6581
  Name => 'SampleGroupDescription',
6294
6582
  Flags => ['Binary','Unknown'],
6295
- # bytes 4-7 give grouping type (ref ISO/IEC 14496-15:2014)
6583
+ # bytes 4-7 give grouping type (ref ISO/IEC 14496-15:2014)
6296
6584
  # tsas - temporal sublayer sample
6297
6585
  # stsa - step-wise temporal layer access
6298
6586
  # avss - AVC sample
@@ -7916,22 +8204,27 @@ sub HandleItemInfo($)
7916
8204
  $buff = $val . $buff if length $val;
7917
8205
  next unless length $buff; # ignore empty directories
7918
8206
  my ($start, $subTable, $proc);
8207
+ my $pos = $$item{Extents}[0][1] + $base;
7919
8208
  if ($name eq 'EXIF' and length $buff >= 4) {
7920
- $start = 4 + unpack('N', $buff); # skip "Exif\0\0" header if it exists
8209
+ my $n = unpack('N', $buff);
8210
+ $start = 4 + $n; # skip "Exif\0\0" header if it exists
7921
8211
  $subTable = GetTagTable('Image::ExifTool::Exif::Main');
8212
+ if ($$et{HTML_DUMP}) {
8213
+ $et->HDump($pos, 4, 'Exif header length', "Value: $n");
8214
+ $et->HDump($pos+4, $start-4, 'Exif header') if $n;
8215
+ }
7922
8216
  $proc = \&Image::ExifTool::ProcessTIFF;
7923
8217
  } else {
7924
8218
  $start = 0;
7925
8219
  $subTable = GetTagTable('Image::ExifTool::XMP::Main');
7926
8220
  }
7927
- my $pos = $$item{Extents}[0][1] + $base;
7928
8221
  my %dirInfo = (
7929
8222
  DataPt => \$buff,
7930
8223
  DataLen => length $buff,
7931
8224
  DirStart => $start,
7932
8225
  DirLen => length($buff) - $start,
7933
8226
  DataPos => $pos,
7934
- Base => $pos, # (needed for IsOffset tags in binary data)
8227
+ Base => $pos + $start, # (needed for HtmlDump and IsOffset tags in binary data)
7935
8228
  );
7936
8229
  # handle processing of metadata for sub-documents
7937
8230
  if (defined $primary and $$item{RefersTo} and not $$item{RefersTo}{$primary}) {
@@ -8560,7 +8853,7 @@ ItemID: foreach $id (keys %$items) {
8560
8853
  );
8561
8854
  # print iref item ID numbers
8562
8855
  if ($dirID eq 'iref') {
8563
- my ($id, $count, @to);
8856
+ my ($id, $count, @to, $i);
8564
8857
  if ($$et{ItemRefVersion}) {
8565
8858
  ($id, $count, @to) = unpack('NnN*', $val) if length $val >= 10;
8566
8859
  } else {
@@ -8568,7 +8861,13 @@ ItemID: foreach $id (keys %$items) {
8568
8861
  }
8569
8862
  defined $id or $id = '<err>', $count = 0;
8570
8863
  $id .= " (wrong count: $count)" if $count != @to;
8571
- $et->VPrint(1, "$$et{INDENT} Item $id refers to: @to\n");
8864
+ # convert sequential numbers to a range
8865
+ for ($i=1; $i<@to; ) {
8866
+ $to[$i-1] =~ /(\d+)$/ and $to[$i] == $1 + 1 or ++$i, next;
8867
+ $to[$i-1] =~ s/(-.*)?$/-$to[$i]/;
8868
+ splice @to, $i, 1;
8869
+ }
8870
+ $et->VPrint(1, "$$et{INDENT} Item $id refers to: ",join(',',@to),"\n");
8572
8871
  }
8573
8872
  }
8574
8873
  # extract metadata from stream if ExtractEmbedded option is enabled