qt

package
v0.0.0-...-685bba1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2024 License: BSD-3-Clause, Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package qt implements metadata found in Apple Quicktime (MOV) files.

Index

Constants

This section is empty.

Variables

View Source
var (
	NsQuicktime = xmp.NewNamespace("qt", "http://ns.apple.com/quicktime/1.0/", NewModel)
)

Functions

func NewModel

func NewModel(name string) xmp.Model

Types

type Bool

type Bool int // 0 no, 1 yes

func (Bool) Value

func (b Bool) Value() bool

type ContentRating

type ContentRating struct {
	Standard string `xmp:"qt:Standard,attr"`
	Rating   string `xmp:"qt:Rating,attr"`
	Score    string `xmp:"qt:Score,attr"`
	Reasons  string `xmp:"qt:Reasons,attr"`
}

func (ContentRating) IsZero

func (x ContentRating) IsZero() bool

func (ContentRating) MarshalText

func (x ContentRating) MarshalText() ([]byte, error)

func (ContentRating) String

func (x ContentRating) String() string

func (*ContentRating) UnmarshalText

func (x *ContentRating) UnmarshalText(data []byte) error

type Location

type Location struct {
	Body      string       `xmp:"qt:Body,attr"`
	Date      xmp.Date     `xmp:"qt:Date,attr"`
	Longitude xmp.GPSCoord `xmp:"qt:Longitude,attr"`
	Latitude  xmp.GPSCoord `xmp:"qt:Latitude,attr"`
	Altitude  float64      `xmp:"qt:Altitude,attr"`
	Name      string       `xmp:"qt:Name,attr"`
	Note      string       `xmp:"qt:Note,attr"`
	Role      LocationRole `xmp:"qt:Role,attr"`
}

func (*Location) UnmarshalText

func (x *Location) UnmarshalText(data []byte) error

type LocationRole

type LocationRole int
const (
	LocationRoleShooting  LocationRole = 0
	LocationRoleReal      LocationRole = 1
	LocationRoleFictional LocationRole = 2
)

type MultilangArray

type MultilangArray xmp.AltString

defined to overwrite UnmarshalText, otherwise similar to xmp.AltString

func (MultilangArray) MarshalXMP

func (x MultilangArray) MarshalXMP(e *xmp.Encoder, node *xmp.Node, m xmp.Model) error

func (*MultilangArray) UnmarshalText

func (x *MultilangArray) UnmarshalText(data []byte) error

func (*MultilangArray) UnmarshalXMP

func (x *MultilangArray) UnmarshalXMP(d *xmp.Decoder, node *xmp.Node, m xmp.Model) error

type Point

type Point struct {
	X int
	Y int
}

func (Point) IsZero

func (x Point) IsZero() bool

func (Point) MarshalText

func (x Point) MarshalText() ([]byte, error)

func (Point) String

func (x Point) String() string

func (*Point) UnmarshalText

func (x *Point) UnmarshalText(data []byte) error

type QtInfo

type QtInfo struct {
	Udta    *QtUserdata `qt:"-" xmp:"qt:udta"`
	Mdta    *QtMetadata `qt:"-" xmp:"qt:mdta"`
	Player  *QtPlayer   `qt:"-" xmp:"qt:player"`
	ProApps *QtProApps  `qt:"-" xmp:"qt:proapps"`

	// external structs
	IXML *ixml.IXML    `qt:"-" xmp:"-"`
	XMP  *xmp.Document `qt:"XMP_" xmp:"-"`

	// unknown 3rd party tags
	Extension xmp.TagList `qt:",any" xmp:"qt:extension"`
}

func (*QtInfo) Can

func (m *QtInfo) Can(nsName string) bool

func (*QtInfo) CanTag

func (x *QtInfo) CanTag(tag string) bool

func (*QtInfo) GetTag

func (x *QtInfo) GetTag(tag string) (string, error)

func (*QtInfo) ListTags

func (x *QtInfo) ListTags() (xmp.TagList, error)

func (*QtInfo) Namespaces

func (m *QtInfo) Namespaces() xmp.NamespaceList

func (*QtInfo) SetTag

func (x *QtInfo) SetTag(tag, value string) error

func (*QtInfo) SyncFromXMP

func (x *QtInfo) SyncFromXMP(d *xmp.Document) error

func (*QtInfo) SyncModel

func (x *QtInfo) SyncModel(d *xmp.Document) error

func (QtInfo) SyncToXMP

func (x QtInfo) SyncToXMP(d *xmp.Document) error

type QtMetadata

type QtMetadata struct {
	// official metadata keys as defined in MacOS 10.11 SDK
	Album                  string         `qt:"com.apple.quicktime.album"                                 qt:"©alb"      xmp:"qt:Album"`
	Arranger               string         `qt:"com.apple.quicktime.arranger"                              qt:"©arg"      xmp:"qt:Arranger"`
	Artist                 string         `qt:"com.apple.quicktime.artist"                                qt:"albr"      xmp:"qt:Artist"`
	Artwork                string         `qt:"com.apple.quicktime.artwork"                               qt:"covr"      xmp:"qt:Artwork"`
	Author                 string         `qt:"com.apple.quicktime.author"                                qt:"©aut"      xmp:"qt:Author"`
	CameraFrameReadoutTime string         `qt:"com.apple.quicktime.camera.framereadouttimeinmicroseconds" qt:"-"         xmp:"qt:CameraFrameReadoutTime"`
	CameraIdentifier       string         `qt:"com.apple.quicktime.camera.identifier"                     qt:"cmid"      xmp:"qt:CameraIdentifier"`
	CollectionUser         string         `qt:"com.apple.quicktime.collection.user"                       qt:"coll"      xmp:"qt:CollectionUser"`
	Comment                string         `qt:"com.apple.quicktime.comment"                               qt:"©cmt"      xmp:"qt:Comment"`
	Composer               string         `qt:"com.apple.quicktime.composer"                              qt:"©wrt"      xmp:"qt:Composer"`
	ContentIdentifier      string         `qt:"com.apple.quicktime.content.identifier"                    qt:"cnID"      xmp:"qt:ContentIdentifier"`
	Copyright              string         `qt:"com.apple.quicktime.copyright"                             qt:"cprt"      xmp:"qt:Copyright"`
	CreationDate           xmp.Date       `qt:"com.apple.quicktime.creationdate"                          qt:"date"      xmp:"qt:CreationDate"`
	Credits                string         `qt:"com.apple.quicktime.credits"                               qt:"©src"      xmp:"qt:Credits"`
	Description            string         `qt:"com.apple.quicktime.description"                           qt:"©des"      xmp:"qt:Description"`
	DirectionFacing        float64        `qt:"com.apple.quicktime.direction.facing"                      qt:"-"         xmp:"qt:DirectionFacing"`
	DirectionMotion        float64        `qt:"com.apple.quicktime.direction.motion"                      qt:"-"         xmp:"qt:DirectionMotion"`
	Director               string         `qt:"com.apple.quicktime.director"                              qt:"©dir"      xmp:"qt:Director"`
	DisplayName            string         `qt:"com.apple.quicktime.displayname"                           qt:"name"      xmp:"qt:DisplayName"`
	EncodedBy              string         `qt:"com.apple.quicktime.encodedby"                             qt:"©enc"      xmp:"qt:EncodedBy"`
	Genre                  string         `qt:"com.apple.quicktime.genre"                                 qt:"©gen"      xmp:"qt:Genre"`
	Information            string         `qt:"com.apple.quicktime.information"                           qt:"©inf"      xmp:"qt:Information"`
	Keywords               xmp.StringList `qt:"com.apple.quicktime.keywords"                              qt:"©key"      xmp:"qt:Keywords"`
	LocationBody           string         `qt:"com.apple.quicktime.location.body"                         qt:"-"         xmp:"-"`
	LocationDate           xmp.Date       `qt:"com.apple.quicktime.location.date"                         qt:"-"         xmp:"-"`
	LocationISO6709        string         `qt:"com.apple.quicktime.location.iso6709"                      qt:"©xyz"      xmp:"-"`
	LocationName           string         `qt:"com.apple.quicktime.location.name"                         qt:"-"         xmp:"-"`
	LocationNote           string         `qt:"com.apple.quicktime.location.note"                         qt:"-"         xmp:"-"`
	LocationRole           LocationRole   `qt:"com.apple.quicktime.location.role"                         qt:"-"         xmp:"-"`
	Make                   string         `qt:"com.apple.quicktime.make"                                  qt:"©mak"      xmp:"qt:Make"`
	Model                  string         `qt:"com.apple.quicktime.model"                                 qt:"©mod"      xmp:"qt:Model"`
	OriginalArtist         string         `qt:"com.apple.quicktime.originalartist"                        qt:"©ope"      xmp:"qt:OriginalArtist"`
	Performer              string         `qt:"com.apple.quicktime.performer"                             qt:"©prf"      xmp:"qt:Performer"`
	PhonogramRights        string         `qt:"com.apple.quicktime.phonogramrights"                       qt:"©phg"      xmp:"qt:PhonogramRights"`
	Producer               string         `qt:"com.apple.quicktime.producer"                              qt:"©prd"      xmp:"qt:Producer"`
	Publisher              string         `qt:"com.apple.quicktime.publisher"                             qt:"©pub"      xmp:"qt:Publisher"`
	USRating               float64        `qt:"com.apple.quicktime.rating.user"                           qt:"rtng"      xmp:"qt:USRating"`
	Software               string         `qt:"com.apple.quicktime.software"                              qt:"©swr"      xmp:"qt:Software"`
	Title                  string         `qt:"com.apple.quicktime.title"                                 qt:"©nam"      xmp:"qt:Title"`
	Year                   int            `qt:"com.apple.quicktime.year"                                  qt:"yrrc"      xmp:"qt:Year"`

	// more tags not captured above
	Version                  string               `qt:"com.apple.quicktime.version"                                       qt:"VERS" xmp:"qt:Version"`
	PreferredAffineTransform string               `qt:"com.apple.quicktime.preferred-affine-transform"                    qt:"-"    xmp:"qt:PreferredAffineTransform"`
	VideoOrientation         tiff.OrientationType `qt:"com.apple.quicktime.video-orientation"                             qt:"-"    xmp:"qt:VideoOrientation"`
	WindowLocation           Point                `qt:"com.apple.quicktime.windowlocation"                                qt:"WLOC" xmp:"qt:WindowLocation"`
	CoreMotion               string               `qt:"com.apple.quicktime.core-motion"                                   qt:"-"    xmp:"qt:CoreMotion"`
	CameraDebugInfo          string               `qt:"com.apple.quicktime.camera-debug-info"                             qt:"-"    xmp:"qt:CameraDebugInfo"`
	IsMontage                string               `qt:"com.apple.quicktime.is-montage"                                    qt:"-"    xmp:"qt:IsMontage"`
	PixelDensity             string               `qt:"com.apple.quicktime.pixeldensity"                                  qt:"-"    xmp:"qt:PixelDensity"`
	DetectedFace             string               `qt:"com.apple.quicktime.detected-face"                                 qt:"-"    xmp:"qt:DetectedFace"`
	HasEAN13                 Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.EAN13"          qt:"-"    xmp:"qt:HasEAN13"`
	HasEAN8                  Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.EAN8"           qt:"-"    xmp:"qt:HasEAN8"`
	HasUPCE                  Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.UPCE"           qt:"-"    xmp:"qt:HasUPCE"`
	HasCode39                Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.Code39"         qt:"-"    xmp:"qt:HasCode39"`
	HasCode39Checksum        Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.Code39Checksum" qt:"-"    xmp:"qt:HasCode39Checksum"`
	HasCode93                Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.Code93"         qt:"-"    xmp:"qt:HasCode93"`
	HasCode128               Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.Code128"        qt:"-"    xmp:"qt:HasCode128"`
	HasI2of5                 Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.I2of5"          qt:"-"    xmp:"qt:HasI2of5"`
	HasITF14                 Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.ITF14"          qt:"-"    xmp:"qt:HasITF14"`
	HasDataMatrix            Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.DataMatrix"     qt:"-"    xmp:"qt:HasDataMatrix"`
	HasQR                    Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.QR"             qt:"-"    xmp:"qt:HasQR"`
	HasAztec                 Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.Aztec"          qt:"-"    xmp:"qt:HasAztec"`
	HasPDF417                Bool                 `qt:"com.apple.quicktime.detected-machine-readable-code.PDF417"         qt:"-"    xmp:"qt:HasPDF417"`
	Extension                xmp.TagList          `qt:",any"                                                              qt:",any" xmp:"qt:extension"`

	// composite structs
	Location *Location `qt:"-"  qt:"-"  xmp:"qt:Location"`
}

General Quicktime Metadata keys (from MacOS CoreMedia Framework headers and libs)

VideoOrientation: like TIFF/EXIF Orientation property AffineTransform: used in place of a track display matrix, 3x3 float matrix in row major order Direction: degree offset from magnetic north

func (*QtMetadata) Can

func (m *QtMetadata) Can(nsName string) bool

func (*QtMetadata) CanTag

func (x *QtMetadata) CanTag(tag string) bool

func (*QtMetadata) GetTag

func (x *QtMetadata) GetTag(tag string) (string, error)

func (*QtMetadata) Namespaces

func (m *QtMetadata) Namespaces() xmp.NamespaceList

func (*QtMetadata) SetTag

func (x *QtMetadata) SetTag(tag, value string) error

func (*QtMetadata) SyncFromXMP

func (x *QtMetadata) SyncFromXMP(d *xmp.Document) error

func (*QtMetadata) SyncModel

func (x *QtMetadata) SyncModel(d *xmp.Document) error

func (*QtMetadata) SyncToXMP

func (x *QtMetadata) SyncToXMP(d *xmp.Document) error

type QtPlayer

type QtPlayer struct {
	AudioBalance     float32 `qt:"com.apple.quicktime.player.movie.audio.balance"     xmp:"qt:AudioBalance"`
	AudioBass        float32 `qt:"com.apple.quicktime.player.movie.audio.bass"        xmp:"qt:AudioBass"`
	AudioGain        float32 `qt:"com.apple.quicktime.player.movie.audio.gain"        xmp:"qt:AudioGain"`
	AudioMute        Bool    `qt:"com.apple.quicktime.player.movie.audio.mute"        xmp:"qt:AudioMute"`
	AudioPitchshift  float32 `qt:"com.apple.quicktime.player.movie.audio.pitchshift"  xmp:"qt:AudioPitchshift"`
	AudioTreble      float32 `qt:"com.apple.quicktime.player.movie.audio.treble"      xmp:"qt:AudioTreble"`
	VisualBrightness float32 `qt:"com.apple.quicktime.player.movie.visual.brightness" xmp:"qt:VisualBrightness"`
	VisualColor      float32 `qt:"com.apple.quicktime.player.movie.visual.color"      xmp:"qt:VisualColor"`
	VisualContrast   float32 `qt:"com.apple.quicktime.player.movie.visual.contrast"   xmp:"qt:VisualContrast"`
	VisualTint       float32 `qt:"com.apple.quicktime.player.movie.visual.tint"       xmp:"qt:VisualTint"`
	Version          string  `qt:"com.apple.quicktime.player.version"                 xmp:"qt:Version"`
}

func (*QtPlayer) Can

func (m *QtPlayer) Can(nsName string) bool

func (*QtPlayer) CanTag

func (x *QtPlayer) CanTag(tag string) bool

func (*QtPlayer) GetTag

func (x *QtPlayer) GetTag(tag string) (string, error)

func (*QtPlayer) Namespaces

func (m *QtPlayer) Namespaces() xmp.NamespaceList

func (*QtPlayer) SetTag

func (x *QtPlayer) SetTag(tag, value string) error

func (*QtPlayer) SyncFromXMP

func (x *QtPlayer) SyncFromXMP(d *xmp.Document) error

func (*QtPlayer) SyncModel

func (x *QtPlayer) SyncModel(d *xmp.Document) error

func (*QtPlayer) SyncToXMP

func (x *QtPlayer) SyncToXMP(d *xmp.Document) error

type QtProApps

type QtProApps struct {
	ClipID                       string   `qt:"com.apple.proapps.clipID"                                xmp:"qt:ClipID"`
	OriginalFormat               string   `qt:"com.apple.proapps.originalFormat"                        xmp:"qt:OriginalFormat"` // AVC-Intra 4:2:2, Apple XDCAM HD422 1080i50 (50 Mb/s CBR)
	CustomColor                  string   `qt:"com.apple.proapps.customcolor"                           xmp:"qt:CustomColor"`    // com.sony.s-log3-cine
	CameraName                   string   `qt:"com.apple.proapps.cameraName"                            xmp:"qt:CameraName"`
	MIOCameraName                string   `qt:"com.apple.proapps.mio.cameraName"                        xmp:"qt:MIOCameraName"`
	Scene                        string   `qt:"com.apple.proapps.scene"                                 xmp:"qt:Scene"`
	Shot                         string   `qt:"com.apple.proapps.shot"                                  xmp:"qt:Shot"`
	Angle                        string   `qt:"com.apple.proapps.angle"                                 xmp:"qt:Angle"`
	LogNote                      string   `qt:"com.apple.proapps.logNote"                               xmp:"qt:LogNote"`
	LastUpdateDate               xmp.Date `qt:"com.apple.proapps.lastupdatedate"                        xmp:"qt:Lastupdatedate"`        // 2016-07-21 08:23:35 +0000
	IngestDateDescription        string   `qt:"com.apple.proapps.ingestDate.description"                xmp:"qt:IngestDateDescription"` // 2016-07-25 12:55:32 +0200
	StartTimeCodeFrameCount      int64    `qt:"com.apple.proapps.avchd.startTimeCodeFrameCount"         xmp:"qt:StartTimeCodeFrameCount"`
	DropFrame                    Bool     `qt:"com.apple.proapps.avchd.dropFrame"                       xmp:"qt:DropFrame"`
	VideoFrameDuration           int64    `qt:"com.apple.proapps.avchd.videoFrameDuration"              xmp:"qt:VideoFrameDuration"`
	Category                     string   `qt:"com.apple.proapps.share.category"                        xmp:"qt:Category"`
	ShareID                      string   `qt:"com.apple.proapps.share.id"                              xmp:"qt:ShareID"`
	EpisodeID                    string   `qt:"com.apple.proapps.share.episodeID"                       xmp:"qt:EpisodeID"`
	EpisodeNumber                string   `qt:"com.apple.proapps.share.episodeNumber"                   xmp:"qt:EpisodeNumber"`
	MediaKind                    string   `qt:"com.apple.proapps.share.mediaKind"                       xmp:"qt:MediaKind"`
	Screenwriters                string   `qt:"com.apple.proapps.share.screenWriter"                    xmp:"qt:Screenwriters"`
	SeasonNumber                 string   `qt:"com.apple.proapps.share.seasonNumber"                    xmp:"qt:SeasonNumber"`
	TVNetwork                    string   `qt:"com.apple.proapps.share.tvNetwork"                       xmp:"qt:TVNetwork"`
	Reel                         string   `qt:"com.apple.proapps.reel"                                  xmp:"qt:Reel"`
	CameraID                     string   `qt:"com.apple.proapps.cameraID"                              xmp:"qt:CameraID"`
	CameraManufacturer           string   `qt:"com.apple.proapps.manufacturer"                          xmp:"qt:CameraManufacturer"`
	CameraModel                  string   `qt:"com.apple.proapps.modelname"                             xmp:"qt:CameraModel"`
	CameraSerialNumber           string   `qt:"com.apple.proapps.serialno"                              xmp:"qt:CameraSerialNumber"`
	ClipFileName                 string   `qt:"com.apple.proapps.clipFileName"                          xmp:"qt:ClipFileName"`          // : A001C001_160721_D620
	AscCDL                       string   `qt:"com.apple.proapps.color.asc-cdl"                         xmp:"qt:AscCDL"`                // :
	IsGood                       string   `qt:"com.apple.proapps.isGood"                                xmp:"qt:IsGood"`                // : 0
	DataSize                     string   `qt:"com.apple.proapps.dataSize"                              xmp:"qt:DataSize"`              // : A�c?,
	DisplayFormat                string   `qt:"com.apple.proapps.displayFormat"                         xmp:"qt:DisplayFormat"`         // : 4k
	ShootingRate                 string   `qt:"com.apple.proapps.shootingRate"                          xmp:"qt:ShootingRate"`          // : @9
	VideoBitrate                 string   `qt:"com.apple.proapps.videoBitrate"                          xmp:"qt:VideoBitrate"`          // : 0
	Pulldown                     string   `qt:"com.apple.proapps.pulldown"                              xmp:"qt:Pulldown"`              // : 1
	MediaRate                    string   `qt:"com.apple.proapps.mediaRate"                             xmp:"qt:MediaRate"`             // : @9
	TimecodeFormat               string   `qt:"com.apple.proapps.timecodeFormat"                        xmp:"qt:TimecodeFormat"`        // : 2
	NumberOfAudioChannels        string   `qt:"com.apple.proapps.numberOfAudioChannels"                 xmp:"qt:NumberOfAudioChannels"` // : 0
	SampleRate                   string   `qt:"com.apple.proapps.sampleRate"                            xmp:"qt:SampleRate"`            // : 0
	BitsPerSample                string   `qt:"com.apple.proapps.bitsPerSample"                         xmp:"qt:BitsPerSample"`         // : 0
	StudioAlphaHandling          string   `qt:"com.apple.proapps.studio.alphaHandling"                  xmp:"qt:StudioAlphaHandling"`
	StudioCameraAngle            string   `qt:"com.apple.proapps.studio.angle"                          xmp:"qt:StudioCameraAngle"`
	StudioAnamorphicOverride     string   `qt:"com.apple.proapps.studio.metadataAnamorphicType"         xmp:"qt:StudioAnamorphicOverride"`
	StudioDeinterlace            string   `qt:"com.apple.proapps.studio.metadataDeinterlaceType"        xmp:"qt:StudioDeinterlace"`
	StudioFieldDominanceOverride string   `qt:"com.apple.proapps.studio.metadataFieldDominanceOverride" xmp:"qt:StudioFieldDominanceOverride"`
	StudioLocation               string   `qt:"com.apple.proapps.studio.metadataLocation"               xmp:"qt:StudioLocation"`
	StudioReel                   string   `qt:"com.apple.proapps.studio.reel"                           xmp:"qt:StudioReel"`
	StudioScene                  string   `qt:"com.apple.proapps.studio.scene"                          xmp:"qt:StudioScene"`
	StudioShot                   string   `qt:"com.apple.proapps.studio.shot"                           xmp:"qt:StudioTake"`
}

func (*QtProApps) Can

func (m *QtProApps) Can(nsName string) bool

func (*QtProApps) CanTag

func (x *QtProApps) CanTag(tag string) bool

func (*QtProApps) GetTag

func (x *QtProApps) GetTag(tag string) (string, error)

func (*QtProApps) Namespaces

func (m *QtProApps) Namespaces() xmp.NamespaceList

func (*QtProApps) SetTag

func (x *QtProApps) SetTag(tag, value string) error

func (*QtProApps) SyncFromXMP

func (x *QtProApps) SyncFromXMP(d *xmp.Document) error

func (*QtProApps) SyncModel

func (x *QtProApps) SyncModel(d *xmp.Document) error

func (*QtProApps) SyncToXMP

func (x *QtProApps) SyncToXMP(d *xmp.Document) error

type QtUserdata

type QtUserdata struct {
	// Quicktime tags exported on MacOS 10.11 SDK (some also used by iTunes)
	Album                string    `qt:"©alb" xmp:"qt:Album"`                // QT, iTunes
	Arranger             string    `qt:"©arg" xmp:"qt:Arranger"`             // QT, iTunes
	Artist               string    `qt:"©ART" xmp:"qt:Artist"`               // QT, iTunes
	Author               string    `qt:"©aut" xmp:"qt:Author"`               // QT, iTunes
	Chapter              string    `qt:"©chp" xmp:"qt:Chapter"`              // QT-only
	Comment              string    `qt:"©cmt" xmp:"qt:Comment"`              // QT, iTunes
	Composer             string    `qt:"©com" xmp:"qt:Composer"`             // QT-only
	Copyright            string    `qt:"©cpy" xmp:"qt:Copyright"`            // QT-only
	ReleaseDate          xmp.Date  `qt:"©day" xmp:"qt:ReleaseDate"`          // QT, iTunes
	Description          string    `qt:"©des" xmp:"qt:Description"`          // QT, iTunes
	Director             string    `qt:"©dir" xmp:"qt:Director"`             // QT, iTunes
	Disclaimer           string    `qt:"©dis" xmp:"qt:Disclaimer"`           // QT-only
	EncodedBy            string    `qt:"©enc" xmp:"qt:EncodedBy"`            // QT, iTunes
	Title                string    `qt:"©nam" xmp:"qt:Title"`                // QT, iTunes
	GenreName            string    `qt:"©gen" xmp:"qt:GenreName"`            // QT, iTunes
	HostComputer         string    `qt:"©hst" xmp:"qt:HostComputer"`         // QT-only
	Information          string    `qt:"©inf" xmp:"qt:Information"`          // QT-only
	Keywords             string    `qt:"©key" xmp:"qt:Keywords"`             // QT-only
	FileCreator          string    `qt:"©mak" xmp:"qt:FileCreator"`          // QT, iTunes (RecordCompany)
	FileCreatorModel     string    `qt:"©mod" xmp:"qt:FileCreatorModel"`     // QT-only
	OriginalArtist       string    `qt:"©ope" xmp:"qt:OriginalArtist"`       // iTunes
	FileFormat           string    `qt:"©fmt" xmp:"qt:FileFormat"`           // QT-only
	Credits              string    `qt:"©src" xmp:"qt:Credits"`              // QT, iTunes
	Performer            string    `qt:"©prf" xmp:"qt:Performer"`            // QT, iTunes
	Producer             string    `qt:"©prd" xmp:"qt:Producer"`             // QT, iTunes
	Publisher            string    `qt:"©pub" xmp:"qt:Publisher"`            // QT, iTunes
	Product              string    `qt:"©PRD" xmp:"qt:Product"`              // QT-only
	FileCreatorSoftware  string    `qt:"©swr" xmp:"qt:FileCreatorSoftware"`  // QT-only
	PlaybackRequirements string    `qt:"©req" xmp:"qt:PlaybackRequirements"` // QT-only
	Track                string    `qt:"©trk" xmp:"qt:Track"`                // QT-only
	CopyWarning          string    `qt:"©wrn" xmp:"qt:CopyWarning"`          // QT-only
	Writer               string    `qt:"©wrt" xmp:"qt:Writer"`               // QT, iTunes (Composer)
	Url                  xmp.Url   `qt:"©url" xmp:"qt:Url"`                  // QT, iTunes (Online Extras)
	LocationGPS          *Location `qt:"©xyz" xmp:"qt:LocationGPS"`          // GPS latitude+longitude+altitude
	TrackName            string    `qt:"tnam" xmp:"qt:TrackName"`            // QT-only
	PhonogramRights      string    `qt:"©phg" xmp:"qt:PhonogramRights"`      // QT, iTunes
	DisplayName          string    `qt:"name" xmp:"qt:DisplayName"`          // QT-only
	TaggedCharacteristic string    `qt:"tagc" xmp:"qt:TaggedCharacteristic"` // QT, ISO

	// QT only (administrative metadata)
	AudioBookReleaseDate xmp.Date `qt:"rldt" xmp:"qt:AudioBookReleaseDate"`
	ClipFileName         string   `qt:"clfn" xmp:"qt:ClipFileName"`
	ClipID               string   `qt:"clid" xmp:"qt:ClipID"`
	ContentDistributorID string   `qt:"cdis" xmp:"qt:ContentDistributorID"`
	ContentID            string   `qt:"ccid" xmp:"qt:ContentID"`
	CreationDate         xmp.Date `qt:"date" xmp:"qt:CreationDate"`
	Grouping             string   `qt:"©grp" xmp:"qt:Grouping"`
	GUID                 string   `qt:"GUID" xmp:"qt:GUID"`
	ISRCCode             string   `qt:"©isr" xmp:"qt:ISRCCode"`

	// QT only (descriptive metadata)
	AlbumArtist        string  `qt:"albr" xmp:"qt:AlbumArtist"`
	Angle              string  `qt:"angl" xmp:"qt:Angle"`
	ArrangerKeywords   string  `qt:"©ark" xmp:"qt:ArrangerKeywords"`
	AudibleTags        string  `qt:"tags" xmp:"qt:AudibleTags"`
	CameraID           string  `qt:"cmid" xmp:"qt:CameraID"`
	CameraManufacturer string  `qt:"manu" xmp:"qt:CameraManufacturer"`
	CameraModel        string  `qt:"modl" xmp:"qt:CameraModel"`
	CameraName         string  `qt:"cmnm" xmp:"qt:CameraName"`
	CameraSerialNumber string  `qt:"slno" xmp:"qt:CameraSerialNumber"`
	ChapterList        string  `qt:"chpl" xmp:"qt:ChapterList"`
	ComposerKeywords   string  `qt:"©cok" xmp:"qt:ComposerKeywords"`
	Edit1              string  `qt:"©ed1" xmp:"qt:Edit1"`
	Edit2              string  `qt:"©ed2" xmp:"qt:Edit2"`
	Edit3              string  `qt:"©ed3" xmp:"qt:Edit3"`
	Edit4              string  `qt:"©ed4" xmp:"qt:Edit4"`
	Edit5              string  `qt:"©ed5" xmp:"qt:Edit5"`
	Edit6              string  `qt:"©ed6" xmp:"qt:Edit6"`
	Edit7              string  `qt:"©ed7" xmp:"qt:Edit7"`
	Edit8              string  `qt:"©ed8" xmp:"qt:Edit8"`
	Edit9              string  `qt:"©ed9" xmp:"qt:Edit9"`
	FileCreatorModel2  string  `qt:"©mdl" xmp:"qt:FileCreatorModel2"`
	FileCreatorUrl     xmp.Url `qt:"©mal" xmp:"qt:FileCreatorUrl"`
	Lyrics             string  `qt:"©lyr" xmp:"qt:Lyrics"`    // QT, iTunes
	LyricsUrl          xmp.Url `qt:"lrcu" xmp:"qt:LyricsUrl"` // iTunes
	OriginalFormat     string  `qt:"orif" xmp:"qt:OriginalFormat"`
	OriginalSource     string  `qt:"oris" xmp:"qt:OriginalSource"`
	PerformerKeywords  string  `qt:"©prk" xmp:"qt:PerformerKeywords"`
	PerformerUrl       xmp.Url `qt:"©prl" xmp:"qt:PerformerUrl"`
	ProducerKeywords   string  `qt:"©pdk" xmp:"qt:ProducerKeywords"`
	ProductVersion     string  `qt:"VERS" xmp:"qt:ProductVersion"`
	RecordLabelName    string  `qt:"©lab" xmp:"qt:RecordLabelName"`
	RecordLabelUrl     xmp.Url `qt:"©lal" xmp:"qt:RecordLabelUrl"`
	Reel               string  `qt:"reel" xmp:"qt:Reel"`
	Scene              string  `qt:"scen" xmp:"qt:Scene"`
	Shot               string  `qt:"shot" xmp:"qt:Shot"`
	SongWriter         string  `qt:"©swf" xmp:"qt:SongWriter"`
	SongWriterKeywords string  `qt:"©swk" xmp:"qt:SongWriterKeywords"`
	Subtitle           string  `qt:"©snm" xmp:"qt:Subtitle"`
	SubtitleKeywords   string  `qt:"©snk" xmp:"qt:SubtitleKeywords"`
	Synopsis           string  `qt:"ldes" xmp:"qt:Synopsis"`
	TitleKeywords      string  `qt:"©nak" xmp:"qt:TitleKeywords"`

	// QT mdta (not in official udta, but has FourCC code)
	CoverArt       string `qt:"covr" xmp:"qt:CoverArt"`
	CollectionUser string `qt:"coll" xmp:"qt:CollectionUser"`
	UserRating     string `qt:"rtng" xmp:"qt:UserRating"`
	RecordingYear  int    `qt:"yrrc" xmp:"qt:RecordingYear"`

	// QT only (technical metadata)
	ApertureMode   string  `qt:"apmd" xmp:"qt:ApertureMode"`
	FlightPitch    float64 `qt:"©fpt" xmp:"qt:FlightPitch"`
	FlightRoll     float64 `qt:"©frl" xmp:"qt:FlightRoll"`
	FlightSpeedX   float64 `qt:"©xsp" xmp:"qt:FlightSpeedX"`
	FlightSpeedY   float64 `qt:"©ysp" xmp:"qt:FlightSpeedY"`
	FlightSpeedZ   float64 `qt:"©zsp" xmp:"qt:FlightSpeedZ"`
	FlightYaw      float64 `qt:"©fyw" xmp:"qt:FlightYaw"`
	GimbalPitch    float64 `qt:"©gpt" xmp:"qt:GimbalPitch"`
	GimbalRoll     float64 `qt:"©grl" xmp:"qt:GimbalRoll"`
	GimbalYaw      float64 `qt:"©gyw" xmp:"qt:GimbalYaw"`
	HintInfo       string  `qt:"hnti" xmp:"qt:HintInfo"`
	HintTrackInfo  string  `qt:"hinf" xmp:"qt:HintTrackInfo"`
	HintVersion    string  `qt:"hinv" xmp:"qt:HintVersion"`
	PrintToVideo   string  `qt:"ptv " xmp:"qt:PrintToVideo"`
	TrackType      string  `qt:"kgtt" xmp:"qt:TrackType"`
	WindowLocation Point   `qt:"WLOC" xmp:"qt:WindowLocation"`

	//
	// Vendor-specific tags
	//
	// Google transcoded videos (YouTube)
	GoogleHostHeader    string `qt:"gshh" xmp:"qt:GoogleHostHeader"`
	GooglePingMessage   string `qt:"gspm" xmp:"qt:GooglePingMessage"`
	GooglePingURL       string `qt:"gspu" xmp:"qt:GooglePingURL"`
	GoogleSourceData    string `qt:"gssd" xmp:"qt:GoogleSourceData"`
	GoogleStartTime     string `qt:"gsst" xmp:"qt:GoogleStartTime"`
	GoogleTrackDuration string `qt:"gstd" xmp:"qt:GoogleTrackDuration"`

	// Canon Cameras
	CanonCodec     string `qt:"CNCV" xmp:"qt:CanonCodec"`    // "CanonAVC0002"
	CanonModel     string `qt:"CNMN" xmp:"qt:CanonModel"`    // "Canon EOS 5D Mark II"
	CanonFirmware  string `qt:"CNFV" xmp:"qt:CanonFirmware"` // "Firmware Version 2.1.1"
	CanonThumbnail []byte `qt:"CNDA" xmp:"qt:CanonThumbnail"`
}

QuickTime User Data as written by the "udta" handler using FourCC atom names. © \251 \xA9 Tags are multi-language versions

Tag ID's beginning with the copyright symbol (hex 0xa9) are multi-language text.

https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html

func (*QtUserdata) Can

func (m *QtUserdata) Can(nsName string) bool

func (*QtUserdata) CanTag

func (x *QtUserdata) CanTag(tag string) bool

func (*QtUserdata) GetTag

func (x *QtUserdata) GetTag(tag string) (string, error)

func (*QtUserdata) Namespaces

func (m *QtUserdata) Namespaces() xmp.NamespaceList

func (*QtUserdata) SetTag

func (x *QtUserdata) SetTag(tag, value string) error

func (*QtUserdata) SyncFromXMP

func (x *QtUserdata) SyncFromXMP(d *xmp.Document) error

func (*QtUserdata) SyncModel

func (x *QtUserdata) SyncModel(d *xmp.Document) error

func (QtUserdata) SyncToXMP

func (x QtUserdata) SyncToXMP(d *xmp.Document) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL