~siretart/ubuntu/utopic/blender/libav10

« back to all changes in this revision

Viewing changes to source/blender/makesdna/DNA_sequence_types.h

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2012-07-23 08:54:18 UTC
  • mfrom: (14.2.16 sid)
  • mto: (14.2.19 sid)
  • mto: This revision was merged to the branch mainline in revision 42.
  • Revision ID: package-import@ubuntu.com-20120723085418-9foz30v6afaf5ffs
Tags: 2.63a-2
* debian/: Cycles support added (Closes: #658075)
  For now, this top feature has been enabled only
  on [any-amd64 any-i386] architectures because
  of OpenImageIO failing on all others
* debian/: scripts installation path changed
  from /usr/lib to /usr/share:
  + debian/patches/: patchset re-worked for path changing
  + debian/control: "Breaks" field added on yafaray-exporter

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * blenlib/DNA_sequence_types.h (mar-2001 nzc)
3
 
 *
4
 
 * $Id: DNA_sequence_types.h 30255 2010-07-13 09:28:01Z campbellbarton $
5
 
 *
 
1
/*
6
2
 * ***** BEGIN GPL LICENSE BLOCK *****
7
3
 *
8
4
 * This program is free software; you can redistribute it and/or
28
24
 *
29
25
 * ***** END GPL LICENSE BLOCK *****
30
26
 */
31
 
#ifndef DNA_SEQUENCE_TYPES_H
32
 
#define DNA_SEQUENCE_TYPES_H
33
 
 
 
27
/** \file DNA_sequence_types.h
 
28
 *  \ingroup DNA
 
29
 *  \since mar-2001
 
30
 *  \author nzc
 
31
 */
 
32
 
 
33
#ifndef __DNA_SEQUENCE_TYPES_H__
 
34
#define __DNA_SEQUENCE_TYPES_H__
 
35
 
 
36
#include "DNA_defs.h"
34
37
#include "DNA_listBase.h"
35
 
 
36
 
/* needed for sound support */
37
 
#include "DNA_sound_types.h"
 
38
#include "DNA_vec_types.h"
38
39
 
39
40
struct Ipo;
40
41
struct Scene;
 
42
struct bSound;
 
43
struct MovieClip;
41
44
 
42
 
/* strlens; 80= FILE_MAXFILE, 160= FILE_MAXDIR */
 
45
/* strlens; 256= FILE_MAXFILE, 768= FILE_MAXDIR */
43
46
 
44
47
typedef struct StripElem {
45
 
        char name[80];
 
48
        char name[256];
 
49
        int orig_width, orig_height;
46
50
} StripElem;
47
51
 
48
 
typedef struct TStripElem {
49
 
        struct ImBuf *ibuf;
50
 
        struct ImBuf *ibuf_comp;
51
 
        struct TStripElem *se1, *se2, *se3;
52
 
        short ok;
53
 
        short flag;
54
 
        int nr;
55
 
} TStripElem;
56
 
 
57
52
typedef struct StripCrop {
58
53
        int top;
59
54
        int bottom;
77
72
} StripColorBalance;
78
73
 
79
74
typedef struct StripProxy {
80
 
        char dir[160];
81
 
        char file[80];
82
 
        struct anim *anim;
83
 
        short size;
84
 
        short quality;
85
 
        int pad;
 
75
        char dir[768];         // custom directory for index and proxy files
 
76
                               // (defaults to BL_proxy)
 
77
 
 
78
        char file[256];        // custom file
 
79
        struct anim *anim;     // custom proxy anim file
 
80
 
 
81
        short tc;              // time code in use
 
82
 
 
83
        short quality;         // proxy build quality
 
84
        short build_size_flags;// size flags (see below) of all proxies 
 
85
                               // to build
 
86
        short build_tc_flags;  // time code flags (see below) of all tc indices
 
87
                               // to build
86
88
} StripProxy;
87
89
 
88
90
typedef struct Strip {
89
91
        struct Strip *next, *prev;
90
 
        int rt, len, us, done;
 
92
        int us, done;
91
93
        int startstill, endstill;
92
 
        StripElem *stripdata;
93
 
        char dir[160];
94
 
        int orx, ory;
 
94
        StripElem *stripdata;  /* only used as an array in IMAGE sequences(!),
 
95
                                * and as a 1-element array in MOVIE sequences,
 
96
                                * NULL for all other strip-types */
 
97
        char dir[768];
95
98
        StripProxy *proxy;
96
99
        StripCrop *crop;
97
100
        StripTransform *transform;
98
101
        StripColorBalance *color_balance;
99
 
        TStripElem *tstripdata;
100
 
        TStripElem *tstripdata_startstill;
101
 
        TStripElem *tstripdata_endstill;
102
 
        struct ImBuf *ibuf_startstill;
103
 
        struct ImBuf *ibuf_endstill;
104
102
} Strip;
105
103
 
106
104
 
107
105
typedef struct PluginSeq {
108
 
        char name[256];
 
106
        char name[1024]; /* 1024 = FILE_MAX */
109
107
        void *handle;
110
108
 
111
109
        char *pname;
132
130
        struct Sequence *next, *prev;
133
131
        void *tmp; /* tmp var for copying, and tagging for linked selection */
134
132
        void *lib; /* needed (to be like ipo), else it will raise libdata warnings, this should never be used */
135
 
        char name[24]; /* SEQ_NAME_MAXSTR - name, set by default and needs to be unique, for RNA paths */
 
133
        char name[64]; /* SEQ_NAME_MAXSTR - name, set by default and needs to be unique, for RNA paths */
136
134
 
137
135
        int flag, type; /*flags bitmap (see below) and the type of sequence*/
138
 
        int len; /* the length of the contense of this strip - before handles are applied */
 
136
        int len; /* the length of the contents of this strip - before handles are applied */
139
137
        int start, startofs, endofs;
140
138
        int startstill, endstill;
141
139
        int machine, depth; /*machine - the strip channel, depth - the depth in the sequence when dealing with metastrips */
142
140
        int startdisp, enddisp; /*starting and ending points in the sequence*/
143
 
        float sat, pad;
 
141
        float sat;
144
142
        float mul, handsize;
145
 
                                        /* is sfra needed anymore? - it looks like its only used in one place */
146
 
        int sfra;               /* starting frame according to the timeline of the scene. */
147
 
        int anim_preseek;
 
143
 
 
144
        short anim_preseek;
 
145
        short streamindex;   /* streamindex for movie or sound files with several streams */
 
146
        int multicam_source;  /* for multicam source selection */
 
147
        int clip_flag;          /* MOVIECLIP render flags */
148
148
 
149
149
        Strip *strip;
150
150
 
151
 
        struct Ipo *ipo;        // xxx depreceated... old animation system
 
151
        struct Ipo *ipo  DNA_DEPRECATED;  /* old animation system, deprecated for 2.5 */
152
152
        struct Scene *scene;
153
153
        struct Object *scene_camera; /* override scene camera */
154
154
 
155
 
        struct anim *anim;
 
155
        struct anim *anim;      /* for MOVIE strips */
 
156
        struct MovieClip *clip; /* for MOVIECLIP strips */
 
157
 
156
158
        float effect_fader;
157
159
        float speed_fader;
158
160
 
167
169
        void *scene_sound;
168
170
        float volume;
169
171
 
170
 
        float level, pan;       /* level in dB (0=full), pan -1..1 */
171
 
        int scenenr;          /* for scene selection */
172
 
        int multicam_source;  /* for multicam source selection */
 
172
        float pitch, pan;       /* pitch (-0.1..10), pan -2..2 */
173
173
        float strobe;
174
174
 
175
175
        void *effectdata;       /* Struct pointer for effect settings */
177
177
        int anim_startofs;    /* only use part of animation file */
178
178
        int anim_endofs;      /* is subtle different to startofs / endofs */
179
179
 
 
180
 
180
181
        int blend_mode;
181
182
        float blend_opacity;
182
183
 
 
184
                        /* is sfra needed anymore? - it looks like its only used in one place */
 
185
        int sfra, pad;  /* starting frame according to the timeline of the scene. */
183
186
} Sequence;
184
187
 
185
188
typedef struct MetaStack {
195
198
        
196
199
        /* Context vars, used to be static */
197
200
        Sequence *act_seq;
198
 
        char act_imagedir[256];
199
 
        char act_sounddir[256];
 
201
        char act_imagedir[1024]; /* 1024 = FILE_MAX */
 
202
        char act_sounddir[1024]; /* 1024 = FILE_MAX */
200
203
 
201
204
        int over_ofs, over_cfra;
202
205
        int over_flag, pad;
221
224
typedef struct TransformVars {
222
225
        float ScalexIni;
223
226
        float ScaleyIni;
224
 
        float ScalexFin; /* deprecated - old transform strip */
225
 
        float ScaleyFin; /* deprecated - old transform strip */
226
227
        float xIni;
227
 
        float xFin; /* deprecated - old transform strip */
228
228
        float yIni;
229
 
        float yFin; /* deprecated - old transform strip */
230
229
        float rotIni;
231
 
        float rotFin; /* deprecated - old transform strip */
232
230
        int percent;
233
231
        int interpolation;
234
232
        int uniform_scale; /* preserve aspect/ratio when scaling */
247
245
        int lastValidFrame;
248
246
} SpeedControlVars;
249
247
 
 
248
#define MAXSEQ          32
 
249
 
 
250
#define SELECT 1
 
251
 
250
252
/* Editor->over_flag */
251
253
#define SEQ_EDIT_OVERLAY_SHOW                   1
252
254
#define SEQ_EDIT_OVERLAY_ABS                    2
260
262
#define SEQ_SPEED_COMPRESS_IPO_Y 4
261
263
 
262
264
/* ***************** SEQUENCE ****************** */
263
 
#define SEQ_NAME_MAXSTR                 24
 
265
#define SEQ_NAME_MAXSTR                 64
264
266
 
265
267
/* seq->flag */
266
 
#define SEQ_LEFTSEL                             2
267
 
#define SEQ_RIGHTSEL                    4
268
 
#define SEQ_OVERLAP                             8
269
 
#define SEQ_FILTERY                             16
270
 
#define SEQ_MUTE                                32
271
 
#define SEQ_MAKE_PREMUL                 64
272
 
#define SEQ_REVERSE_FRAMES              128
273
 
#define SEQ_IPO_FRAME_LOCKED    256
274
 
#define SEQ_EFFECT_NOT_LOADED   512
275
 
#define SEQ_FLAG_DELETE                 1024
276
 
#define SEQ_FLIPX                               2048
277
 
#define SEQ_FLIPY                               4096
278
 
#define SEQ_MAKE_FLOAT                          8192
279
 
#define SEQ_LOCK                                16384
280
 
#define SEQ_USE_PROXY                           32768
281
 
#define SEQ_USE_TRANSFORM                       65536
282
 
#define SEQ_USE_CROP                           131072
283
 
#define SEQ_USE_COLOR_BALANCE                  262144
284
 
#define SEQ_USE_PROXY_CUSTOM_DIR               524288
285
 
#define SEQ_USE_PROXY_CUSTOM_FILE             2097152
286
 
#define SEQ_USE_EFFECT_DEFAULT_FADE           4194304
 
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)
 
287
 
 
288
#define SEQ_USE_PROXY_CUSTOM_FILE   (1<<21)
 
289
#define SEQ_USE_EFFECT_DEFAULT_FADE (1<<22)
 
290
 
 
291
// 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)
 
296
 
 
297
#define SEQ_INVALID_EFFECT          (1<<31)
287
298
 
288
299
/* convenience define for all selection flags */
289
300
#define SEQ_ALLSEL      (SELECT+SEQ_LEFTSEL+SEQ_RIGHTSEL)
290
301
 
291
 
/* deprecated, dont use a flag anymore*/
 
302
/* deprecated, don't use a flag anymore*/
292
303
/*#define SEQ_ACTIVE                            1048576*/
293
304
 
294
305
#define SEQ_COLOR_BALANCE_INVERSE_GAIN 1
295
306
#define SEQ_COLOR_BALANCE_INVERSE_GAMMA 2
296
307
#define SEQ_COLOR_BALANCE_INVERSE_LIFT 4
297
308
 
 
309
/* !!! has to be same as IMB_imbuf.h IMB_PROXY_... and IMB_TC_... */
 
310
 
 
311
#define SEQ_PROXY_IMAGE_SIZE_25                 1
 
312
#define SEQ_PROXY_IMAGE_SIZE_50                 2
 
313
#define SEQ_PROXY_IMAGE_SIZE_75                 4
 
314
#define SEQ_PROXY_IMAGE_SIZE_100                8
 
315
 
 
316
#define SEQ_PROXY_TC_NONE                       0
 
317
#define SEQ_PROXY_TC_RECORD_RUN                 1
 
318
#define SEQ_PROXY_TC_FREE_RUN                   2
 
319
#define SEQ_PROXY_TC_INTERP_REC_DATE_FREE_RUN   4
 
320
#define SEQ_PROXY_TC_RECORD_RUN_NO_GAPS         8
 
321
#define SEQ_PROXY_TC_ALL                        15
 
322
 
298
323
/* seq->type WATCH IT: SEQ_EFFECT BIT is used to determine if this is an effect strip!!! */
299
324
#define SEQ_IMAGE               0
300
325
#define SEQ_META                1
303
328
#define SEQ_RAM_SOUND           4
304
329
#define SEQ_HD_SOUND            5
305
330
#define SEQ_SOUND               4
 
331
#define SEQ_MOVIECLIP           6
306
332
 
307
333
#define SEQ_EFFECT              8
308
334
#define SEQ_CROSS               8
320
346
#define SEQ_COLOR               28
321
347
#define SEQ_SPEED               29
322
348
#define SEQ_MULTICAM            30
323
 
#define SEQ_EFFECT_MAX          30
 
349
#define SEQ_ADJUSTMENT          31
 
350
#define SEQ_EFFECT_MAX          31
324
351
 
325
352
#define STRIPELEM_FAILED       0
326
353
#define STRIPELEM_OK           1
327
354
 
328
355
#define STRIPELEM_PREVIEW_DONE  1
329
356
 
 
357
#define SEQ_MOVIECLIP_RENDER_UNDISTORTED (1<<0)
 
358
#define SEQ_MOVIECLIP_RENDER_STABILIZED  (1<<1)
 
359
 
330
360
#define SEQ_BLEND_REPLACE      0
331
361
/* all other BLEND_MODEs are simple SEQ_EFFECT ids and therefore identical
332
 
   to the table above. (Only those effects that handle _exactly_ two inputs,
333
 
   otherwise, you can't really blend, right :) !)
334
 
*/
335
 
 
336
 
 
337
 
#define SEQ_HAS_PATH(_seq) (ELEM5((_seq)->type, SEQ_MOVIE, SEQ_IMAGE, SEQ_SOUND, SEQ_RAM_SOUND, SEQ_HD_SOUND))
 
362
 * to the table above. (Only those effects that handle _exactly_ two inputs,
 
363
 * otherwise, you can't really blend, right :) !)
 
364
 */
 
365
 
 
366
 
 
367
#define SEQ_HAS_PATH(_seq) (ELEM4((_seq)->type, SEQ_MOVIE, SEQ_IMAGE, SEQ_RAM_SOUND, SEQ_HD_SOUND))
338
368
 
339
369
#endif
340
370