github.com/boki/go-xmp@v1.0.1/models/qt/qt_proapps.go (about) 1 // Copyright (c) 2017-2018 Alexander Eichhorn 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"): you may 4 // not use this file except in compliance with the License. You may obtain 5 // a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 // License for the specific language governing permissions and limitations 13 // under the License. 14 15 package qt 16 17 import ( 18 "fmt" 19 "trimmer.io/go-xmp/xmp" 20 ) 21 22 type QtProApps struct { 23 ClipID string `qt:"com.apple.proapps.clipID" xmp:"qt:ClipID"` 24 OriginalFormat string `qt:"com.apple.proapps.originalFormat" xmp:"qt:OriginalFormat"` // AVC-Intra 4:2:2, Apple XDCAM HD422 1080i50 (50 Mb/s CBR) 25 CustomColor string `qt:"com.apple.proapps.customcolor" xmp:"qt:CustomColor"` // com.sony.s-log3-cine 26 CameraName string `qt:"com.apple.proapps.cameraName" xmp:"qt:CameraName"` 27 MIOCameraName string `qt:"com.apple.proapps.mio.cameraName" xmp:"qt:MIOCameraName"` 28 Scene string `qt:"com.apple.proapps.scene" xmp:"qt:Scene"` 29 Shot string `qt:"com.apple.proapps.shot" xmp:"qt:Shot"` 30 Angle string `qt:"com.apple.proapps.angle" xmp:"qt:Angle"` 31 LogNote string `qt:"com.apple.proapps.logNote" xmp:"qt:LogNote"` 32 LastUpdateDate xmp.Date `qt:"com.apple.proapps.lastupdatedate" xmp:"qt:Lastupdatedate"` // 2016-07-21 08:23:35 +0000 33 IngestDateDescription string `qt:"com.apple.proapps.ingestDate.description" xmp:"qt:IngestDateDescription"` // 2016-07-25 12:55:32 +0200 34 StartTimeCodeFrameCount int64 `qt:"com.apple.proapps.avchd.startTimeCodeFrameCount" xmp:"qt:StartTimeCodeFrameCount"` 35 DropFrame Bool `qt:"com.apple.proapps.avchd.dropFrame" xmp:"qt:DropFrame"` 36 VideoFrameDuration int64 `qt:"com.apple.proapps.avchd.videoFrameDuration" xmp:"qt:VideoFrameDuration"` 37 Category string `qt:"com.apple.proapps.share.category" xmp:"qt:Category"` 38 ShareID string `qt:"com.apple.proapps.share.id" xmp:"qt:ShareID"` 39 EpisodeID string `qt:"com.apple.proapps.share.episodeID" xmp:"qt:EpisodeID"` 40 EpisodeNumber string `qt:"com.apple.proapps.share.episodeNumber" xmp:"qt:EpisodeNumber"` 41 MediaKind string `qt:"com.apple.proapps.share.mediaKind" xmp:"qt:MediaKind"` 42 Screenwriters string `qt:"com.apple.proapps.share.screenWriter" xmp:"qt:Screenwriters"` 43 SeasonNumber string `qt:"com.apple.proapps.share.seasonNumber" xmp:"qt:SeasonNumber"` 44 TVNetwork string `qt:"com.apple.proapps.share.tvNetwork" xmp:"qt:TVNetwork"` 45 Reel string `qt:"com.apple.proapps.reel" xmp:"qt:Reel"` 46 CameraID string `qt:"com.apple.proapps.cameraID" xmp:"qt:CameraID"` 47 CameraManufacturer string `qt:"com.apple.proapps.manufacturer" xmp:"qt:CameraManufacturer"` 48 CameraModel string `qt:"com.apple.proapps.modelname" xmp:"qt:CameraModel"` 49 CameraSerialNumber string `qt:"com.apple.proapps.serialno" xmp:"qt:CameraSerialNumber"` 50 ClipFileName string `qt:"com.apple.proapps.clipFileName" xmp:"qt:ClipFileName"` // : A001C001_160721_D620 51 AscCDL string `qt:"com.apple.proapps.color.asc-cdl" xmp:"qt:AscCDL"` // : 52 IsGood string `qt:"com.apple.proapps.isGood" xmp:"qt:IsGood"` // : 0 53 DataSize string `qt:"com.apple.proapps.dataSize" xmp:"qt:DataSize"` // : A�c?, 54 DisplayFormat string `qt:"com.apple.proapps.displayFormat" xmp:"qt:DisplayFormat"` // : 4k 55 ShootingRate string `qt:"com.apple.proapps.shootingRate" xmp:"qt:ShootingRate"` // : @9 56 VideoBitrate string `qt:"com.apple.proapps.videoBitrate" xmp:"qt:VideoBitrate"` // : 0 57 Pulldown string `qt:"com.apple.proapps.pulldown" xmp:"qt:Pulldown"` // : 1 58 MediaRate string `qt:"com.apple.proapps.mediaRate" xmp:"qt:MediaRate"` // : @9 59 TimecodeFormat string `qt:"com.apple.proapps.timecodeFormat" xmp:"qt:TimecodeFormat"` // : 2 60 NumberOfAudioChannels string `qt:"com.apple.proapps.numberOfAudioChannels" xmp:"qt:NumberOfAudioChannels"` // : 0 61 SampleRate string `qt:"com.apple.proapps.sampleRate" xmp:"qt:SampleRate"` // : 0 62 BitsPerSample string `qt:"com.apple.proapps.bitsPerSample" xmp:"qt:BitsPerSample"` // : 0 63 StudioAlphaHandling string `qt:"com.apple.proapps.studio.alphaHandling" xmp:"qt:StudioAlphaHandling"` 64 StudioCameraAngle string `qt:"com.apple.proapps.studio.angle" xmp:"qt:StudioCameraAngle"` 65 StudioAnamorphicOverride string `qt:"com.apple.proapps.studio.metadataAnamorphicType" xmp:"qt:StudioAnamorphicOverride"` 66 StudioDeinterlace string `qt:"com.apple.proapps.studio.metadataDeinterlaceType" xmp:"qt:StudioDeinterlace"` 67 StudioFieldDominanceOverride string `qt:"com.apple.proapps.studio.metadataFieldDominanceOverride" xmp:"qt:StudioFieldDominanceOverride"` 68 StudioLocation string `qt:"com.apple.proapps.studio.metadataLocation" xmp:"qt:StudioLocation"` 69 StudioReel string `qt:"com.apple.proapps.studio.reel" xmp:"qt:StudioReel"` 70 StudioScene string `qt:"com.apple.proapps.studio.scene" xmp:"qt:StudioScene"` 71 StudioShot string `qt:"com.apple.proapps.studio.shot" xmp:"qt:StudioTake"` 72 } 73 74 func (m *QtProApps) Namespaces() xmp.NamespaceList { 75 return xmp.NamespaceList{NsQuicktime} 76 } 77 78 func (m *QtProApps) Can(nsName string) bool { 79 return nsName == NsQuicktime.GetName() 80 } 81 82 func (x *QtProApps) SyncModel(d *xmp.Document) error { 83 return nil 84 } 85 86 func (x *QtProApps) SyncFromXMP(d *xmp.Document) error { 87 return nil 88 } 89 90 func (x *QtProApps) SyncToXMP(d *xmp.Document) error { 91 return nil 92 } 93 94 func (x *QtProApps) CanTag(tag string) bool { 95 _, err := xmp.GetNativeField(x, tag) 96 return err == nil 97 } 98 99 func (x *QtProApps) GetTag(tag string) (string, error) { 100 if v, err := xmp.GetNativeField(x, tag); err != nil { 101 return "", fmt.Errorf("%s: %v", NsQuicktime.GetName(), err) 102 } else { 103 return v, nil 104 } 105 } 106 107 func (x *QtProApps) SetTag(tag, value string) error { 108 if err := xmp.SetNativeField(x, tag, value); err != nil { 109 return fmt.Errorf("%s: %v", NsQuicktime.GetName(), err) 110 } 111 return nil 112 }