summaryrefslogtreecommitdiff
path: root/vendor/github.com/dsoprea/go-iptc/standard.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/dsoprea/go-iptc/standard.go')
-rw-r--r--vendor/github.com/dsoprea/go-iptc/standard.go101
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
+}