Image-ExifTool
view release on metacpan or search on metacpan
lib/Image/ExifTool/Microsoft.pm view on Meta::CPAN
FlashModel => { },
LastKeywordIPTC => { List => 'Bag' },
LastKeywordXMP => { List => 'Bag' },
LensManufacturer => { },
LensModel => { Avoid => 1 },
Rating => {
Name => 'RatingPercent',
Notes => q{
XMP-xmp:Rating values of 1,2,3,4 and 5 stars correspond to RatingPercent
values of 1,25,50,75 and 99 respectively
},
},
CreatorAppId => { Name => 'CreatorAppID' },
CreatorOpenWithUIOptions => { },
ItemSubType => { },
);
# Microsoft Photo 1.1 schema properties (MP1 - written as 'prefix0' by MSPhoto) (ref PH)
%Image::ExifTool::Microsoft::MP1 = (
%Image::ExifTool::XMP::xmpTableDefaults,
GROUPS => { 0 => 'XMP', 1 => 'XMP-MP1', 2 => 'Image' },
NAMESPACE => 'MP1',
TABLE_DESC => 'XMP Microsoft Photo',
VARS => { ID_FMT => 'none' },
NOTES => q{
Microsoft Photo 1.1 schema XMP tags which have been observed.
},
PanoramicStitchCameraMotion => {
PrintConv => {
'RigidScale' => 'Rigid Scale',
'Affine' => 'Affine',
'3DRotation' => '3D Rotation',
'Homography' => 'Homography',
},
},
PanoramicStitchMapType => {
PrintConv => {
'Perspective' => 'Perspective',
'Horizontal-Cylindrical' => 'Horizontal Cylindrical',
'Horizontal-Spherical' => 'Horizontal Spherical',
'Vertical-Cylindrical' => 'Vertical Cylindrical',
'Vertical-Spherical' => 'Vertical Spherical',
},
},
PanoramicStitchPhi0 => { Writable => 'real' },
PanoramicStitchPhi1 => { Writable => 'real' },
PanoramicStitchTheta0 => { Writable => 'real' },
PanoramicStitchTheta1 => { Writable => 'real' },
WhiteBalance0 => { Writable => 'real' },
WhiteBalance1 => { Writable => 'real' },
WhiteBalance2 => { Writable => 'real' },
Brightness => { Avoid => 1 },
Contrast => { Avoid => 1 },
CameraModelID => { Avoid => 1 },
ExposureCompensation => { Avoid => 1 },
PipelineVersion => { },
StreamType => { },
);
# Microsoft Photo 1.2 schema properties (MP) (ref PH)
# (also ref http://msdn.microsoft.com/en-us/library/windows/desktop/ee719905(v=vs.85).aspx)
my %sRegions = (
STRUCT_NAME => 'Microsoft Regions',
NAMESPACE => 'MPReg',
NOTES => q{
Note that PersonLiveIdCID element is called PersonLiveCID according to the
Microsoft specification, but in practice their software actually writes
PersonLiveIdCID, so ExifTool uses this too.
},
Rectangle => { },
PersonDisplayName => { },
PersonEmailDigest => { },
PersonLiveIdCID => { }, # (see https://exiftool.org/forum/index.php?topic=4274.msg20368#msg20368)
PersonSourceID => { },
);
%Image::ExifTool::Microsoft::MP = (
%Image::ExifTool::XMP::xmpTableDefaults,
GROUPS => { 0 => 'XMP', 1 => 'XMP-MP', 2 => 'Image' },
NAMESPACE => 'MP',
TABLE_DESC => 'XMP Microsoft Photo',
VARS => { ID_FMT => 'none' },
NOTES => q{
Microsoft Photo 1.2 schema XMP tags which have been observed.
},
RegionInfo => {
Name => 'RegionInfoMP',
Struct => {
STRUCT_NAME => 'Microsoft RegionInfo',
NAMESPACE => 'MPRI',
Regions => { Struct => \%sRegions, List => 'Bag' },
DateRegionsValid => {
Writable => 'date',
Shift => 'Time',
Groups => { 2 => 'Time'},
PrintConv => '$self->ConvertDateTime($val)',
PrintConvInv => '$self->InverseDateTime($val,undef,1)',
},
},
},
# remove "MP" from tag name (was added only to avoid conflict with XMP-mwg-rs:RegionInfo)
RegionInfoRegions => { Flat => 1, Name => 'RegionInfoRegions' },
RegionInfoDateRegionsValid => { Flat => 1, Name => 'RegionInfoDateRegionsValid' },
# shorten flattened Regions tag names to make them easier to use
RegionInfoRegionsRectangle => { Flat => 1, Name => 'RegionRectangle' },
RegionInfoRegionsPersonDisplayName => { Flat => 1, Name => 'RegionPersonDisplayName' },
RegionInfoRegionsPersonEmailDigest => { Flat => 1, Name => 'RegionPersonEmailDigest' },
RegionInfoRegionsPersonLiveIdCID => { Flat => 1, Name => 'RegionPersonLiveIdCID' },
RegionInfoRegionsPersonSourceID => { Flat => 1, Name => 'RegionPersonSourceID' },
);
# Xtra tags written in MP4 files written by Microsoft Windows Media Player
# (ref http://msdn.microsoft.com/en-us/library/windows/desktop/dd562330(v=VS.85).aspx)
# Note: These tags are closely related to tags in Image::ExifTool::ASF::ExtendedDescr
# and Image::ExifTool::WTV::Metadata
%Image::ExifTool::Microsoft::Xtra = (
PROCESS_PROC => \&ProcessXtra,
WRITE_PROC => \&WriteXtra,
CHECK_PROC => \&CheckXtra,
WRITE_GROUP => 'Microsoft',
AVOID => 1,
GROUPS => { 0 => 'QuickTime', 2 => 'Video' },
VARS => { ID_FMT => 'none' },
NOTES => q{
Tags found in the Microsoft "Xtra" atom of QuickTime videos. Tag ID's are
not shown because some are unruly GUID's. Currently most of these tags are
not writable because the Microsoft documentation is poor and samples were
not available, but more tags may be made writable in the future if samples
are provided. Note that writable tags in this table are are flagged to
"Avoid", which means that other more common tags will be written instead if
possible unless the Microsoft group is specified explicitly.
},
Abstract => { },
AcquisitionTime => { Groups => { 2 => 'Time' } },
AcquisitionTimeDay => { Groups => { 2 => 'Time' } },
AcquisitionTimeMonth => { Groups => { 2 => 'Time' } },
AcquisitionTimeYear => { Groups => { 2 => 'Time' } },
AcquisitionTimeYearMonth => { Groups => { 2 => 'Time' } },
AcquisitionTimeYearMonthDay => { Groups => { 2 => 'Time' } },
AlbumArtistSortOrder => { },
AlbumID => { },
AlbumIDAlbumArtist => { },
AlbumTitleSortOrder => { },
AlternateSourceURL => { },
AudioBitrate => { },
AudioFormat => { },
Author => { Groups => { 2 => 'Author' } },
AuthorSortOrder => { },
AverageLevel => { },
Bitrate => { },
BuyNow => { },
BuyTickets => { },
CallLetters => { },
CameraManufacturer => { },
CameraModel => { },
CDTrackEnabled => { },
Channels => { },
chapterNum => { },
Comment => { },
ContentDistributorDuration => { },
Copyright => { Groups => { 2 => 'Author' } },
Count => { },
CurrentBitrate => { },
Description => { Writable => 'Unicode', Avoid => 1 },
DisplayArtist => { },
DLNAServerUDN => { },
DLNASourceURI => { },
DRMKeyID => { },
DRMIndividualizedVersion => { },
DTCPIPHost => { },
DTCPIPPort => { },
Duration => { },
DVDID => { },
lib/Image/ExifTool/Microsoft.pm view on Meta::CPAN
Sync07 => { },
Sync08 => { },
Sync09 => { },
Sync10 => { },
Sync11 => { },
Sync12 => { },
Sync13 => { },
Sync14 => { },
Sync15 => { },
Sync16 => { },
SyncOnly => { },
Temporary => { },
Title => { },
titleNum => { },
TitleSortOrder => { },
TotalDuration => { },
TrackingID => { },
UserCustom1 => { },
UserCustom2 => { },
UserEffectiveRating => { },
UserLastPlayedTime => { },
UserPlayCount => { },
UserPlaycountAfternoon => { },
UserPlaycountEvening => { },
UserPlaycountMorning => { },
UserPlaycountNight => { },
UserPlaycountWeekday => { },
UserPlaycountWeekend => { },
UserRating => { },
UserServiceRating => { },
VideoBitrate => { },
VideoFormat => { },
'WM/AlbumArtist' => { Name => 'AlbumArtist', Writable => 'Unicode' }, # (NC)
'WM/AlbumCoverURL' => { Name => 'AlbumCoverURL', Writable => 'Unicode' }, # (NC)
'WM/AlbumTitle' => { Name => 'AlbumTitle', Writable => 'Unicode' }, # (NC)
'WM/BeatsPerMinute' => 'BeatsPerMinute',
'WM/Category' => { Name => 'Category', Writable => 'Unicode', List => 1 },
'WM/Composer' => { Name => 'Composer', Writable => 'Unicode' }, # (NC)
'WM/Conductor' => { Name => 'Conductor', Writable => 'Unicode', List => 1 },
'WM/ContentDistributor' => { Name => 'ContentDistributor', Writable => 'Unicode' },
'WM/ContentDistributorType' => 'ContentDistributorType',
'WM/ContentGroupDescription'=> 'ContentGroupDescription',
'WM/Director' => { Name => 'Director', Writable => 'Unicode', List => 1 },
'WM/EncodingTime' => {
Name => 'EncodingTime',
Groups => { 2 => 'Time' },
Shift => 'Time',
Writable => 'date',
PrintConv => '$self->ConvertDateTime($val)',
PrintConvInv => '$self->InverseDateTime($val)',
},
'WM/Genre' => 'Genre',
'WM/GenreID' => 'GenreID',
'WM/InitialKey' => { Name => 'InitialKey', Writable => 'Unicode' },
'WM/Language' => 'Language',
'WM/Lyrics' => 'Lyrics',
'WM/MCDI' => 'MCDI',
'WM/MediaClassPrimaryID' => {
Name => 'MediaClassPrimaryID',
Writable => 'GUID',
PrintConv => { #http://msdn.microsoft.com/en-us/library/windows/desktop/dd757960(v=vs.85).aspx
'D1607DBC-E323-4BE2-86A1-48A42A28441E' => 'Music',
'DB9830BD-3AB3-4FAB-8A37-1A995F7FF74B' => 'Video',
'01CD0F29-DA4E-4157-897B-6275D50C4F11' => 'Audio (not music)',
'FCF24A76-9A57-4036-990D-E35DD8B244E1' => 'Other (not audio or video)',
},
},
'WM/MediaClassSecondaryID' => {
Name => 'MediaClassSecondaryID',
Writable => 'GUID',
PrintConv => { #http://msdn.microsoft.com/en-us/library/windows/desktop/dd757960(v=vs.85).aspx
'E0236BEB-C281-4EDE-A36D-7AF76A3D45B5' => 'Audio Book',
'3A172A13-2BD9-4831-835B-114F6A95943F' => 'Spoken Word',
'6677DB9B-E5A0-4063-A1AD-ACEB52840CF1' => 'Audio News',
'1B824A67-3F80-4E3E-9CDE-F7361B0F5F1B' => 'Talk Show',
'1FE2E091-4E1E-40CE-B22D-348C732E0B10' => 'Video News',
'D6DE1D88-C77C-4593-BFBC-9C61E8C373E3' => 'Web-based Video',
'00033368-5009-4AC3-A820-5D2D09A4E7C1' => 'Sound Clip from Game',
'F24FF731-96FC-4D0F-A2F5-5A3483682B1A' => 'Song from Game',
'E3E689E2-BA8C-4330-96DF-A0EEEFFA6876' => 'Music Video',
'B76628F4-300D-443D-9CB5-01C285109DAF' => 'Home Movie',
'A9B87FC9-BD47-4BF0-AC4F-655B89F7D868' => 'Feature Film',
'BA7F258A-62F7-47A9-B21F-4651C42A000E' => 'TV Show',
'44051B5B-B103-4B5C-92AB-93060A9463F0' => 'Corporate Video',
'0B710218-8C0C-475E-AF73-4C41C0C8F8CE' => 'Home Video from Pictures',
'00000000-0000-0000-0000-000000000000' => 'Unknown Content', #PH
},
},
'WM/MediaOriginalBroadcastDateTime' => {
Name => 'MediaOriginalBroadcastDateTime',
Groups => { 2 => 'Time' },
PrintConv => '$self->ConvertDateTime($val)',
},
'WM/MediaOriginalChannel' => 'MediaOriginalChannel',
'WM/MediaStationName' => 'MediaStationName',
'WM/Mood' => { Name => 'Mood', Writable => 'Unicode' },
'WM/OriginalAlbumTitle' => { Name => 'OriginalAlbumTitle', Writable => 'Unicode' }, # (NC)
'WM/OriginalArtist' => { Name => 'OriginalArtist', Writable => 'Unicode' }, # (NC)
'WM/OriginalLyricist' => { Name => 'OriginalLyricist', Writable => 'Unicode' }, # (NC)
'WM/ParentalRating' => { Name => 'ParentalRating', Writable => 'Unicode' },
'WM/PartOfSet' => 'PartOfSet',
'WM/Period' => { Name => 'Period', Writable => 'Unicode' },
'WM/Producer' => { Name => 'Producer', Writable => 'Unicode', List => 1 },
'WM/ProtectionType' => 'ProtectionType',
'WM/Provider' => { Name => 'Provider', Writable => 'Unicode' }, # (NC)
'WM/ProviderRating' => 'ProviderRating',
'WM/ProviderStyle' => 'ProviderStyle',
'WM/Publisher' => { Name => 'Publisher', Writable => 'Unicode' }, # (multiple entries separated by semicolon)
'WM/SharedUserRating' => { Name => 'SharedUserRating', Writable => 'int64u' },
'WM/SubscriptionContentID' => 'SubscriptionContentID',
'WM/SubTitle' => { Name => 'Subtitle', Writable => 'Unicode' },
'WM/SubTitleDescription' => 'SubtitleDescription',
'WM/TrackNumber' => 'TrackNumber',
'WM/UniqueFileIdentifier' => 'UniqueFileIdentifier',
'WM/VideoFrameRate' => 'VideoFrameRate',
'WM/VideoHeight' => 'VideoHeight',
'WM/VideoWidth' => 'VideoWidth',
'WM/WMCollectionGroupID' => 'WMCollectionGroupID',
'WM/WMCollectionID' => 'WMCollectionID',
'WM/WMContentID' => 'WMContentID',
'WM/WMShadowFileSourceDRMType' => 'WMShadowFileSourceDRMType',
'WM/WMShadowFileSourceFileType' => 'WMShadowFileSourceFileType',
'WM/Writer' => { Name => 'Writer', Groups => { 2 => 'Author' }, Writable => 'Unicode' }, # (NC)
'WM/Year' => { Name => 'Year', Groups => { 2 => 'Time' } },
'WM/PromotionURL' => { Name => 'PromotionURL',Writable => 'Unicode' },
'WM/AuthorURL' => { Name => 'AuthorURL', Groups => { 2 => 'Author' }, Writable => 'Unicode' },
'WM/EncodedBy', => { Name => 'EncodedBy', Writable => 'Unicode' },
# I can't find documentation for the following tags in videos,
# but the tag ID's correspond to Microsoft property GUID+ID's
# References:
( run in 0.528 second using v1.01-cache-2.11-cpan-d8267643d1d )