Blender  V3.3
SEQ_add.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2004 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct ListBase;
15 struct Scene;
16 struct Sequence;
17 
19 typedef enum eSeqLoadFlags {
21  SEQ_LOAD_SOUND_MONO = (1 << 2),
25 
26 /* Api for adding new sequence strips. */
27 typedef struct SeqLoadData {
29  int channel;
30  char name[64]; /* Strip name. */
31  char path[1024]; /* 1024 = FILE_MAX */
32  struct {
33  int len;
34  int end_frame;
35  } image; /* Only for image strips. */
36  struct Scene *scene; /* Only for scene strips. */
37  struct MovieClip *clip; /* Only for clip strips. */
38  struct Mask *mask; /* Only for mask strips. */
39  struct {
40  int type;
41  int end_frame;
42  struct Sequence *seq1;
43  struct Sequence *seq2;
44  struct Sequence *seq3;
45  } effect; /* Only for effect strips. */
51  bool allow_invalid_file; /* Used by RNA API to create placeholder strips. */
52  double r_video_stream_start; /* For AV synchronization. Set by `SEQ_add_movie_strip`. */
55 
65 void SEQ_add_load_data_init(struct SeqLoadData *load_data,
66  const char *name,
67  const char *path,
68  int start_frame,
69  int channel);
80 struct Sequence *SEQ_add_image_strip(struct Main *bmain,
81  struct Scene *scene,
82  struct ListBase *seqbase,
83  struct SeqLoadData *load_data);
94 struct Sequence *SEQ_add_sound_strip(struct Main *bmain,
95  struct Scene *scene,
96  struct ListBase *seqbase,
97  struct SeqLoadData *load_data);
106 struct Sequence *SEQ_add_meta_strip(struct Scene *scene,
107  struct ListBase *seqbase,
108  struct SeqLoadData *load_data);
118 struct Sequence *SEQ_add_movie_strip(struct Main *bmain,
119  struct Scene *scene,
120  struct ListBase *seqbase,
121  struct SeqLoadData *load_data);
130 struct Sequence *SEQ_add_scene_strip(struct Scene *scene,
131  struct ListBase *seqbase,
132  struct SeqLoadData *load_data);
142  struct ListBase *seqbase,
143  struct SeqLoadData *load_data);
152 struct Sequence *SEQ_add_mask_strip(struct Scene *scene,
153  struct ListBase *seqbase,
154  struct SeqLoadData *load_data);
163 struct Sequence *SEQ_add_effect_strip(struct Scene *scene,
164  struct ListBase *seqbase,
165  struct SeqLoadData *load_data);
172 void SEQ_add_image_set_directory(struct Sequence *seq, char *path);
180 void SEQ_add_image_load_file(struct Scene *scene,
181  struct Sequence *seq,
182  size_t strip_frame,
183  char *filename);
189 void SEQ_add_image_init_alpha_mode(struct Sequence *seq);
190 void SEQ_add_reload_new_file(struct Main *bmain,
191  struct Scene *scene,
192  struct Sequence *seq,
193  bool lock_range);
194 void SEQ_add_movie_reload_if_needed(struct Main *bmain,
195  struct Scene *scene,
196  struct Sequence *seq,
197  bool *r_was_reloaded,
198  bool *r_can_produce_frames);
199 
200 #ifdef __cplusplus
201 }
202 #endif
eSeqImageFitMethod
struct Sequence * SEQ_add_movieclip_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:137
void SEQ_add_image_load_file(struct Scene *scene, struct Sequence *seq, size_t strip_frame, char *filename)
Definition: strip_add.c:194
struct SeqLoadData SeqLoadData
struct Sequence * SEQ_add_effect_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:161
void SEQ_add_load_data_init(struct SeqLoadData *load_data, const char *name, const char *path, int start_frame, int channel)
Definition: strip_add.c:58
void SEQ_add_reload_new_file(struct Main *bmain, struct Scene *scene, struct Sequence *seq, bool lock_range)
Definition: strip_add.c:506
void SEQ_add_image_set_directory(struct Sequence *seq, char *path)
Definition: strip_add.c:189
void SEQ_add_movie_reload_if_needed(struct Main *bmain, struct Scene *scene, struct Sequence *seq, bool *r_was_reloaded, bool *r_can_produce_frames)
Definition: strip_add.c:677
void SEQ_add_image_init_alpha_mode(struct Sequence *seq)
Definition: strip_add.c:201
struct Sequence * SEQ_add_scene_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:125
struct Sequence * SEQ_add_sound_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
eSeqLoadFlags
Definition: SEQ_add.h:19
@ SEQ_LOAD_SOUND_MONO
Definition: SEQ_add.h:21
@ SEQ_LOAD_SOUND_CACHE
Definition: SEQ_add.h:20
@ SEQ_LOAD_SET_VIEW_TRANSFORM
Definition: SEQ_add.h:23
@ SEQ_LOAD_MOVIE_SYNC_FPS
Definition: SEQ_add.h:22
struct Sequence * SEQ_add_mask_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:149
struct Sequence * SEQ_add_image_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:230
struct Sequence * SEQ_add_movie_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:373
struct Sequence * SEQ_add_meta_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:357
Scene scene
Definition: BKE_main.h:121
struct Sequence * seq2
Definition: SEQ_add.h:43
int len
Definition: SEQ_add.h:33
char views_format
Definition: SEQ_add.h:49
bool use_multiview
Definition: SEQ_add.h:48
struct MovieClip * clip
Definition: SEQ_add.h:37
eSeqImageFitMethod fit_method
Definition: SEQ_add.h:47
struct Scene * scene
Definition: SEQ_add.h:36
int channel
Definition: SEQ_add.h:29
struct Sequence * seq3
Definition: SEQ_add.h:44
bool adjust_playback_rate
Definition: SEQ_add.h:53
struct Stereo3dFormat * stereo3d_format
Definition: SEQ_add.h:50
char path[1024]
Definition: SEQ_add.h:31
struct SeqLoadData::@1176 effect
bool allow_invalid_file
Definition: SEQ_add.h:51
int end_frame
Definition: SEQ_add.h:34
int start_frame
Definition: SEQ_add.h:28
struct SeqLoadData::@1175 image
char name[64]
Definition: SEQ_add.h:30
struct Mask * mask
Definition: SEQ_add.h:38
eSeqLoadFlags flags
Definition: SEQ_add.h:46
double r_video_stream_start
Definition: SEQ_add.h:52
int type
Definition: SEQ_add.h:40
struct Sequence * seq1
Definition: SEQ_add.h:42
ListBase seqbase