Blender V4.3
DNA_sequence_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
16#pragma once
17
18#include "DNA_color_types.h"
19#include "DNA_defs.h"
20#include "DNA_listBase.h"
21#include "DNA_session_uid_types.h" /* for #SessionUID */
22#include "DNA_vec_types.h" /* for #rctf */
23
24struct Ipo;
25struct MovieClip;
26struct Scene;
27struct SequenceLookup;
28struct VFont;
29struct bSound;
30
31#ifdef __cplusplus
32namespace blender::seq {
33struct MediaPresence;
34struct ThumbnailCache;
35} // namespace blender::seq
38#else
41#endif
42
43/* -------------------------------------------------------------------- */
47/* strlens; 256= FILE_MAXFILE, 768= FILE_MAXDIR */
48
49typedef struct StripAnim {
50 struct StripAnim *next, *prev;
51 struct ImBufAnim *anim;
53
54typedef struct StripElem {
56 char filename[256];
59 float orig_fps;
61
62typedef struct StripCrop {
63 int top;
64 int bottom;
65 int left;
66 int right;
68
69typedef struct StripTransform {
70 float xofs;
71 float yofs;
72 float scale_x;
73 float scale_y;
74 float rotation;
76 float origin[2];
77 int filter;
79
80typedef struct StripColorBalance {
81 int method;
82 float lift[3];
83 float gamma[3];
84 float gain[3];
85 float slope[3];
86 float offset[3];
87 float power[3];
88 int flag;
89 char _pad[4];
90 // float exposure;
91 // float saturation;
93
94typedef struct StripProxy {
96 char dirpath[768];
98 char filename[256];
99 struct ImBufAnim *anim; /* custom proxy anim file */
100
101 short tc; /* time code in use */
102
103 short quality; /* proxy build quality */
104 short build_size_flags; /* size flags (see below) of all proxies */
105 /* to build */
106 short build_tc_flags; /* time code flags (see below) of all tc indices */
107 /* to build */
110 char _pad[5];
112
132
140
141typedef struct SeqRetimingKey {
143 int flag; /* eSeqRetimingKeyFlag */
144 int _pad0;
145 float retiming_factor; /* Value between 0-1 mapped to original content range. */
146
147 char _pad1[4];
148 double original_strip_frame_index; /* Used for transition keys only. */
149 float original_retiming_factor; /* Used for transition keys only. */
150 char _pad2[4];
152
156
167typedef struct Sequence {
168 struct Sequence *next, *prev;
170 void *tmp;
172 void *lib;
174 char name[64];
175
177 int flag, type;
179 int len;
184 float start;
199 float sat;
200 float mul;
201
204 short _pad;
209
211
213 struct Ipo *ipo DNA_DEPRECATED;
214
217 struct Scene *scene;
223 struct Mask *mask;
226
228 /* DEPRECATED, only used for versioning. */
230
231 /* pointers for effects: */
232 struct Sequence *seq1, *seq2;
233
234 /* This strange padding is needed due to how seqbasep deserialization is
235 * done right now in #scene_blend_read_data. */
236 void *_pad7;
237 int _pad8[2];
238
241 ListBase channels; /* SeqTimelineChannel */
242
243 /* List of strip connections (one-way, not bidirectional). */
244 ListBase connections; /* SeqConnection */
245
247 struct bSound *sound;
250 float volume;
251
253 float pitch DNA_DEPRECATED, pan;
254 float strobe;
255
257 char _pad4[4];
258
261
266
269
270 /* Tag color showed if `SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG` is set. */
272
274 char _pad2[2];
275
277
278 /* is sfra needed anymore? - it looks like its only used in one place */
280 int sfra;
281
282 /* Multiview */
284 char _pad3[3];
286
288
289 /* modifiers */
291
292 /* Playback rate of strip content in frames per second. */
295
297 void *_pad5;
299 char _pad6[4];
300
303
304typedef struct MetaStack {
305 struct MetaStack *next, *prev;
309 /* the startdisp/enddisp when entering the meta */
312
319
324
331
332typedef struct Editing {
336 void *_pad0;
340 ListBase channels; /* SeqTimelineChannel */
341
342 /* Context vars, used to be static */
345 char act_imagedir[1024];
347 char act_sounddir[1024];
349 char proxy_dir[1024];
350
352
356
358 int _pad1;
359
361
362 /* Cache control */
363 float recycle_max_cost; /* UNUSED only for versioning. */
365
367
368 /* Must be initialized only by seq_cache_create() */
370
373
376/* -------------------------------------------------------------------- */
380typedef struct WipeVars {
384
385typedef struct GlowVars {
387 float fMini;
388 float fClamp;
390 float fBoost;
392 float dDist;
397
409
410typedef struct SolidColorVars {
411 float col[3];
412 char _pad[4];
414
415typedef struct SpeedControlVars {
416 float *frameMap;
417 /* DEPRECATED, only used for versioning. */
419 int flags;
420
422
427
429enum {
434};
435
440
441typedef struct TextVars {
442 char text[512];
446 float color[4], shadow_color[4], box_color[4], outline_color[4];
447 float loc[2];
454 char flag;
456 char _pad[5];
458
460enum {
461 SEQ_TEXT_SHADOW = (1 << 0),
462 SEQ_TEXT_BOX = (1 << 1),
463 SEQ_TEXT_BOLD = (1 << 2),
464 SEQ_TEXT_ITALIC = (1 << 3),
466};
467
469enum {
473};
474
476enum {
480};
481
482#define SEQ_FONT_NOT_LOADED -2
483
490
493/* -------------------------------------------------------------------- */
497typedef struct SequenceModifierData {
499 int type, flag;
501 char name[64];
502
503 /* mask input, either sequence or mask ID */
506
508 struct Mask *mask_id;
510
517
518enum {
521};
522
528
534
541
545
552
560
561enum {
564};
565
575
583/* -------------------------------------------------------------------- */
588enum {
591};
592
594enum {
596};
597
598#define SEQ_STRIP_OFSBOTTOM 0.05f
599#define SEQ_STRIP_OFSTOP 0.95f
600
602enum {
605};
606
608enum {
609 SEQ_SPEED_UNUSED_2 = 1 << 0, /* cleared */
610 SEQ_SPEED_UNUSED_1 = 1 << 1, /* cleared */
611 SEQ_SPEED_UNUSED_3 = 1 << 2, /* cleared */
613};
614
615#define SEQ_NAME_MAXSTR 64
616
617/* From: `DNA_object_types.h`, see it's doc-string there. */
618#define SELECT 1
619
621enum {
622 /* `SELECT = (1 << 0)` */
623 SEQ_LEFTSEL = (1 << 1),
624 SEQ_RIGHTSEL = (1 << 2),
625 SEQ_OVERLAP = (1 << 3),
626 SEQ_FILTERY = (1 << 4),
627 SEQ_MUTE = (1 << 5),
628 /* SEQ_FLAG_SKIP_THUMBNAILS = (1 << 6), */ /* no longer used */
632 SEQ_FLAG_DELETE = (1 << 10),
633 SEQ_FLIPX = (1 << 11),
634 SEQ_FLIPY = (1 << 12),
635 SEQ_MAKE_FLOAT = (1 << 13),
636 SEQ_LOCK = (1 << 14),
637 SEQ_USE_PROXY = (1 << 15),
641 SEQ_SHOW_RETIMING = (1 << 19),
643
646
647 /* flags for whether those properties are animated or not */
652
653 /* don't include Annotations in OpenGL previews of Scene strips */
655 SEQ_USE_VIEWS = (1 << 29),
656
657 /* Access scene strips directly (like a meta-strip). */
658 SEQ_SCENE_STRIPS = (1 << 30),
659
660 SEQ_INVALID_EFFECT = (1u << 31),
661};
662
664enum {
665 SEQ_STORAGE_PROXY_CUSTOM_FILE = (1 << 1), /* store proxy in custom directory */
666 SEQ_STORAGE_PROXY_CUSTOM_DIR = (1 << 2), /* store proxy in custom file */
667};
668
669/* convenience define for all selection flags */
670#define SEQ_ALLSEL (SELECT + SEQ_LEFTSEL + SEQ_RIGHTSEL)
671
672/* Deprecated, don't use a flag anymore. */
673// #define SEQ_ACTIVE 1048576
674
675enum {
682};
683
687enum {
692};
693
697enum {
701};
702
704enum {
706};
707
709enum {
712};
713
772
773enum {
776};
777
778enum {
780};
781/* all other BLEND_MODEs are simple SEQ_TYPE_EFFECT ids and therefore identical
782 * to the table above. (Only those effects that handle _exactly_ two inputs,
783 * otherwise, you can't really blend, right :) !)
784 */
785
786#define SEQ_HAS_PATH(_seq) \
787 (ELEM((_seq)->type, SEQ_TYPE_MOVIE, SEQ_TYPE_IMAGE, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD))
788
789/* modifiers */
790
792enum {
801 /* Keep last. */
803};
804
806enum {
809};
810
811enum {
814};
815
816enum {
817 /* Mask animation will be remapped relative to the strip start frame. */
819 /* Global (scene) frame number will be used to access the mask. */
821};
822
833enum {
838
839 /* For lookup purposes */
842
844
850
853};
854
870
871/* Sequence->StripTransform->filter */
872enum {
879};
880
885
These structs are the foundation for all linked lists in the library system.
@ SEQ_BLEND_REPLACE
struct SpeedControlVars SpeedControlVars
eSeqRetimingKeyFlag
@ SEQ_KEY_SELECTED
@ SEQ_SPEED_TRANSITION_OUT
@ SEQ_FREEZE_FRAME_OUT
@ SEQ_SPEED_TRANSITION_IN
@ SEQ_FREEZE_FRAME_IN
@ SEQ_STORAGE_PROXY_CUSTOM_FILE
@ SEQ_STORAGE_PROXY_CUSTOM_DIR
@ SEQ_MOVIECLIP_RENDER_UNDISTORTED
@ SEQ_MOVIECLIP_RENDER_STABILIZED
struct WipeVars WipeVars
struct SoundEqualizerModifierData SoundEqualizerModifierData
@ SEQ_CACHE_ALL_TYPES
@ SEQ_CACHE_STORE_PREPROCESSED
@ SEQ_CACHE_UNUSED_8
@ SEQ_CACHE_STORE_RAW
@ SEQ_CACHE_STORE_FINAL_OUT
@ SEQ_CACHE_STORE_COMPOSITE
@ SEQ_CACHE_UNUSED_5
@ SEQ_CACHE_UNUSED_7
@ SEQ_CACHE_DISK_CACHE_ENABLE
@ SEQ_CACHE_PREFETCH_ENABLE
@ SEQ_CACHE_UNUSED_6
@ SEQ_CACHE_UNUSED_9
@ SEQ_CACHE_OVERRIDE
struct ColorMixVars ColorMixVars
@ SEQ_TYPE_TRANSFORM
@ SEQ_TYPE_COLOR_BURN
@ SEQ_TYPE_HARD_LIGHT
@ SEQ_TYPE_EXCLUSION
@ SEQ_TYPE_SOUND_RAM
@ SEQ_TYPE_CROSS
@ SEQ_TYPE_SOUND_HD
@ SEQ_TYPE_GLOW
@ SEQ_TYPE_MAX
@ SEQ_TYPE_VALUE
@ SEQ_TYPE_COLORMIX
@ SEQ_TYPE_WIPE
@ SEQ_TYPE_META
@ SEQ_TYPE_OVERDROP
@ SEQ_TYPE_PIN_LIGHT
@ SEQ_TYPE_ALPHAUNDER
@ SEQ_TYPE_DODGE
@ SEQ_TYPE_SCENE
@ SEQ_TYPE_HUE
@ SEQ_TYPE_LINEAR_BURN
@ SEQ_TYPE_GAMCROSS
@ SEQ_TYPE_MULTICAM
@ SEQ_TYPE_BLEND_COLOR
@ SEQ_TYPE_MOVIECLIP
@ SEQ_TYPE_DARKEN
@ SEQ_TYPE_MUL
@ SEQ_TYPE_GAUSSIAN_BLUR
@ SEQ_TYPE_ADD
@ SEQ_TYPE_ALPHAOVER
@ SEQ_TYPE_TEXT
@ SEQ_TYPE_IMAGE
@ SEQ_TYPE_SCREEN
@ SEQ_TYPE_SOFT_LIGHT
@ SEQ_TYPE_SUB
@ SEQ_TYPE_VIVID_LIGHT
@ SEQ_TYPE_OVERLAY
@ SEQ_TYPE_SPEED
@ SEQ_TYPE_COLOR
@ SEQ_TYPE_SATURATION
@ SEQ_TYPE_LIN_LIGHT
@ SEQ_TYPE_EFFECT
@ SEQ_TYPE_MOVIE
@ SEQ_TYPE_MASK
@ SEQ_TYPE_DIFFERENCE
@ SEQ_TYPE_ADJUSTMENT
@ SEQ_TYPE_LIGHTEN
struct StripColorBalance StripColorBalance
@ SEQ_SPEED_STRETCH
@ SEQ_SPEED_MULTIPLY
@ SEQ_SPEED_LENGTH
@ SEQ_SPEED_FRAME_NUMBER
struct ThumbnailCache ThumbnailCache
@ SEQ_TEXT_ALIGN_Y_BOTTOM
@ SEQ_TEXT_ALIGN_Y_TOP
@ SEQ_TEXT_ALIGN_Y_CENTER
struct SeqRetimingKey SeqRetimingKey
struct TransformVars TransformVars
struct EQCurveMappingData EQCurveMappingData
struct StripAnim StripAnim
@ NUM_SEQUENCE_MODIFIER_TYPES
@ seqModifierType_Curves
@ seqModifierType_Mask
@ seqModifierType_WhiteBalance
@ seqModifierType_BrightContrast
@ seqModifierType_ColorBalance
@ seqModifierType_SoundEqualizer
@ seqModifierType_HueCorrect
@ seqModifierType_Tonemap
@ SEQ_ALPHA_PREMUL
@ SEQ_ALPHA_STRAIGHT
struct WhiteBalanceModifierData WhiteBalanceModifierData
@ SEQ_TEXT_ALIGN_X_RIGHT
@ SEQ_TEXT_ALIGN_X_CENTER
@ SEQ_TEXT_ALIGN_X_LEFT
struct MediaPresence MediaPresence
struct ColorBalanceModifierData ColorBalanceModifierData
@ SEQ_TONEMAP_RD_PHOTORECEPTOR
@ SEQ_TONEMAP_RH_SIMPLE
struct CurvesModifierData CurvesModifierData
struct SeqTimelineChannel SeqTimelineChannel
struct GlowVars GlowVars
SequenceColorTag
@ SEQUENCE_COLOR_NONE
@ SEQUENCE_COLOR_05
@ SEQUENCE_COLOR_TOT
@ SEQUENCE_COLOR_02
@ SEQUENCE_COLOR_04
@ SEQUENCE_COLOR_06
@ SEQUENCE_COLOR_01
@ SEQUENCE_COLOR_09
@ SEQUENCE_COLOR_08
@ SEQUENCE_COLOR_03
@ SEQUENCE_COLOR_07
struct StripTransform StripTransform
struct SequenceModifierData SequenceModifierData
@ SEQ_PROXY_SKIP_EXISTING
@ SEQ_TEXT_ITALIC
@ SEQ_TEXT_SHADOW
@ SEQ_TEXT_BOLD
@ SEQ_TEXT_OUTLINE
@ SEQ_TEXT_BOX
struct StripCrop StripCrop
struct Editing Editing
struct SequencerTonemapModifierData SequencerTonemapModifierData
struct EditingRuntime EditingRuntime
@ SEQ_COLOR_BALANCE_METHOD_LIFTGAMMAGAIN
@ SEQ_COLOR_BALANCE_METHOD_SLOPEOFFSETPOWER
struct SequenceRuntime SequenceRuntime
@ SEQ_EDIT_SHOW_MISSING_MEDIA
@ SEQ_PROXY_IMAGE_SIZE_100
@ SEQ_PROXY_IMAGE_SIZE_25
@ SEQ_PROXY_IMAGE_SIZE_50
@ SEQ_PROXY_IMAGE_SIZE_75
@ SEQ_EDIT_PROXY_DIR_STORAGE
@ SEQ_FLAG_DELETE
@ SEQ_INVALID_EFFECT
@ SEQ_FILTERY
@ SEQ_SINGLE_FRAME_CONTENT
@ SEQ_REVERSE_FRAMES
@ SEQ_AUTO_PLAYBACK_RATE
@ SEQ_FLIPX
@ SEQ_RIGHTSEL
@ SEQ_MAKE_FLOAT
@ SEQ_EFFECT_NOT_LOADED
@ SEQ_IPO_FRAME_LOCKED
@ SEQ_IGNORE_CHANNEL_LOCK
@ SEQ_SCENE_STRIPS
@ SEQ_AUDIO_PITCH_ANIMATED
@ SEQ_USE_PROXY
@ SEQ_OVERLAP
@ SEQ_USE_EFFECT_DEFAULT_FADE
@ SEQ_FLIPY
@ SEQ_MULTIPLY_ALPHA
@ SEQ_SHOW_RETIMING
@ SEQ_AUDIO_VOLUME_ANIMATED
@ SEQ_USE_VIEWS
@ SEQ_AUDIO_PAN_ANIMATED
@ SEQ_USE_LINEAR_MODIFIERS
@ SEQ_SCENE_NO_ANNOTATION
@ SEQ_AUDIO_DRAW_WAVEFORM
@ SEQ_LEFTSEL
struct Sequence Sequence
eSeqChannelFlag
@ SEQ_CHANNEL_MUTE
@ SEQ_CHANNEL_LOCK
struct TextVars TextVars
struct GaussianBlurVars GaussianBlurVars
struct SeqConnection SeqConnection
struct SolidColorVars SolidColorVars
struct HueCorrectModifierData HueCorrectModifierData
@ SEQUENCE_MODIFIER_MUTE
@ SEQUENCE_MODIFIER_EXPANDED
@ SEQUENCE_MASK_INPUT_STRIP
@ SEQUENCE_MASK_INPUT_ID
@ SEQ_PROXY_TC_RECORD_RUN_NO_GAPS
@ SEQ_PROXY_TC_RECORD_RUN
@ SEQ_PROXY_TC_NONE
@ SEQUENCE_MASK_TIME_RELATIVE
@ SEQUENCE_MASK_TIME_ABSOLUTE
@ SEQ_TRANSFORM_FILTER_CUBIC_BSPLINE
@ SEQ_TRANSFORM_FILTER_AUTO
@ SEQ_TRANSFORM_FILTER_CUBIC_MITCHELL
@ SEQ_TRANSFORM_FILTER_BILINEAR
@ SEQ_TRANSFORM_FILTER_BOX
@ SEQ_TRANSFORM_FILTER_NEAREST
struct StripProxy StripProxy
struct MetaStack MetaStack
@ SEQ_SPEED_USE_INTERPOLATION
@ SEQ_SPEED_UNUSED_3
@ SEQ_SPEED_UNUSED_1
@ SEQ_SPEED_UNUSED_2
struct StripElem StripElem
struct Strip Strip
@ SEQ_EDIT_OVERLAY_FRAME_ABS
@ SEQ_EDIT_OVERLAY_FRAME_SHOW
struct BrightContrastModifierData BrightContrastModifierData
@ SEQ_COLOR_BALANCE_INVERSE_GAIN
@ SEQ_COLOR_BALANCE_INVERSE_LIFT
@ SEQ_COLOR_BALANCE_INVERSE_SLOPE
@ SEQ_COLOR_BALANCE_INVERSE_POWER
@ SEQ_COLOR_BALANCE_INVERSE_OFFSET
@ SEQ_COLOR_BALANCE_INVERSE_GAMMA
struct SequencerMaskModifierData SequencerMaskModifierData
__int64 int64_t
Definition stdint.h:89
signed char int8_t
Definition stdint.h:75
SequenceModifierData modifier
StripColorBalance color_balance
SequenceModifierData modifier
SequenceModifierData modifier
struct CurveMapping curve_mapping
struct EQCurveMappingData * next
struct EQCurveMappingData * prev
struct CurveMapping curve_mapping
ThumbnailCache * thumbnail_cache
MediaPresence * media_presence
struct SequenceLookup * sequence_lookup
ListBase seqbase
struct PrefetchJob * prefetch_job
ListBase * seqbasep
Sequence * act_seq
ListBase channels
char proxy_dir[1024]
int64_t disk_cache_timestamp
int show_missing_media_flag
ListBase * displayed_channels
float recycle_max_cost
ListBase metastack
char act_sounddir[1024]
rctf overlay_frame_rect
char act_imagedir[1024]
struct SeqCache * cache
EditingRuntime runtime
SequenceModifierData modifier
struct CurveMapping curve_mapping
Sequence * parseq
struct MetaStack * prev
ListBase * old_channels
ListBase * oldbasep
struct MetaStack * next
struct SeqConnection * next
struct SeqConnection * prev
double original_strip_frame_index
struct SeqTimelineChannel * next
struct SeqTimelineChannel * prev
struct SequenceModifierData * next
struct SequenceModifierData * prev
struct Sequence * mask_sequence
float media_playback_rate
struct MovieClip * clip
struct Scene * scene
struct SeqRetimingKey * retiming_keys
struct Object * scene_camera
struct Mask * mask
ListBase channels
ListBase connections
float pitch DNA_DEPRECATED
struct Sequence * prev
ListBase modifiers
struct bSound * sound
struct Sequence * seq1
struct Sequence * seq2
struct Sequence * next
float pitch pan
struct IDProperty * prop
SequenceRuntime runtime
struct Stereo3dFormat * stereo3d_format
struct Ipo *ipo DNA_DEPRECATED
SequenceModifierData modifier
SequenceModifierData modifier
struct StripAnim * prev
struct StripAnim * next
struct ImBufAnim * anim
char filename[256]
struct ImBufAnim * anim
char dirpath[768]
char filename[256]
ColorManagedColorspaceSettings colorspace_settings
char dirpath[768]
StripColorBalance *color_balance DNA_DEPRECATED
StripProxy * proxy
struct Strip * prev
StripTransform * transform
StripElem * stripdata
StripCrop * crop
struct Strip * next
float box_color[4]
float outline_color[4]
float shadow_color[4]
struct VFont * text_font
SequenceModifierData modifier