Blender  V2.93
SEQ_add.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2004 Blender Foundation.
17  * All rights reserved.
18  */
19 
20 #pragma once
21 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 struct ListBase;
31 struct Scene;
32 struct Sequence;
33 
34 /* SeqLoadData.flags */
35 typedef enum eSeqLoadFlags {
37  SEQ_LOAD_SOUND_MONO = (1 << 2),
41 
42 /* Api for adding new sequence strips. */
43 typedef struct SeqLoadData {
45  int channel;
46  char name[64]; /* Strip name. */
47  char path[1024]; /* 1024 = FILE_MAX */
48  struct {
49  int len;
50  int end_frame;
51  } image; /* Only for image strips. */
52  struct Scene *scene; /* Only for scene strips. */
53  struct MovieClip *clip; /* Only for clip strips. */
54  struct Mask *mask; /* Only for mask strips. */
55  struct {
56  int type;
57  int end_frame;
58  struct Sequence *seq1;
59  struct Sequence *seq2;
60  struct Sequence *seq3;
61  } effect; /* Only for effect strips. */
67  bool allow_invalid_file; /* Used by RNA API to create placeholder strips. */
69 
70 void SEQ_add_load_data_init(struct SeqLoadData *load_data,
71  const char *name,
72  const char *path,
73  const int start_frame,
74  const int channel);
75 struct Sequence *SEQ_add_image_strip(struct Main *bmain,
76  struct Scene *scene,
77  struct ListBase *seqbase,
78  struct SeqLoadData *load_data);
79 struct Sequence *SEQ_add_sound_strip(struct Main *bmain,
80  struct Scene *scene,
81  struct ListBase *seqbase,
82  struct SeqLoadData *load_data,
83  const double audio_offset);
84 struct Sequence *SEQ_add_meta_strip(struct Scene *scene,
85  struct ListBase *seqbase,
86  struct SeqLoadData *load_data);
87 struct Sequence *SEQ_add_movie_strip(struct Main *bmain,
88  struct Scene *scene,
89  struct ListBase *seqbase,
90  struct SeqLoadData *load_data,
91  double *r_video_start_offset);
92 struct Sequence *SEQ_add_scene_strip(struct Scene *scene,
93  struct ListBase *seqbase,
94  struct SeqLoadData *load_data);
96  struct ListBase *seqbase,
97  struct SeqLoadData *load_data);
98 struct Sequence *SEQ_add_mask_strip(struct Scene *scene,
99  struct ListBase *seqbase,
100  struct SeqLoadData *load_data);
101 struct Sequence *SEQ_add_effect_strip(struct Scene *scene,
102  struct ListBase *seqbase,
103  struct SeqLoadData *load_data);
104 void SEQ_add_image_set_directory(struct Sequence *seq, char *path);
105 void SEQ_add_image_load_file(struct Sequence *seq, size_t strip_frame, char *filename);
106 void SEQ_add_image_init_alpha_mode(struct Sequence *seq);
107 void SEQ_add_reload_new_file(struct Main *bmain,
108  struct Scene *scene,
109  struct Sequence *seq,
110  const bool lock_range);
111 void SEQ_add_movie_reload_if_needed(struct Main *bmain,
112  struct Scene *scene,
113  struct Sequence *seq,
114  bool *r_was_reloaded,
115  bool *r_can_produce_frames);
116 
117 #ifdef __cplusplus
118 }
119 #endif
eSeqImageFitMethod
struct Sequence * SEQ_add_movieclip_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:179
struct SeqLoadData SeqLoadData
void SEQ_add_reload_new_file(struct Main *bmain, struct Scene *scene, struct Sequence *seq, const bool lock_range)
Definition: strip_add.c:623
struct Sequence * SEQ_add_effect_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:221
void SEQ_add_image_set_directory(struct Sequence *seq, char *path)
Definition: strip_add.c:264
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:795
void SEQ_add_image_init_alpha_mode(struct Sequence *seq)
Definition: strip_add.c:287
struct Sequence * SEQ_add_scene_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:158
void SEQ_add_load_data_init(struct SeqLoadData *load_data, const char *name, const char *path, const int start_frame, const int channel)
Definition: strip_add.c:82
struct Sequence * SEQ_add_sound_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data, const double audio_offset)
eSeqLoadFlags
Definition: SEQ_add.h:35
@ SEQ_LOAD_SOUND_MONO
Definition: SEQ_add.h:37
@ SEQ_LOAD_SOUND_CACHE
Definition: SEQ_add.h:36
@ SEQ_LOAD_SET_VIEW_TRANSFORM
Definition: SEQ_add.h:39
@ SEQ_LOAD_MOVIE_SYNC_FPS
Definition: SEQ_add.h:38
struct Sequence * SEQ_add_movie_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data, double *r_video_start_offset)
Definition: strip_add.c:508
struct Sequence * SEQ_add_mask_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:200
struct Sequence * SEQ_add_image_strip(struct Main *bmain, struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:326
struct Sequence * SEQ_add_meta_strip(struct Scene *scene, struct ListBase *seqbase, struct SeqLoadData *load_data)
Definition: strip_add.c:482
void SEQ_add_image_load_file(struct Sequence *seq, size_t strip_frame, char *filename)
Definition: strip_add.c:276
Scene scene
Definition: BKE_main.h:116
struct Sequence * seq2
Definition: SEQ_add.h:59
int len
Definition: SEQ_add.h:49
char views_format
Definition: SEQ_add.h:65
bool use_multiview
Definition: SEQ_add.h:64
struct MovieClip * clip
Definition: SEQ_add.h:53
struct SeqLoadData::@1139 image
eSeqImageFitMethod fit_method
Definition: SEQ_add.h:63
struct Scene * scene
Definition: SEQ_add.h:52
int channel
Definition: SEQ_add.h:45
struct Sequence * seq3
Definition: SEQ_add.h:60
struct Stereo3dFormat * stereo3d_format
Definition: SEQ_add.h:66
char path[1024]
Definition: SEQ_add.h:47
bool allow_invalid_file
Definition: SEQ_add.h:67
int end_frame
Definition: SEQ_add.h:50
int start_frame
Definition: SEQ_add.h:44
char name[64]
Definition: SEQ_add.h:46
struct Mask * mask
Definition: SEQ_add.h:54
struct SeqLoadData::@1140 effect
eSeqLoadFlags flags
Definition: SEQ_add.h:62
int type
Definition: SEQ_add.h:56
struct Sequence * seq1
Definition: SEQ_add.h:58
ListBase seqbase