diff options
Diffstat (limited to 'vendor/github.com/dsoprea/go-iptc/standard.go')
-rw-r--r-- | vendor/github.com/dsoprea/go-iptc/standard.go | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/vendor/github.com/dsoprea/go-iptc/standard.go b/vendor/github.com/dsoprea/go-iptc/standard.go new file mode 100644 index 000000000..307aa5a87 --- /dev/null +++ b/vendor/github.com/dsoprea/go-iptc/standard.go @@ -0,0 +1,101 @@ +package iptc + +import ( + "errors" +) + +// StreamTagInfo encapsulates the properties of each tag. +type StreamTagInfo struct { + // Description is the human-readable description of the tag. + Description string +} + +var ( + standardTags = map[StreamTagKey]StreamTagInfo{ + {1, 120}: {"ARM Identifier"}, + + {1, 122}: {"ARM Version"}, + {2, 0}: {"Record Version"}, + {2, 3}: {"Object Type Reference"}, + {2, 4}: {"Object Attribute Reference"}, + {2, 5}: {"Object Name"}, + {2, 7}: {"Edit Status"}, + {2, 8}: {"Editorial Update"}, + {2, 10}: {"Urgency"}, + {2, 12}: {"Subject Reference"}, + {2, 15}: {"Category"}, + {2, 20}: {"Supplemental Category"}, + {2, 22}: {"Fixture Identifier"}, + {2, 25}: {"Keywords"}, + {2, 26}: {"Content Location Code"}, + {2, 27}: {"Content Location Name"}, + {2, 30}: {"Release Date"}, + {2, 35}: {"Release Time"}, + {2, 37}: {"Expiration Date"}, + {2, 38}: {"Expiration Time"}, + {2, 40}: {"Special Instructions"}, + {2, 42}: {"Action Advised"}, + {2, 45}: {"Reference Service"}, + {2, 47}: {"Reference Date"}, + {2, 50}: {"Reference Number"}, + {2, 55}: {"Date Created"}, + {2, 60}: {"Time Created"}, + {2, 62}: {"Digital Creation Date"}, + {2, 63}: {"Digital Creation Time"}, + {2, 65}: {"Originating Program"}, + {2, 70}: {"Program Version"}, + {2, 75}: {"Object Cycle"}, + {2, 80}: {"By-line"}, + {2, 85}: {"By-line Title"}, + {2, 90}: {"City"}, + {2, 92}: {"Sublocation"}, + {2, 95}: {"Province/State"}, + {2, 100}: {"Country/Primary Location Code"}, + {2, 101}: {"Country/Primary Location Name"}, + {2, 103}: {"Original Transmission Reference"}, + {2, 105}: {"Headline"}, + {2, 110}: {"Credit"}, + {2, 115}: {"Source"}, + {2, 116}: {"Copyright Notice"}, + {2, 118}: {"Contact"}, + {2, 120}: {"Caption/Abstract"}, + {2, 122}: {"Writer/Editor"}, + {2, 125}: {"Rasterized Caption"}, + {2, 130}: {"Image Type"}, + {2, 131}: {"Image Orientation"}, + {2, 135}: {"Language Identifier"}, + {2, 150}: {"Audio Type"}, + {2, 151}: {"Audio Sampling Rate"}, + {2, 152}: {"Audio Sampling Resolution"}, + {2, 153}: {"Audio Duration"}, + {2, 154}: {"Audio Outcue"}, + {2, 200}: {"ObjectData Preview File Format"}, + {2, 201}: {"ObjectData Preview File Format Version"}, + {2, 202}: {"ObjectData Preview Data"}, + {7, 10}: {"Size Mode"}, + {7, 20}: {"Max Subfile Size"}, + {7, 90}: {"ObjectData Size Announced"}, + {7, 95}: {"Maximum ObjectData Size"}, + {8, 10}: {"Subfile"}, + {9, 10}: {"Confirmed ObjectData Size"}, + } +) + +var ( + // ErrTagNotStandard indicates that the given tag is not known among the + // documented standard set. + ErrTagNotStandard = errors.New("not a standard tag") +) + +// GetTagInfo return the info for the given tag. Returns ErrTagNotStandard if +// not known. +func GetTagInfo(recordNumber, datasetNumber int) (sti StreamTagInfo, err error) { + stk := StreamTagKey{uint8(recordNumber), uint8(datasetNumber)} + + sti, found := standardTags[stk] + if found == false { + return sti, ErrTagNotStandard + } + + return sti, nil +} |