From 9ca161d1e5696623a2a3b97860458f90ed01c511 Mon Sep 17 00:00:00 2001 From: norbertwg Date: Fri, 30 Dec 2022 14:37:05 +0100 Subject: [PATCH] Rename resp. remove duplicate exif keys (#2434) * rename resp. remove duplicate Exif keys Duplicate key names with different tag are renamed Following most of the existing entries, the key with higher tag number is renamed to ...2. Exceptions: Canon.CustomFunctions,Olympus.ImageHeight,Olympus.ImageWidth In the available images samples only the key with higher tag number is used, so changing the other has less impact on test data and also on users. Canon.WhiteBalanceTable with tag 0x00a4 was listed twice, once with description "SharpnessTable". The entry with the deviating description is deleted. * clang format * adjust test output files (after merge with Exiv2) * add Exif.NikonLd4.FocusDistance to EasyAccess API * clang format --- src/canonmn_int.cpp | 10 +- src/easyaccess.cpp | 4 +- src/minoltamn_int.cpp | 14 +- src/nikonmn_int.cpp | 10 +- src/olympusmn_int.cpp | 10 +- src/panasonicmn_int.cpp | 4 +- src/sonymn_int.cpp | 4 +- test/data/KonicaMinoltaMAXXUM7D.exv | Bin 0 -> 44383 bytes test/data/Olympus_u10D.exv | Bin 0 -> 11233 bytes test/data/PanasonicDMC-ZS7.exv | Bin 0 -> 17101 bytes .../test_reference_files/CH0_0174.exv.out | 4 +- .../KonicaMinoltaDYNAX5D.exv.out | 2 +- .../KonicaMinoltaMAXXUM7D.exv.out | 99 +++++++++++++ .../test_reference_files/Olympus_u10D.exv.out | 96 +++++++++++++ .../PanasonicDMC-ZS7.exv.out | 133 ++++++++++++++++++ .../SonyDSLR-A100.exv.out | 4 +- .../test_reference_files/exifdata-test.out | 8 +- .../exiv2-SonySLT-A58.exv.out | 4 +- .../test_reference_files/exiv2-bug922.png.out | 2 +- .../exiv2-nikon-d70.jpg.out | 2 +- .../test_reference_files/exiv2-pr1009.exv.out | 4 +- test/data/test_reference_files/exiv2-test.out | 10 +- .../test_reference_files/imagemagick.png.out | 2 +- .../test_issue_1464.exv.out | 4 +- .../test_issue_1471.exv.out | 4 +- .../test_issue_1472.jpg.out | 4 +- tests/bash_tests/test_easyaccess.py | 2 +- 27 files changed, 383 insertions(+), 57 deletions(-) create mode 100644 test/data/KonicaMinoltaMAXXUM7D.exv create mode 100644 test/data/Olympus_u10D.exv create mode 100644 test/data/PanasonicDMC-ZS7.exv create mode 100644 test/data/test_reference_files/KonicaMinoltaMAXXUM7D.exv.out create mode 100644 test/data/test_reference_files/Olympus_u10D.exv.out create mode 100644 test/data/test_reference_files/PanasonicDMC-ZS7.exv.out diff --git a/src/canonmn_int.cpp b/src/canonmn_int.cpp index 414dcf18..3c4aa5ee 100644 --- a/src/canonmn_int.cpp +++ b/src/canonmn_int.cpp @@ -473,8 +473,8 @@ constexpr TagInfo CanonMakerNote::tagInfo_[] = { -1, printValue}, {0x000e, "FileLength", N_("FileLength"), N_("FileLength"), IfdId::canonId, SectionId::makerTags, unsignedLong, -1, printValue}, - {0x000f, "CustomFunctions", N_("Custom Functions"), N_("Custom Functions"), IfdId::canonId, SectionId::makerTags, - unsignedShort, -1, printValue}, + {0x000f, "CustomFunctions2", N_("Custom Functions 2"), N_("Custom Functions 2"), IfdId::canonId, + SectionId::makerTags, unsignedShort, -1, printValue}, {0x0010, "ModelID", N_("ModelID"), N_("Model ID"), IfdId::canonId, SectionId::makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonModelId)}, {0x0011, "MovieInfo", N_("MovieInfo"), N_("Movie info"), IfdId::canonId, SectionId::makerTags, unsignedShort, -1, @@ -518,8 +518,6 @@ constexpr TagInfo CanonMakerNote::tagInfo_[] = { signedLong, -1, printValue}, {0x0083, "OriginalDecisionDataOffset", N_("Original Decision Data Offset"), N_("Original decision data offset"), IfdId::canonId, SectionId::makerTags, signedLong, -1, printValue}, - {0x00a4, "WhiteBalanceTable", N_("White Balance Table"), N_("White balance table"), IfdId::canonId, - SectionId::makerTags, unsignedShort, -1, printValue}, // {0x0090, "CustomFunctions1D", N_("CustomFunctions1D"), N_("CustomFunctions1D"), IfdId::canonId, // SectionId::makerTags, unsignedShort, -1, printValue}, // ToDo {0x0091, "PersonalFunctions", // N_("PersonalFunctions"), N_("PersonalFunctions"), IfdId::canonId, SectionId::makerTags, unsignedShort, -1, @@ -547,8 +545,8 @@ constexpr TagInfo CanonMakerNote::tagInfo_[] = { unsignedShort, -1, printValue}, {0x00a3, "SharpnessFreqTable", N_("SharpnessFreqTable"), N_("SharpnessFreqTable"), IfdId::canonId, SectionId::makerTags, unsignedShort, -1, printValue}, - {0x00a4, "WhiteBalanceTable", N_("SharpnessTable"), N_("SharpnessTable"), IfdId::canonId, SectionId::makerTags, - unsignedShort, -1, printValue}, + {0x00a4, "WhiteBalanceTable", N_("White Balance Table"), N_("White balance table"), IfdId::canonId, + SectionId::makerTags, unsignedShort, -1, printValue}, {0x00a9, "ColorBalance", N_("ColorBalance"), N_("ColorBalance"), IfdId::canonId, SectionId::makerTags, unsignedShort, -1, printValue}, {0x00aa, "MeasuredColor", N_("Measured Color"), N_("Measured color"), IfdId::canonId, SectionId::makerTags, diff --git a/src/easyaccess.cpp b/src/easyaccess.cpp index eb07ea5e..4ec18dee 100644 --- a/src/easyaccess.cpp +++ b/src/easyaccess.cpp @@ -365,8 +365,8 @@ ExifData::const_iterator subjectDistance(const ExifData& ed) { "Exif.Photo.SubjectDistance", "Exif.Image.SubjectDistance", "Exif.CanonSi.SubjectDistance", "Exif.CanonFi.FocusDistanceUpper", "Exif.CanonFi.FocusDistanceLower", "Exif.MinoltaCsNew.FocusDistance", "Exif.Nikon1.FocusDistance", "Exif.Nikon3.FocusDistance", "Exif.NikonLd2.FocusDistance", - "Exif.NikonLd3.FocusDistance", "Exif.Olympus.FocusDistance", "Exif.OlympusFi.FocusDistance", - "Exif.Casio.ObjectDistance", "Exif.Casio2.ObjectDistance"}; + "Exif.NikonLd3.FocusDistance", "Exif.NikonLd4.FocusDistance", "Exif.Olympus.FocusDistance", + "Exif.OlympusFi.FocusDistance", "Exif.Casio.ObjectDistance", "Exif.Casio2.ObjectDistance"}; return findMetadatum(ed, keys, std::size(keys)); } diff --git a/src/minoltamn_int.cpp b/src/minoltamn_int.cpp index 4b9a424c..a9b98064 100644 --- a/src/minoltamn_int.cpp +++ b/src/minoltamn_int.cpp @@ -498,14 +498,14 @@ constexpr TagInfo MinoltaMakerNote::tagInfoCs7D_[] = { {0x0048, "ExposureTime", N_("Exposure Time"), N_("Exposure time"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, // 0x004A is a duplicate than 0x002D. - {0x004A, "FreeMemoryCardImages", N_("Free Memory Card Images"), N_("Free memory card images"), IfdId::minoltaCs7DId, - SectionId::makerTags, unsignedShort, 1, printValue}, + {0x004A, "FreeMemoryCardImages2", N_("Free Memory Card Images 2"), N_("Free memory card images 2"), + IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, {0x005E, "ImageNumber", N_("Image Number"), N_("Image number"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, {0x0060, "NoiseReduction", N_("Noise Reduction"), N_("Noise reduction"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, // 0x0062 is a duplicate than 0x005E. - {0x0062, "ImageNumber", N_("Image Number"), N_("Image number"), IfdId::minoltaCs7DId, SectionId::makerTags, + {0x0062, "ImageNumber2", N_("Image Number 2"), N_("Image number 2"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printValue}, {0x0071, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::minoltaCs7DId, SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, @@ -661,8 +661,8 @@ constexpr TagInfo MinoltaMakerNote::tagInfoCs5D_[] = { EXV_PRINT_TAG(minoltaRotation5D)}, {0x0053, "ExposureCompensation", N_("Exposure Compensation"), N_("Exposure compensation"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, printMinoltaExposureCompensation5D}, - {0x0054, "FreeMemoryCardImages", N_("Free Memory Card Images"), N_("Free memory card images"), IfdId::minoltaCs5DId, - SectionId::makerTags, unsignedShort, -1, printValue}, + {0x0054, "FreeMemoryCardImages2", N_("Free Memory Card Images 2"), N_("Free memory card images 2"), + IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, printValue}, {0x0065, "Rotation2", N_("Rotation2"), N_("Rotation2"), IfdId::minoltaCs5DId, SectionId::makerTags, unsignedShort, -1, printMinoltaSonyRotation}, {0x006E, "Color Temperature", N_("Color Temperature"), N_("Color Temperature"), IfdId::minoltaCs5DId, @@ -1003,9 +1003,9 @@ constexpr TagInfo MinoltaMakerNote::tagInfoCsA100_[] = { 1, printMinoltaSonyRotation}, {0x004B, "AELock", N_("AE Lock"), N_("AE lock"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedShort, 1, printMinoltaSonyBoolValue}, - {0x005E, "ColorTemperature", N_("Color Temperature"), N_("Color temperature"), IfdId::sony1MltCsA100Id, + {0x005E, "ColorTemperature2", N_("Color Temperature 2"), N_("Color temperature 2"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedLong, 1, printValue}, - {0x005F, "ColorCompensationFilter", N_("Color Compensation Filter"), + {0x005F, "ColorCompensationFilter2", N_("Color Compensation Filter 2"), N_("Color compensation filter: negative is green, positive is magenta"), IfdId::sony1MltCsA100Id, SectionId::makerTags, unsignedLong, 1, printValue}, {0x0060, "BatteryLevel", N_("Battery Level"), N_("Battery level"), IfdId::sony1MltCsA100Id, SectionId::makerTags, diff --git a/src/nikonmn_int.cpp b/src/nikonmn_int.cpp index 0f17efde..1d16ace8 100644 --- a/src/nikonmn_int.cpp +++ b/src/nikonmn_int.cpp @@ -504,8 +504,8 @@ constexpr TagInfo Nikon3MakerNote::tagInfo_[] = { printValue}, {0x00a9, "ImageOptimization", N_("Image Optimization"), N_("Image optimization"), IfdId::nikon3Id, SectionId::makerTags, asciiString, -1, printValue}, - {0x00aa, "Saturation", N_("Saturation"), N_("Saturation"), IfdId::nikon3Id, SectionId::makerTags, asciiString, -1, - printValue}, + {0x00aa, "Saturation2", N_("Saturation 2"), N_("Saturation 2"), IfdId::nikon3Id, SectionId::makerTags, asciiString, + -1, printValue}, {0x00ab, "VariProgram", N_("Program Variation"), N_("Program variation"), IfdId::nikon3Id, SectionId::makerTags, asciiString, -1, printValue}, {0x00ac, "ImageStabilization", N_("Image Stabilization"), N_("Image stabilization"), IfdId::nikon3Id, @@ -1621,9 +1621,9 @@ constexpr TagInfo Nikon3MakerNote::tagInfoLd4_[] = { 1, printApertureLd4}, {56, "FNumber", N_("F-Number"), N_("F-Number"), IfdId::nikonLd4Id, SectionId::makerTags, unsignedShort, 1, printApertureLd4}, - {60, "FocalLength", N_("Focal Length"), N_("Focal length"), IfdId::nikonLd4Id, SectionId::makerTags, unsignedShort, - 1, printFocalLd4}, - {79, "FocusDistance", N_("Focus Distance"), N_("Focus distance"), IfdId::nikonLd4Id, SectionId::makerTags, + {60, "FocalLength2", N_("Focal Length 2"), N_("Focal length 2"), IfdId::nikonLd4Id, SectionId::makerTags, + unsignedShort, 1, printFocalLd4}, + {79, "FocusDistance2", N_("Focus Distance 2"), N_("Focus distance 2"), IfdId::nikonLd4Id, SectionId::makerTags, unsignedByte, 1, printFocusDistance}, // End of list marker {0xffff, "(UnknownNikonLd4Tag)", "(UnknownNikonLd4Tag)", N_("Unknown Nikon Lens Data 3 Tag"), IfdId::nikonLd4Id, diff --git a/src/olympusmn_int.cpp b/src/olympusmn_int.cpp index 3ba61359..3c916282 100644 --- a/src/olympusmn_int.cpp +++ b/src/olympusmn_int.cpp @@ -130,9 +130,9 @@ constexpr TagInfo OlympusMakerNote::tagInfo_[] = { SectionId::makerTags, asciiString, -1, printValue}, {0x0209, "CameraID", N_("Camera ID"), N_("Camera ID data"), IfdId::olympusId, SectionId::makerTags, asciiString, -1, print0x0209}, - {0x020b, "ImageWidth", N_("Image Width"), N_("Image width"), IfdId::olympusId, SectionId::makerTags, unsignedShort, - -1, printValue}, - {0x020c, "ImageHeight", N_("Image Height"), N_("Image height"), IfdId::olympusId, SectionId::makerTags, + {0x020b, "ImageWidth2", N_("Image Width 2"), N_("Image width 2"), IfdId::olympusId, SectionId::makerTags, + unsignedShort, -1, printValue}, + {0x020c, "ImageHeight2", N_("Image Height 2"), N_("Image height 2"), IfdId::olympusId, SectionId::makerTags, unsignedShort, -1, printValue}, {0x020d, "Software", N_("Software"), N_("Software"), IfdId::olympusId, SectionId::makerTags, asciiString, -1, printValue}, @@ -229,8 +229,8 @@ constexpr TagInfo OlympusMakerNote::tagInfo_[] = { SectionId::makerTags, unsignedShort, -1, printValue}, {0x1029, "Contrast", N_("Contrast"), N_("Contrast setting"), IfdId::olympusId, SectionId::makerTags, unsignedShort, -1, EXV_PRINT_TAG(olympusContrast)}, - {0x102a, "SharpnessFactor", N_("Sharpness Factor"), N_("Sharpness factor"), IfdId::olympusId, SectionId::makerTags, - unsignedShort, -1, printValue}, + {0x102a, "SharpnessFactor2", N_("Sharpness Factor 2"), N_("Sharpness factor 2"), IfdId::olympusId, + SectionId::makerTags, unsignedShort, -1, printValue}, {0x102b, "ColorControl", N_("Color Control"), N_("Color control"), IfdId::olympusId, SectionId::makerTags, unsignedShort, -1, printValue}, {0x102c, "ValidBits", N_("ValidBits"), N_("Valid bits"), IfdId::olympusId, SectionId::makerTags, unsignedShort, -1, diff --git a/src/panasonicmn_int.cpp b/src/panasonicmn_int.cpp index 6df3d09e..5a35ffb7 100644 --- a/src/panasonicmn_int.cpp +++ b/src/panasonicmn_int.cpp @@ -325,8 +325,8 @@ constexpr TagInfo PanasonicMakerNote::tagInfo_[] = { unsignedShort, -1, EXV_PRINT_TAG(panasonicConversionLens)}, {0x0036, "TravelDay", N_("Travel Day"), N_("Travel day"), IfdId::panasonicId, SectionId::makerTags, unsignedShort, -1, print0x0036}, - {0x0039, "Contrast", N_("Contrast"), N_("Contrast"), IfdId::panasonicId, SectionId::makerTags, unsignedShort, -1, - printValue}, + {0x0039, "Contrast2", N_("Contrast 2"), N_("Contrast 2"), IfdId::panasonicId, SectionId::makerTags, unsignedShort, + -1, printValue}, {0x003a, "WorldTimeLocation", N_("World Time Location"), N_("World time location"), IfdId::panasonicId, SectionId::makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWorldTimeLocation)}, {0x003b, "TextStamp1", N_("Text Stamp 1"), N_("Text Stamp 1"), IfdId::panasonicId, SectionId::makerTags, diff --git a/src/sonymn_int.cpp b/src/sonymn_int.cpp index 0b9cc01d..c2a5c32c 100644 --- a/src/sonymn_int.cpp +++ b/src/sonymn_int.cpp @@ -2213,7 +2213,7 @@ constexpr TagInfo SonyMakerNote::tagInfo2010e_[] = { printValue}, {4444, "ReleaseMode3", N_("ReleaseMode3"), N_("ReleaseMode3"), IfdId::sony2010eId, SectionId::makerTags, unsignedByte, 1, printValue}, - {4448, "ReleaseMode2", N_("ReleaseMode2"), N_("ReleaseMode2"), IfdId::sony2010eId, SectionId::makerTags, + {4448, "ReleaseMode4", N_("ReleaseMode4"), N_("ReleaseMode4"), IfdId::sony2010eId, SectionId::makerTags, unsignedByte, 1, printValue}, {4456, "SelfTimer", N_("SelfTimer"), N_("SelfTimer"), IfdId::sony2010eId, SectionId::makerTags, unsignedByte, 1, printValue}, @@ -2223,7 +2223,7 @@ constexpr TagInfo SonyMakerNote::tagInfo2010e_[] = { SectionId::makerTags, unsignedShort, 1, printValue}, {4468, "BrightnessValue", N_("BrightnessValue"), N_("BrightnessValue"), IfdId::sony2010eId, SectionId::makerTags, unsignedShort, 1, printValue}, - {4472, "DynamicRangeOptimizer", N_("DynamicRangeOptimizer"), N_("DynamicRangeOptimizer"), IfdId::sony2010eId, + {4472, "DynamicRangeOptimizer2", N_("DynamicRangeOptimizer 2"), N_("DynamicRangeOptimizer 2"), IfdId::sony2010eId, SectionId::makerTags, unsignedByte, 1, printValue}, {4476, "HDRSetting", N_("HDRSetting"), N_("HDRSetting"), IfdId::sony2010eId, SectionId::makerTags, unsignedByte, 1, printValue}, diff --git a/test/data/KonicaMinoltaMAXXUM7D.exv b/test/data/KonicaMinoltaMAXXUM7D.exv new file mode 100644 index 0000000000000000000000000000000000000000..1e3431624d4bf7a9cb81088e9ea228d4c4d0e569 GIT binary patch literal 44383 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�PFGi*N&Hyh-P7aBiBk{cTD3#3pNsPIv=dCu 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 S8ace5Y1TSTZ}%hH{r?4^72|6F literal 0 HcmV?d00001 diff --git a/test/data/PanasonicDMC-ZS7.exv b/test/data/PanasonicDMC-ZS7.exv new file mode 100644 index 0000000000000000000000000000000000000000..a5e8dfc0bba7aef1ca35a060c031dc8ca0a1d58a GIT binary patch literal 17101 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 20040329_224245.exv Exif.NikonFl1.FlashGroupBControlMode Byte 1 Off > 20040329_224245.exv Exif.NikonFl1.0x0011 Byte 3 0 0 0 > 20040329_224245.exv Exif.Nikon3.ImageOptimization Ascii 16 NORMAL -> 20040329_224245.exv Exif.Nikon3.Saturation Ascii 16 NORMAL +> 20040329_224245.exv Exif.Nikon3.Saturation2 Ascii 16 NORMAL > 20040329_224245.exv Exif.Nikon3.VariProgram Ascii 16 > 20040329_224245.exv Exif.Photo.UserComment Undefined 44 charset=Ascii > 20040329_224245.exv Exif.Photo.SubSecTime Ascii 3 00 @@ -5987,7 +5987,7 @@ Compare original and inserted image data --------------------------------- < 20040329_224245.jpg Exif.NikonFl1.FlashGroupBControlMode Byte 1 Off < 20040329_224245.jpg Exif.NikonFl1.0x0011 Byte 3 0 0 0 < 20040329_224245.jpg Exif.Nikon3.ImageOptimization Ascii 16 NORMAL -< 20040329_224245.jpg Exif.Nikon3.Saturation Ascii 16 NORMAL +< 20040329_224245.jpg Exif.Nikon3.Saturation2 Ascii 16 NORMAL < 20040329_224245.jpg Exif.Nikon3.VariProgram Ascii 16 < 20040329_224245.jpg Exif.Photo.UserComment Undefined 44 charset=Ascii < 20040329_224245.jpg Exif.Photo.SubSecTime Ascii 3 00 @@ -7550,7 +7550,7 @@ Compare original and inserted image data --------------------------------- > 20040329_224245.exv Exif.NikonFl1.FlashGroupBControlMode Byte 1 Off > 20040329_224245.exv Exif.NikonFl1.0x0011 Byte 3 0 0 0 > 20040329_224245.exv Exif.Nikon3.ImageOptimization Ascii 16 NORMAL -> 20040329_224245.exv Exif.Nikon3.Saturation Ascii 16 NORMAL +> 20040329_224245.exv Exif.Nikon3.Saturation2 Ascii 16 NORMAL > 20040329_224245.exv Exif.Nikon3.VariProgram Ascii 16 > 20040329_224245.exv Exif.Photo.UserComment Undefined 44 charset=Ascii > 20040329_224245.exv Exif.Photo.SubSecTime Ascii 3 00 diff --git a/test/data/test_reference_files/imagemagick.png.out b/test/data/test_reference_files/imagemagick.png.out index 71a229b6..d643490d 100644 --- a/test/data/test_reference_files/imagemagick.png.out +++ b/test/data/test_reference_files/imagemagick.png.out @@ -75,7 +75,7 @@ Exif.Nikon3.SerialNO Ascii 21 Exif.Nikon3.ShutterCount Long 1 5670 5670 Exif.Nikon3.FlashInfo Undefined 20 0 0 0 1 0 0 0 8 0 0 97 126 78 73 75 79 78 32 67 79 0 0 0 1 0 0 0 8 0 0 97 126 78 73 75 79 78 32 67 79 Exif.Nikon3.ImageOptimization Ascii 16 RPORATION RPORATION -Exif.Nikon3.Saturation Ascii 16 D70 D70 +Exif.Nikon3.Saturation2 Ascii 16 D70 D70 Exif.Nikon3.VariProgram Ascii 16 Exif.Photo.PixelXDimension SLong 1 320 320 Exif.Photo.PixelYDimension SLong 1 211 211 diff --git a/test/data/test_reference_files/test_issue_1464.exv.out b/test/data/test_reference_files/test_issue_1464.exv.out index 59128844..9d1a3f06 100644 --- a/test/data/test_reference_files/test_issue_1464.exv.out +++ b/test/data/test_reference_files/test_issue_1464.exv.out @@ -100,12 +100,12 @@ Exif.Sony2010e.SonyDateTime Undefined 1 228 228 Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 Exif.Sony2010e.MeterInfo Undefined 1 12 12 Exif.Sony2010e.ReleaseMode3 Byte 1 1 1 -Exif.Sony2010e.ReleaseMode2 Byte 1 26 26 +Exif.Sony2010e.ReleaseMode4 Byte 1 26 26 Exif.Sony2010e.SelfTimer Byte 1 0 0 Exif.Sony2010e.FlashMode Byte 1 2 2 Exif.Sony2010e.StopsAboveBaseISO Short 1 3797 3797 Exif.Sony2010e.BrightnessValue Short 1 15966 15966 -Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 +Exif.Sony2010e.DynamicRangeOptimizer2 Byte 1 1 1 Exif.Sony2010e.HDRSetting Byte 1 0 0 Exif.Sony2010e.ExposureCompensation SShort 1 0 0 Exif.Sony2010e.PictureProfile Byte 1 0 0 diff --git a/test/data/test_reference_files/test_issue_1471.exv.out b/test/data/test_reference_files/test_issue_1471.exv.out index 59128844..9d1a3f06 100644 --- a/test/data/test_reference_files/test_issue_1471.exv.out +++ b/test/data/test_reference_files/test_issue_1471.exv.out @@ -100,12 +100,12 @@ Exif.Sony2010e.SonyDateTime Undefined 1 228 228 Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 Exif.Sony2010e.MeterInfo Undefined 1 12 12 Exif.Sony2010e.ReleaseMode3 Byte 1 1 1 -Exif.Sony2010e.ReleaseMode2 Byte 1 26 26 +Exif.Sony2010e.ReleaseMode4 Byte 1 26 26 Exif.Sony2010e.SelfTimer Byte 1 0 0 Exif.Sony2010e.FlashMode Byte 1 2 2 Exif.Sony2010e.StopsAboveBaseISO Short 1 3797 3797 Exif.Sony2010e.BrightnessValue Short 1 15966 15966 -Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 +Exif.Sony2010e.DynamicRangeOptimizer2 Byte 1 1 1 Exif.Sony2010e.HDRSetting Byte 1 0 0 Exif.Sony2010e.ExposureCompensation SShort 1 0 0 Exif.Sony2010e.PictureProfile Byte 1 0 0 diff --git a/test/data/test_reference_files/test_issue_1472.jpg.out b/test/data/test_reference_files/test_issue_1472.jpg.out index 59128844..9d1a3f06 100644 --- a/test/data/test_reference_files/test_issue_1472.jpg.out +++ b/test/data/test_reference_files/test_issue_1472.jpg.out @@ -100,12 +100,12 @@ Exif.Sony2010e.SonyDateTime Undefined 1 228 228 Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 Exif.Sony2010e.MeterInfo Undefined 1 12 12 Exif.Sony2010e.ReleaseMode3 Byte 1 1 1 -Exif.Sony2010e.ReleaseMode2 Byte 1 26 26 +Exif.Sony2010e.ReleaseMode4 Byte 1 26 26 Exif.Sony2010e.SelfTimer Byte 1 0 0 Exif.Sony2010e.FlashMode Byte 1 2 2 Exif.Sony2010e.StopsAboveBaseISO Short 1 3797 3797 Exif.Sony2010e.BrightnessValue Short 1 15966 15966 -Exif.Sony2010e.DynamicRangeOptimizer Byte 1 1 1 +Exif.Sony2010e.DynamicRangeOptimizer2 Byte 1 1 1 Exif.Sony2010e.HDRSetting Byte 1 0 0 Exif.Sony2010e.ExposureCompensation SShort 1 0 0 Exif.Sony2010e.PictureProfile Byte 1 0 0 diff --git a/tests/bash_tests/test_easyaccess.py b/tests/bash_tests/test_easyaccess.py index 4a156a41..93c8aec9 100644 --- a/tests/bash_tests/test_easyaccess.py +++ b/tests/bash_tests/test_easyaccess.py @@ -416,7 +416,7 @@ Aperture value ( ) : Brightness value ( ) : Exposure bias (Exif.Photo.ExposureBiasValue ) : 0 EV Max aperture value (Exif.NikonLd4.MaxAperture ) : F0.5 -Subject distance ( ) : +Subject distance (Exif.NikonLd4.FocusDistance ) : 2.66 m Light source (Exif.Photo.LightSource ) : Unknown Flash (Exif.Photo.Flash ) : No flash Camera serial number (Exif.Photo.BodySerialNumber ) : 6078248