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  }