CuteLogger
Fast and simple logging solution for Qt based applications
src
shotcut_mlt_properties.h
1
/*
2
* Copyright (c) 2013-2026 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 kTrackHeaderWidthProperty "shotcut:trackHeaderWidth"
42
#define kTrackNameProperty "shotcut:name"
43
#define kTrackLockProperty "shotcut:lock"
44
#define kVideoTrackProperty "shotcut:video"
45
#define kShotcutCaptionProperty "shotcut:caption"
46
#define kShotcutDetailProperty "shotcut:detail"
47
#define kShotcutHashProperty "shotcut:hash"
48
#define kShotcutHiddenProperty "shotcut:hidden"
49
#define kShotcutHiddenPositionProperty "shotcut:hiddenPosition"
50
#define kShotcutHiddenPositionPost "post"
51
#define kShotcutTrackVolumeProperty "shotcut:trackVolume"
52
#define kShotcutTrackVolumeNameProperty "shotcut:trackVolumeName"
53
#define kShotcutSkipConvertProperty "shotcut:skipConvert"
54
#define kShotcutAnimInProperty "shotcut:animIn"
55
#define kShotcutAnimOutProperty "shotcut:animOut"
56
#define kShotcutMarkersProperty "shotcut:markers"
57
#define kShotcutGroupProperty "shotcut:group"
58
// Shotcut's VUI (video user interface) components set this so that glwidget can
59
// hide the VUI when the play head is not over the clip with the current filter.
60
#define kShotcutVuiMetaProperty "meta.shotcut.vui"
61
#define kDefaultAudioIndexProperty "shotcut:defaultAudioIndex"
62
#define kOriginalResourceProperty "shotcut:resource"
63
#define kOriginalInProperty "shotcut:originalIn"
64
#define kOriginalOutProperty "shotcut:originalOut"
65
#define kDisableProxyProperty "shotcut:disableProxy"
66
#define kBackupProperty "shotcut:backup"
67
// "shotcut:proxy" is internal only because older versions do not know to hide it.
68
// "shotcut:metaProxy" indicates whether the "meta." properties reflect source or proxy.
69
#define kMetaProxyProperty "shotcut:proxy.meta"
70
#define kShotcutBinsProperty "shotcut:bins"
71
72
/* Project specific properties */
73
#define kShotcutProjectAudioChannels "shotcut:projectAudioChannels"
74
#define kShotcutProjectFolder "shotcut:projectFolder"
75
#define kShotcutProjectNote "shotcut:projectNote"
76
#define kShotcutProjectProcessingMode "shotcut:processingMode"
77
#define kShotcutColorTransfer "shotcut:colorTransfer"
78
79
/* Ideally all shotcut properties should begin with "shotcut:", but these
80
* do not and kept for legacy reasons? */
81
82
#define kAspectRatioNumerator "shotcut_aspect_num"
83
#define kAspectRatioDenominator "shotcut_aspect_den"
84
#define kShotcutSequenceProperty "shotcut_sequence"
85
86
/* Special object Ids expected by Shotcut and used in XML */
87
88
#define kBackgroundTrackId "background"
89
#define kLegacyPlaylistTrackId "main bin"
90
#define kPlaylistTrackId "main_bin"
91
92
/* Internal only */
93
94
#define kAudioLevelsProperty "_shotcut:audio-levels"
95
#define kBackgroundCaptureProperty "_shotcut:bgcapture"
96
#define kPlaylistIndexProperty "_shotcut:playlistIndex"
97
#define kPlaylistStartProperty "_shotcut:playlistStart"
98
#define kFilterInProperty "_shotcut:filter_in"
99
#define kFilterOutProperty "_shotcut:filter_out"
100
#define kThumbnailInProperty "_shotcut:thumbnail-in"
101
#define kThumbnailOutProperty "_shotcut:thumbnail-out"
102
#define kUuidProperty "_shotcut:uuid"
103
#define kMultitrackItemProperty "_shotcut:multitrack-item"
104
#define kExportFromProperty "_shotcut:exportFromDefault"
105
106
/* Temporary, serializable copy of kUuidProperty. Only used by UndoHelper to round-trip
107
* _shotcut:uuid through a per-track XML snapshot (private properties are not serialized).
108
* Always set and cleared within the same operation; never intentionally persisted. */
109
#define kUuidPropertyTemp "shotcut:temp_uuid"
110
#define kTrackIndexProperty "_shotcut:trackIndex"
111
#define kFilterIndexProperty "_shotcut:filterIndex"
112
#define kNewFilterProperty "_shotcut:newFilter"
113
#define kShotcutFiltersClipboard "shotcut:filtersClipboard"
114
#define kIsProxyProperty "shotcut:proxy"
115
#define kPrivateProducerProperty "_shotcut:producer"
116
#define kNewFrameOutProperty "_shotcut:newFrameOut"
117
118
#define kDefaultMltProfile "atsc_1080p_25"
119
120
#endif
// SHOTCUT_MLT_PROPERTIES_H
Generated on
for CuteLogger by
1.14.0