Skip to content

Commit

Permalink
work on canon tags
Browse files Browse the repository at this point in the history
  • Loading branch information
alexvanderberkel authored and piponazo committed Feb 14, 2022
1 parent e3ca59b commit 2329306
Show file tree
Hide file tree
Showing 6 changed files with 187 additions and 159 deletions.
43 changes: 37 additions & 6 deletions src/canonmn_int.cpp
Expand Up @@ -505,7 +505,8 @@ namespace Exiv2 {
//! ColorSpace, tag 0x00b4
constexpr TagDetails canonColorSpace[] = {
{ 1, N_("sRGB") },
{ 2, N_("Adobe RGB") }
{ 2, N_("Adobe RGB") },
{ 65535, N_("n/a") }
};

//! Canon AF Area Mode, tag 0x2601
Expand Down Expand Up @@ -781,6 +782,9 @@ namespace Exiv2 {
{0x000c, "AFPointsInFocus", N_("AF Points in Focus"), N_("AF Points in Focus"), canonAf2Id, makerTags, signedShort, -1,printBitmask},
{0x000d, "AFPointsSelected", N_("AF Points Selected"), N_("AF Points Selected"), canonAf2Id, makerTags, signedShort, -1, printBitmask},
{0x000e, "AFPrimaryPoint", N_("AF Primary Point"), N_("AF Primary Point"), canonAf2Id, makerTags, signedShort, -1, printBitmask},
(0x000f, "0x000f", "0x000f", N_("0x000f"), canonAf2Id, makerTags, unsignedShort, -1, printValue),
(0x0010, "0x0010", "0x0010", N_("0x0010"), canonAf2Id, makerTags, unsignedShort, -1, printValue),
(0x0011, "AFFineRotation", N_("AFFineRotation"), N_("AFFineRotation"), canonAf2Id, makerTags, unsignedShort, -1, printValue),
};

const TagInfo* CanonMakerNote::tagListAf2()
Expand Down Expand Up @@ -1313,6 +1317,7 @@ namespace Exiv2 {
//! Quality, tag 0x0003
constexpr TagDetails canonCsQuality[] = {
{ -1, N_("n/a") },
{ 0, N_("unkown") },
{ 1, N_("Economy") },
{ 2, N_("Normal") },
{ 3, N_("Fine") },
Expand Down Expand Up @@ -1402,7 +1407,8 @@ namespace Exiv2 {
{ 129, N_("Medium Movie") },
{ 130, N_("Small Movie") },
{ 137, N_("1280x720 Movie") },
{ 142, N_("1920x1080 Movie") }
{ 142, N_("1920x1080 Movie") },
{ 143, N_("4096x2160 Movie") }
};

//! EasyMode, tag 0x000b
Expand Down Expand Up @@ -2103,7 +2109,8 @@ namespace Exiv2 {
{ 1, N_("Exposure compensation") },
{ 2, N_("AE lock") },
{ 3, N_("AE lock + exposure compensation") },
{ 4, N_("No AE") }
{ 4, N_("No AE") },
{ 65535, N_("n/a") }
};

//! ImageStabilization, tag 0x0022
Expand All @@ -2123,7 +2130,8 @@ namespace Exiv2 {
//! SpotMeteringMode, tag 0x0027
constexpr TagDetails canonCsSpotMeteringMode[] = {
{ 0, N_("Center") },
{ 1, N_("AF Point") }
{ 1, N_("AF Point") },
{ 65535, N_("n/a") }
};

//! PhotoEffect, tag 0x0028
Expand All @@ -2136,7 +2144,7 @@ namespace Exiv2 {
{ 5, N_("B&W") },
{ 6, N_("Custom") },
{ 100, N_("My color data") },
{ 100, N_("My color data") } // To silence compiler warning
{ 65535, N_("n/a") }
};

//! ManualFlashOutput, tag 0x0029
Expand Down Expand Up @@ -2259,7 +2267,27 @@ namespace Exiv2 {
{ 0, "Off" },
{ 1, "Night Scene" },
{ 2, "On" },
{ 3, "None" },
{ 3, "None" }
};

constexpr TagDetails autoRotate[] = {
{ -1, "n/a" },
{ 0, "None" },
{ 1, "Rotate 90 CW" },
{ 2, "Rotate 180" },
{ 3, "Rotate 270 CW" }
};

constexpr TagDetails ndRotate[] = {
{ 65535, "n/a" },
{ 0, "Off" },
{ 1, "On" }
};

constexpr TagDetails selfTimer2[] = {
{ 65535, "n/a" },
{ 0, "Selftimer 2s" },
{ 1, "Selftimer 10s" }
};


Expand Down Expand Up @@ -2292,6 +2320,9 @@ namespace Exiv2 {
{0x0019, "0x0019", "0x0019", N_("Unknown"), canonSiId, makerTags, unsignedShort, 1, printValue},
{0x001a, "CameraType", N_("Camera Type"), N_("Camera type"), canonSiId, makerTags, unsignedShort, 1, EXV_PRINT_TAG(cameraType)},
{0x001b, "AutoRotate", N_("Auto Rotate"), N_("Auto rotate"), canonSiId, makerTags, signedShort, 1, printValue},
//(0x001c, "NDFilter", N_("ND Filter"), N_("ND filter"), canonSiId, makerTags, signedShort, 1, EXV_PRINT_TAG(ndRotate)),
// (0x001d, "SelfTimer2", N_("Self Timer 2"), N_("Self timer2"), canonSiId, makerTags, signedShort, 1, EXV_PRINT_TAG(selfTimer2)),
(0x0021, "FlashOutput", N_("Flash Output"), N_("Flash output"), canonSiId, makerTags, signedShort, 1, printValue),
// End of list marker
{0xffff, "(UnknownCanonCsTag)", "(UnknownCanonCsTag)", N_("Unknown Canon Camera Settings 1 tag"), canonCsId, makerTags, unsignedShort, 1, printValue},
};
Expand Down
10 changes: 2 additions & 8 deletions src/canonmn_int.hpp
Expand Up @@ -124,14 +124,8 @@ namespace Exiv2 {
//! Return read-only list of built-in Canon RawBurstInfo Info tags
static const TagInfo* tagListRawB();
//! Return read-only list of built-in Canon AFInfo2 Info tags
static const TagInfo* tagListAf2();







static const TagInfo* tagListAf2();


//! @name Print functions for Canon %MakerNote tags
//@{
Expand Down
1 change: 1 addition & 0 deletions src/exif.cpp
Expand Up @@ -712,6 +712,7 @@ namespace Exiv2 {
"Exif.Canon.AFPointsInFocus",
"Exif.Canon.AFPointsSelected",
"Exif.Canon.AFPointsUnusable",
"Exif.Canon.AFFineRotation",
};
for (auto&& filteredIfd0Tag : filteredIfd0Tags) {
auto pos = ed.findKey(ExifKey(filteredIfd0Tag));
Expand Down
2 changes: 2 additions & 0 deletions src/tags_int.cpp
Expand Up @@ -90,6 +90,8 @@ namespace Exiv2 {
{ canonFiId, "Makernote", "CanonFi", CanonMakerNote::tagListFi },
{ canonPaId, "Makernote", "CanonPa", CanonMakerNote::tagListPa },
{ canonPrId, "Makernote", "CanonPr", CanonMakerNote::tagListPr },
{ canonVigCor2Id, "Makernote", "CanonVigCor2", CanonMakerNote::tagListVigCor2 }, // new
{ canonAfMiAdjId, "Makernote", "CanonAfMiAdjId", CanonMakerNote::tagListAfMiAdj }, // new
{ casioId, "Makernote", "Casio", CasioMakerNote::tagList },
{ casio2Id, "Makernote", "Casio2", Casio2MakerNote::tagList },
{ fujiId, "Makernote", "Fujifilm", FujiMakerNote::tagList },
Expand Down
40 changes: 20 additions & 20 deletions test/data/test_reference_files/exifdata-test.out
Expand Up @@ -231,26 +231,26 @@ Exif.CanonCs.ZoomTargetWidth 0x0025 Makernote Short 1
Exif.CanonCs.0x0026 0x0026 Makernote Short 1 0
Exif.CanonCs.SpotMeteringMode 0x0027 Makernote Short 1 1
Exif.Canon.FocalLength 0x0002 Makernote Short 4 2 682 286 215
Exif.Canon.0x0003 0x0003 Makernote Short 4 0 0 0 0
Exif.Canon.CanonFlashInfo 0x0003 Makernote Short 4 0 0 0 0
Exif.CanonSi.0x0000 0x0000 Makernote Short 1 54
Exif.CanonSi.AutoISO 0x0001 Makernote Short 1 0
Exif.CanonSi.ISOSpeed 0x0002 Makernote Short 1 160
Exif.CanonSi.MeasuredEV 0x0003 Makernote Short 1 276
Exif.CanonSi.TargetAperture 0x0004 Makernote Short 1 149
Exif.CanonSi.TargetShutterSpeed 0x0005 Makernote Short 1 287
Exif.CanonSi.0x0006 0x0006 Makernote Short 1 0
Exif.CanonSi.ExposureCompensation 0x0006 Makernote Short 1 0
Exif.CanonSi.WhiteBalance 0x0007 Makernote Short 1 0
Exif.CanonSi.SlowShutter 0x0008 Makernote Short 1 0
Exif.CanonSi.Sequence 0x0009 Makernote Short 1 0
Exif.CanonSi.0x000a 0x000a Makernote Short 1 6
Exif.CanonSi.OpticalZoomCode 0x000a Makernote Short 1 6
Exif.CanonSi.0x000b 0x000b Makernote Short 1 0
Exif.CanonSi.CameraTemperature 0x000c Makernote Short 1 0
Exif.CanonSi.FlashGuideNumber 0x000d Makernote Short 1 0
Exif.CanonSi.AFPointUsed 0x000e Makernote Short 1 12290
Exif.CanonSi.FlashBias 0x000f Makernote Short 1 0
Exif.CanonSi.AutoExposureBracketing 0x0010 Makernote Short 1 0
Exif.CanonSi.0x0011 0x0011 Makernote Short 1 0
Exif.CanonSi.0x0012 0x0012 Makernote Short 1 1
Exif.CanonSi.AEBBracketValue 0x0011 Makernote Short 1 0
Exif.CanonSi.ControlMode 0x0012 Makernote Short 1 1
Exif.CanonSi.SubjectDistance 0x0013 Makernote Short 1 782
Exif.CanonSi.0x0014 0x0014 Makernote Short 1 0
Exif.CanonSi.ApertureValue 0x0015 Makernote Short 1 149
Expand Down Expand Up @@ -360,26 +360,26 @@ Exif.CanonCs.ZoomTargetWidth 0x0025 Makernote Short 1
Exif.CanonCs.0x0026 0x0026 Makernote Short 1 0
Exif.CanonCs.SpotMeteringMode 0x0027 Makernote Short 1 1
Exif.Canon.FocalLength 0x0002 Makernote Short 4 2 682 286 215
Exif.Canon.0x0003 0x0003 Makernote Short 4 0 0 0 0
Exif.Canon.CanonFlashInfo 0x0003 Makernote Short 4 0 0 0 0
Exif.CanonSi.0x0000 0x0000 Makernote Short 1 54
Exif.CanonSi.AutoISO 0x0001 Makernote Short 1 0
Exif.CanonSi.ISOSpeed 0x0002 Makernote Short 1 160
Exif.CanonSi.MeasuredEV 0x0003 Makernote Short 1 276
Exif.CanonSi.TargetAperture 0x0004 Makernote Short 1 149
Exif.CanonSi.TargetShutterSpeed 0x0005 Makernote Short 1 287
Exif.CanonSi.0x0006 0x0006 Makernote Short 1 0
Exif.CanonSi.ExposureCompensation 0x0006 Makernote Short 1 0
Exif.CanonSi.WhiteBalance 0x0007 Makernote Short 1 0
Exif.CanonSi.SlowShutter 0x0008 Makernote Short 1 0
Exif.CanonSi.Sequence 0x0009 Makernote Short 1 0
Exif.CanonSi.0x000a 0x000a Makernote Short 1 6
Exif.CanonSi.OpticalZoomCode 0x000a Makernote Short 1 6
Exif.CanonSi.0x000b 0x000b Makernote Short 1 0
Exif.CanonSi.CameraTemperature 0x000c Makernote Short 1 0
Exif.CanonSi.FlashGuideNumber 0x000d Makernote Short 1 0
Exif.CanonSi.AFPointUsed 0x000e Makernote Short 1 12290
Exif.CanonSi.FlashBias 0x000f Makernote Short 1 0
Exif.CanonSi.AutoExposureBracketing 0x0010 Makernote Short 1 0
Exif.CanonSi.0x0011 0x0011 Makernote Short 1 0
Exif.CanonSi.0x0012 0x0012 Makernote Short 1 1
Exif.CanonSi.AEBBracketValue 0x0011 Makernote Short 1 0
Exif.CanonSi.ControlMode 0x0012 Makernote Short 1 1
Exif.CanonSi.SubjectDistance 0x0013 Makernote Short 1 782
Exif.CanonSi.0x0014 0x0014 Makernote Short 1 0
Exif.CanonSi.ApertureValue 0x0015 Makernote Short 1 149
Expand Down Expand Up @@ -490,26 +490,26 @@ Exif.CanonCs.ZoomTargetWidth 0x0025 Makernote Short 1
Exif.CanonCs.0x0026 0x0026 Makernote Short 1 0
Exif.CanonCs.SpotMeteringMode 0x0027 Makernote Short 1 1
Exif.Canon.FocalLength 0x0002 Makernote Short 4 2 682 286 215
Exif.Canon.0x0003 0x0003 Makernote Short 4 0 0 0 0
Exif.Canon.CanonFlashInfo 0x0003 Makernote Short 4 0 0 0 0
Exif.CanonSi.0x0000 0x0000 Makernote Short 1 54
Exif.CanonSi.AutoISO 0x0001 Makernote Short 1 0
Exif.CanonSi.ISOSpeed 0x0002 Makernote Short 1 160
Exif.CanonSi.MeasuredEV 0x0003 Makernote Short 1 276
Exif.CanonSi.TargetAperture 0x0004 Makernote Short 1 149
Exif.CanonSi.TargetShutterSpeed 0x0005 Makernote Short 1 287
Exif.CanonSi.0x0006 0x0006 Makernote Short 1 0
Exif.CanonSi.ExposureCompensation 0x0006 Makernote Short 1 0
Exif.CanonSi.WhiteBalance 0x0007 Makernote Short 1 0
Exif.CanonSi.SlowShutter 0x0008 Makernote Short 1 0
Exif.CanonSi.Sequence 0x0009 Makernote Short 1 0
Exif.CanonSi.0x000a 0x000a Makernote Short 1 6
Exif.CanonSi.OpticalZoomCode 0x000a Makernote Short 1 6
Exif.CanonSi.0x000b 0x000b Makernote Short 1 0
Exif.CanonSi.CameraTemperature 0x000c Makernote Short 1 0
Exif.CanonSi.FlashGuideNumber 0x000d Makernote Short 1 0
Exif.CanonSi.AFPointUsed 0x000e Makernote Short 1 12290
Exif.CanonSi.FlashBias 0x000f Makernote Short 1 0
Exif.CanonSi.AutoExposureBracketing 0x0010 Makernote Short 1 0
Exif.CanonSi.0x0011 0x0011 Makernote Short 1 0
Exif.CanonSi.0x0012 0x0012 Makernote Short 1 1
Exif.CanonSi.AEBBracketValue 0x0011 Makernote Short 1 0
Exif.CanonSi.ControlMode 0x0012 Makernote Short 1 1
Exif.CanonSi.SubjectDistance 0x0013 Makernote Short 1 782
Exif.CanonSi.0x0014 0x0014 Makernote Short 1 0
Exif.CanonSi.ApertureValue 0x0015 Makernote Short 1 149
Expand Down Expand Up @@ -620,26 +620,26 @@ Exif.CanonCs.ZoomTargetWidth 0x0025 Makernote Short 1
Exif.CanonCs.0x0026 0x0026 Makernote Short 1 0
Exif.CanonCs.SpotMeteringMode 0x0027 Makernote Short 1 1
Exif.Canon.FocalLength 0x0002 Makernote Short 4 2 682 286 215
Exif.Canon.0x0003 0x0003 Makernote Short 4 0 0 0 0
Exif.Canon.CanonFlashInfo 0x0003 Makernote Short 4 0 0 0 0
Exif.CanonSi.0x0000 0x0000 Makernote Short 1 54
Exif.CanonSi.AutoISO 0x0001 Makernote Short 1 0
Exif.CanonSi.ISOSpeed 0x0002 Makernote Short 1 160
Exif.CanonSi.MeasuredEV 0x0003 Makernote Short 1 276
Exif.CanonSi.TargetAperture 0x0004 Makernote Short 1 149
Exif.CanonSi.TargetShutterSpeed 0x0005 Makernote Short 1 287
Exif.CanonSi.0x0006 0x0006 Makernote Short 1 0
Exif.CanonSi.ExposureCompensation 0x0006 Makernote Short 1 0
Exif.CanonSi.WhiteBalance 0x0007 Makernote Short 1 0
Exif.CanonSi.SlowShutter 0x0008 Makernote Short 1 0
Exif.CanonSi.Sequence 0x0009 Makernote Short 1 0
Exif.CanonSi.0x000a 0x000a Makernote Short 1 6
Exif.CanonSi.OpticalZoomCode 0x000a Makernote Short 1 6
Exif.CanonSi.0x000b 0x000b Makernote Short 1 0
Exif.CanonSi.CameraTemperature 0x000c Makernote Short 1 0
Exif.CanonSi.FlashGuideNumber 0x000d Makernote Short 1 0
Exif.CanonSi.AFPointUsed 0x000e Makernote Short 1 12290
Exif.CanonSi.FlashBias 0x000f Makernote Short 1 0
Exif.CanonSi.AutoExposureBracketing 0x0010 Makernote Short 1 0
Exif.CanonSi.0x0011 0x0011 Makernote Short 1 0
Exif.CanonSi.0x0012 0x0012 Makernote Short 1 1
Exif.CanonSi.AEBBracketValue 0x0011 Makernote Short 1 0
Exif.CanonSi.ControlMode 0x0012 Makernote Short 1 1
Exif.CanonSi.SubjectDistance 0x0013 Makernote Short 1 782
Exif.CanonSi.0x0014 0x0014 Makernote Short 1 0
Exif.CanonSi.ApertureValue 0x0015 Makernote Short 1 149
Expand Down

0 comments on commit 2329306

Please sign in to comment.