CuteLogger
Fast and simple logging solution for Qt based applications
shotcut_mlt_properties.h
1 /*
2  * Copyright (c) 2013-2021 Meltytech, LLC
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef SHOTCUT_MLT_PROPERTIES_H
19 #define SHOTCUT_MLT_PROPERTIES_H
20 
21 /* This file contains all of the Shotcut-specific MLT properties.
22  * See also https://www.shotcut.org/notes/mltxml-annotations/
23  *
24  * A property should be prefaced with an underscore if it will not be saved
25  * in the XML even if it never has a chance of getting into there. This makes
26  * it more clear which is also an XML annotation or purely internal use.
27  */
28 
29 /* MLT XML annotations */
30 
31 #define kShotcutXmlProperty "shotcut"
32 #define kAudioTrackProperty "shotcut:audio"
33 #define kCommentProperty "shotcut:comment"
34 #define kShotcutFilterProperty "shotcut:filter"
35 #define kShotcutPlaylistProperty "shotcut:playlist"
36 #define kShotcutTransitionProperty "shotcut:transition"
37 #define kShotcutProducerProperty "shotcut:producer"
38 #define kShotcutVirtualClip "shotcut:virtual"
39 #define kTimelineScaleProperty "shotcut:scaleFactor"
40 #define kTrackHeightProperty "shotcut:trackHeight"
41 #define kTrackNameProperty "shotcut:name"
42 #define kTrackLockProperty "shotcut:lock"
43 #define kVideoTrackProperty "shotcut:video"
44 #define kShotcutCaptionProperty "shotcut:caption"
45 #define kShotcutDetailProperty "shotcut:detail"
46 #define kShotcutHashProperty "shotcut:hash"
47 #define kShotcutSkipConvertProperty "shotcut:skipConvert"
48 #define kShotcutAnimInProperty "shotcut:animIn"
49 #define kShotcutAnimOutProperty "shotcut:animOut"
50 #define kShotcutMarkersProperty "shotcut:markers"
51 // Shotcut's VUI (video user interface) components set this so that glwidget can
52 // hide the VUI when the play head is not over the clip with the current filter.
53 #define kShotcutVuiMetaProperty "meta.shotcut.vui"
54 #define kDefaultAudioIndexProperty "shotcut:defaultAudioIndex"
55 #define kOriginalResourceProperty "shotcut:resource"
56 #define kOriginalInProperty "shotcut:originalIn"
57 #define kOriginalOutProperty "shotcut:originalOut"
58 #define kDisableProxyProperty "shotcut:disableProxy"
59 
60 /* Project specific properties */
61 #define kShotcutProjectAudioChannels "shotcut:projectAudioChannels"
62 #define kShotcutProjectFolder "shotcut:projectFolder"
63 #define kShotcutProjectNote "shotcut:projectNote"
64 
65 /* Ideally all shotcut properties should begin with "shotcut:", but these
66  * do not and kept for legacy reasons? */
67 
68 #define kAspectRatioNumerator "shotcut_aspect_num"
69 #define kAspectRatioDenominator "shotcut_aspect_den"
70 #define kShotcutSequenceProperty "shotcut_sequence"
71 
72 /* Special object Ids expected by Shotcut and used in XML */
73 
74 #define kBackgroundTrackId "background"
75 #define kLegacyPlaylistTrackId "main bin"
76 #define kPlaylistTrackId "main_bin"
77 
78 /* Internal only */
79 
80 #define kAudioLevelsProperty "_shotcut:audio-levels"
81 #define kBackgroundCaptureProperty "_shotcut:bgcapture"
82 #define kPlaylistIndexProperty "_shotcut:playlistIndex"
83 #define kPlaylistStartProperty "_shotcut:playlistStart"
84 #define kFilterInProperty "_shotcut:filter_in"
85 #define kFilterOutProperty "_shotcut:filter_out"
86 #define kThumbnailInProperty "_shotcut:thumbnail-in"
87 #define kThumbnailOutProperty "_shotcut:thumbnail-out"
88 #define kUndoIdProperty "_shotcut:undo_id"
89 #define kUuidProperty "_shotcut:uuid"
90 #define kMultitrackItemProperty "_shotcut:multitrack-item"
91 #define kExportFromProperty "_shotcut:exportFromDefault"
92 #define kIsProxyProperty "shotcut:proxy"
93 #define kTrackIndexProperty "_shotcut:trackIndex"
94 #define kClipIndexProperty "_shotcut:clipIndex"
95 #define kShotcutInProperty "_shotcut:in"
96 #define kShotcutOutProperty "_shotcut:out"
97 #define kNewTrackIndexProperty "_shotcut:newTrackIndex"
98 #define kShotcutFiltersClipboard "shotcut:filtersClipboard"
99 
100 #define kDefaultMltProfile "atsc_1080p_25"
101 
102 #endif // SHOTCUT_MLT_PROPERTIES_H