100
101
StripTransform *transform;
101
StripColorBalance *color_balance;
102
StripColorBalance *color_balance DNA_DEPRECATED;
104
/* color management */
105
ColorManagedColorspaceSettings colorspace_settings;
105
typedef struct PluginSeq {
106
char name[1024]; /* 1024 = FILE_MAX */
118
void *instance_private_data;
119
void **current_private_data;
123
void (*callback)(void);
126
/* The sequence structure is the basic struct used by any strip. each of the strips uses a different sequence structure.*/
127
/* WATCH IT: first part identical to ID (for use in ipo's) */
109
* The sequence structure is the basic struct used by any strip.
110
* each of the strips uses a different sequence structure.
112
* \warning The first part identical to ID (for use in ipo's)
113
* the commend above is historic, probably we can drop the ID compatibility,
114
* but take care making this change.
116
* \warning This is really a 'Strip' in the UI!, name is highly confusing.
129
118
typedef struct Sequence {
130
119
struct Sequence *next, *prev;
131
120
void *tmp; /* tmp var for copying, and tagging for linked selection */
132
121
void *lib; /* needed (to be like ipo), else it will raise libdata warnings, this should never be used */
133
122
char name[64]; /* SEQ_NAME_MAXSTR - name, set by default and needs to be unique, for RNA paths */
135
int flag, type; /*flags bitmap (see below) and the type of sequence*/
124
int flag, type; /*flags bitmap (see below) and the type of sequence*/
136
125
int len; /* the length of the contents of this strip - before handles are applied */
137
126
int start, startofs, endofs;
138
127
int startstill, endstill;
139
128
int machine, depth; /*machine - the strip channel, depth - the depth in the sequence when dealing with metastrips */
140
int startdisp, enddisp; /*starting and ending points in the sequence*/
129
int startdisp, enddisp; /*starting and ending points in the sequence*/
142
131
float mul, handsize;
144
133
short anim_preseek;
145
short streamindex; /* streamindex for movie or sound files with several streams */
134
short streamindex; /* streamindex for movie or sound files with several streams */
146
135
int multicam_source; /* for multicam source selection */
147
int clip_flag; /* MOVIECLIP render flags */
136
int clip_flag; /* MOVIECLIP render flags */
151
struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
153
struct Object *scene_camera; /* override scene camera */
140
struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
142
/* these ID vars should never be NULL but can be when linked libs fail to load, so check on access */
144
struct Object *scene_camera; /* override scene camera */
145
struct MovieClip *clip; /* for MOVIECLIP strips */
146
struct Mask *mask; /* for MASK strips */
155
148
struct anim *anim; /* for MOVIE strips */
156
struct MovieClip *clip; /* for MOVIECLIP strips */
158
150
float effect_fader;
159
151
float speed_fader;
163
153
/* pointers for effects: */
164
154
struct Sequence *seq1, *seq2, *seq3;
166
ListBase seqbase; /* list of strips for metastrips */
156
ListBase seqbase; /* list of strips for metastrips */
168
struct bSound *sound; /* the linked "bSound" object */
158
struct bSound *sound; /* the linked "bSound" object */
169
159
void *scene_sound;
172
float pitch, pan; /* pitch (-0.1..10), pan -2..2 */
162
float pitch, pan; /* pitch (-0.1..10), pan -2..2 */
175
void *effectdata; /* Struct pointer for effect settings */
165
void *effectdata; /* Struct pointer for effect settings */
177
167
int anim_startofs; /* only use part of animation file */
178
168
int anim_endofs; /* is subtle different to startofs / endofs */
209
205
/* ************* Effect Variable Structs ********* */
210
206
typedef struct WipeVars {
211
float edgeWidth,angle;
207
float edgeWidth, angle;
212
208
short forward, wipetype;
215
211
typedef struct GlowVars {
216
float fMini; /* Minimum intensity to trigger a glow */
212
float fMini; /* Minimum intensity to trigger a glow */
218
float fBoost; /* Amount to multiply glow intensity */
219
float dDist; /* Radius of glow blurring */
221
int bNoComp; /* SHOW/HIDE glow buffer */
214
float fBoost; /* Amount to multiply glow intensity */
215
float dDist; /* Radius of glow blurring */
217
int bNoComp; /* SHOW/HIDE glow buffer */
224
220
typedef struct TransformVars {
238
234
} SolidColorVars;
240
236
typedef struct SpeedControlVars {
242
238
float globalSpeed;
245
241
int lastValidFrame;
246
242
} SpeedControlVars;
244
/* ***************** Sequence modifiers ****************** */
246
typedef struct SequenceModifierData {
247
struct SequenceModifierData *next, *prev;
249
char name[64]; /* MAX_NAME */
251
/* mask input, either sequence or maks ID */
252
int mask_input_type, pad;
254
struct Sequence *mask_sequence;
255
struct Mask *mask_id;
256
} SequenceModifierData;
258
typedef struct ColorBalanceModifierData {
259
SequenceModifierData modifier;
261
StripColorBalance color_balance;
262
float color_multiply;
263
} ColorBalanceModifierData;
265
typedef struct CurvesModifierData {
266
SequenceModifierData modifier;
268
struct CurveMapping curve_mapping;
269
} CurvesModifierData;
271
typedef struct HueCorrectModifierData {
272
SequenceModifierData modifier;
274
struct CurveMapping curve_mapping;
275
} HueCorrectModifierData;
277
typedef struct BrightContrastModifierData {
278
SequenceModifierData modifier;
282
} BrightContrastModifierData;
284
/* ***************** Scopes ****************** */
286
typedef struct SequencerScopes {
287
struct ImBuf *reference_ibuf;
289
struct ImBuf *zebra_ibuf;
290
struct ImBuf *waveform_ibuf;
291
struct ImBuf *sep_waveform_ibuf;
292
struct ImBuf *vector_ibuf;
293
struct ImBuf *histogram_ibuf;
248
296
#define MAXSEQ 32
252
300
/* Editor->over_flag */
253
#define SEQ_EDIT_OVERLAY_SHOW 1
254
#define SEQ_EDIT_OVERLAY_ABS 2
301
#define SEQ_EDIT_OVERLAY_SHOW 1
302
#define SEQ_EDIT_OVERLAY_ABS 2
256
#define SEQ_STRIP_OFSBOTTOM 0.2f
257
#define SEQ_STRIP_OFSTOP 0.8f
304
#define SEQ_STRIP_OFSBOTTOM 0.2f
305
#define SEQ_STRIP_OFSTOP 0.8f
259
307
/* SpeedControlVars->flags */
260
308
#define SEQ_SPEED_INTEGRATE 1
262
310
#define SEQ_SPEED_COMPRESS_IPO_Y 4
264
312
/* ***************** SEQUENCE ****************** */
265
#define SEQ_NAME_MAXSTR 64
313
#define SEQ_NAME_MAXSTR 64
268
#define SEQ_LEFTSEL (1<<1)
269
#define SEQ_RIGHTSEL (1<<2)
270
#define SEQ_OVERLAP (1<<3)
271
#define SEQ_FILTERY (1<<4)
272
#define SEQ_MUTE (1<<5)
273
#define SEQ_MAKE_PREMUL (1<<6)
274
#define SEQ_REVERSE_FRAMES (1<<7)
275
#define SEQ_IPO_FRAME_LOCKED (1<<8)
276
#define SEQ_EFFECT_NOT_LOADED (1<<9)
277
#define SEQ_FLAG_DELETE (1<<10)
278
#define SEQ_FLIPX (1<<11)
279
#define SEQ_FLIPY (1<<12)
280
#define SEQ_MAKE_FLOAT (1<<13)
281
#define SEQ_LOCK (1<<14)
282
#define SEQ_USE_PROXY (1<<15)
283
#define SEQ_USE_TRANSFORM (1<<16)
284
#define SEQ_USE_CROP (1<<17)
285
#define SEQ_USE_COLOR_BALANCE (1<<18)
286
#define SEQ_USE_PROXY_CUSTOM_DIR (1<<19)
316
#define SEQ_LEFTSEL (1 << 1)
317
#define SEQ_RIGHTSEL (1 << 2)
318
#define SEQ_OVERLAP (1 << 3)
319
#define SEQ_FILTERY (1 << 4)
320
#define SEQ_MUTE (1 << 5)
321
#define SEQ_MAKE_PREMUL (1 << 6) /* deprecated, used for compatibility code only */
322
#define SEQ_REVERSE_FRAMES (1 << 7)
323
#define SEQ_IPO_FRAME_LOCKED (1 << 8)
324
#define SEQ_EFFECT_NOT_LOADED (1 << 9)
325
#define SEQ_FLAG_DELETE (1 << 10)
326
#define SEQ_FLIPX (1 << 11)
327
#define SEQ_FLIPY (1 << 12)
328
#define SEQ_MAKE_FLOAT (1 << 13)
329
#define SEQ_LOCK (1 << 14)
330
#define SEQ_USE_PROXY (1 << 15)
331
#define SEQ_USE_TRANSFORM (1 << 16)
332
#define SEQ_USE_CROP (1 << 17)
333
/* #define SEQ_USE_COLOR_BALANCE (1 << 18) */ /* DEPRECATED */
334
#define SEQ_USE_PROXY_CUSTOM_DIR (1 << 19)
288
#define SEQ_USE_PROXY_CUSTOM_FILE (1<<21)
289
#define SEQ_USE_EFFECT_DEFAULT_FADE (1<<22)
336
#define SEQ_USE_PROXY_CUSTOM_FILE (1 << 21)
337
#define SEQ_USE_EFFECT_DEFAULT_FADE (1 << 22)
338
#define SEQ_USE_LINEAR_MODIFIERS (1 << 23)
291
340
// flags for whether those properties are animated or not
292
#define SEQ_AUDIO_VOLUME_ANIMATED (1<<24)
293
#define SEQ_AUDIO_PITCH_ANIMATED (1<<25)
294
#define SEQ_AUDIO_PAN_ANIMATED (1<<26)
295
#define SEQ_AUDIO_DRAW_WAVEFORM (1<<27)
341
#define SEQ_AUDIO_VOLUME_ANIMATED (1 << 24)
342
#define SEQ_AUDIO_PITCH_ANIMATED (1 << 25)
343
#define SEQ_AUDIO_PAN_ANIMATED (1 << 26)
344
#define SEQ_AUDIO_DRAW_WAVEFORM (1 << 27)
297
#define SEQ_INVALID_EFFECT (1<<31)
346
#define SEQ_INVALID_EFFECT (1 << 31)
299
348
/* convenience define for all selection flags */
300
#define SEQ_ALLSEL (SELECT+SEQ_LEFTSEL+SEQ_RIGHTSEL)
349
#define SEQ_ALLSEL (SELECT + SEQ_LEFTSEL + SEQ_RIGHTSEL)
302
351
/* deprecated, don't use a flag anymore*/
303
352
/*#define SEQ_ACTIVE 1048576*/
320
369
#define SEQ_PROXY_TC_RECORD_RUN_NO_GAPS 8
321
370
#define SEQ_PROXY_TC_ALL 15
323
/* seq->type WATCH IT: SEQ_EFFECT BIT is used to determine if this is an effect strip!!! */
328
#define SEQ_RAM_SOUND 4
329
#define SEQ_HD_SOUND 5
331
#define SEQ_MOVIECLIP 6
337
#define SEQ_ALPHAOVER 11
338
#define SEQ_ALPHAUNDER 12
339
#define SEQ_GAMCROSS 13
341
#define SEQ_OVERDROP 15
342
#define SEQ_PLUGIN 24
345
#define SEQ_TRANSFORM 27
348
#define SEQ_MULTICAM 30
349
#define SEQ_ADJUSTMENT 31
350
#define SEQ_EFFECT_MAX 31
352
#define STRIPELEM_FAILED 0
353
#define STRIPELEM_OK 1
355
#define STRIPELEM_PREVIEW_DONE 1
357
#define SEQ_MOVIECLIP_RENDER_UNDISTORTED (1<<0)
358
#define SEQ_MOVIECLIP_RENDER_STABILIZED (1<<1)
372
/* seq->alpha_mode */
374
SEQ_ALPHA_STRAIGHT = 0,
378
/* seq->type WATCH IT: SEQ_TYPE_EFFECT BIT is used to determine if this is an effect strip!!! */
384
SEQ_TYPE_SOUND_RAM = 4,
385
SEQ_TYPE_SOUND_HD = 5,
386
SEQ_TYPE_MOVIECLIP = 6,
393
SEQ_TYPE_ALPHAOVER = 11,
394
SEQ_TYPE_ALPHAUNDER = 12,
395
SEQ_TYPE_GAMCROSS = 13,
397
SEQ_TYPE_OVERDROP = 15,
398
/* SEQ_TYPE_PLUGIN = 24, */ /* Deprecated */
401
SEQ_TYPE_TRANSFORM = 27,
404
SEQ_TYPE_MULTICAM = 30,
405
SEQ_TYPE_ADJUSTMENT = 31,
406
SEQ_TYPE_EFFECT_MAX = 31
409
#define SEQ_MOVIECLIP_RENDER_UNDISTORTED (1 << 0)
410
#define SEQ_MOVIECLIP_RENDER_STABILIZED (1 << 1)
360
412
#define SEQ_BLEND_REPLACE 0
361
/* all other BLEND_MODEs are simple SEQ_EFFECT ids and therefore identical
413
/* all other BLEND_MODEs are simple SEQ_TYPE_EFFECT ids and therefore identical
362
414
* to the table above. (Only those effects that handle _exactly_ two inputs,
363
415
* otherwise, you can't really blend, right :) !)
367
#define SEQ_HAS_PATH(_seq) (ELEM4((_seq)->type, SEQ_MOVIE, SEQ_IMAGE, SEQ_RAM_SOUND, SEQ_HD_SOUND))
419
#define SEQ_HAS_PATH(_seq) (ELEM4((_seq)->type, SEQ_TYPE_MOVIE, SEQ_TYPE_IMAGE, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD))
423
/* SequenceModifierData->type */
425
seqModifierType_ColorBalance = 1,
426
seqModifierType_Curves = 2,
427
seqModifierType_HueCorrect = 3,
428
seqModifierType_BrightContrast = 4,
430
NUM_SEQUENCE_MODIFIER_TYPES
433
/* SequenceModifierData->flag */
435
SEQUENCE_MODIFIER_MUTE = (1 << 0),
436
SEQUENCE_MODIFIER_EXPANDED = (1 << 1),
440
SEQUENCE_MASK_INPUT_STRIP = 0,
441
SEQUENCE_MASK_INPUT_ID = 1