From 38c4a3a209aa920d2d851c4250425bbfd66b508b Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 5 Feb 2006 19:18:55 +0000 Subject: * Adds userdef-types for memcache limitor and frameserver-rendering * Boosts the blender frame limit by changing the type of the frame number from short to int everywhere. Without this, timelines longer than a few minutes are impossible to handle. * Adds several types for ffmpeg input/output, hdaudio-tracks in sequencer --- source/blender/makesdna/DNA_object_force.h | 4 +-- source/blender/makesdna/DNA_scene_types.h | 52 ++++++++++++++++++++-------- source/blender/makesdna/DNA_sequence_types.h | 38 +++++++++++--------- source/blender/makesdna/DNA_space_types.h | 8 ++++- source/blender/makesdna/DNA_userdef_types.h | 3 ++ 5 files changed, 72 insertions(+), 33 deletions(-) (limited to 'source/blender/makesdna') diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 5d716ffcafe..03487f478f9 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -91,8 +91,8 @@ typedef struct SoftBody { float infrict; /* softbody inner springs friction */ /* baking */ - short sfra, efra; - short interval, pad2; + int sfra, efra; + int interval, pad2; SBVertex **keys; /* array of size totpointkey */ int totpointkey, totkey; /* if totpointkey != totpoint or totkey!- (efra-sfra)/interval -> free keys */ diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index ecc71c093c6..0cef85afc4e 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -59,10 +59,10 @@ typedef struct Base { } Base; typedef struct AviCodecData { - void *lpFormat; /* save format */ - void *lpParms; /* compressor options */ - unsigned int cbFormat; /* size of lpFormat buffer */ - unsigned int cbParms; /* size of lpParms buffer */ + void *lpFormat; /* save format */ + void *lpParms; /* compressor options */ + unsigned int cbFormat; /* size of lpFormat buffer */ + unsigned int cbParms; /* size of lpParms buffer */ unsigned int fccType; /* stream type, for consistency */ unsigned int fccHandler; /* compressor */ @@ -78,15 +78,32 @@ typedef struct AviCodecData { typedef struct QuicktimeCodecData { - void *cdParms; /* codec/compressor options */ - void *pad; /* padding */ + void *cdParms; /* codec/compressor options */ + void *pad; /* padding */ - unsigned int cdSize; /* size of cdParms buffer */ - unsigned int pad2; /* padding */ + unsigned int cdSize; /* size of cdParms buffer */ + unsigned int pad2; /* padding */ char qtcodecname[128]; } QuicktimeCodecData; +typedef struct FFMpegCodecData { + int type; + int codec; + int audio_codec; + int video_bitrate; + int audio_bitrate; + int gop_size; + int flags; + + int rc_min_rate; + int rc_max_rate; + int rc_buffer_size; + int mux_packet_size; + int mux_rate; +} FFMpegCodecData; + + typedef struct AudioData { int mixrate; float main; /* Main mix in dB */ @@ -125,8 +142,12 @@ typedef struct SceneRenderLayer { typedef struct RenderData { struct AviCodecData *avicodecdata; struct QuicktimeCodecData *qtcodecdata; + struct FFMpegCodecData ffcodecdata; + + int cfra, sfra, efra; /* fames as in 'images' */ + + short pad1; - short cfra, sfra, efra; /* fames as in 'images' */ short images, framapto, flag; float ctime; /* use for calcutions */ float framelen, blurfac; @@ -135,14 +156,13 @@ typedef struct RenderData { float edgeR, edgeG, edgeB; short fullscreen, xplay, yplay, freqplay; /* standalone player */ - short depth, attrib, rt1, rt2; /* standalone player */ + short depth, attrib, rt1, rt2; /* standalone player */ - short stereomode; /* standalone player stereo settings */ + short stereomode; /* standalone player stereo settings */ short dimensionspreset; /* for the dimensions presets menu */ - short filtertype; /* filter is box, tent, gauss, mitch, etc */ - + short filtertype; /* filter is box, tent, gauss, mitch, etc */ short size, maximsize; /* size in %, max in Kb */ /* from buttons: */ @@ -266,7 +286,7 @@ typedef struct RenderData { float YF_gamma, YF_exposure, YF_raybias, YF_AApixelsize, YF_AAthreshold; char backbuf[160], pic[160], ftype[160]; - + } RenderData; @@ -451,6 +471,8 @@ typedef struct Scene { #define R_RADHDR 21 #define R_TIFF 22 #define R_OPENEXR 23 +#define R_FFMPEG 24 +#define R_FRAMESERVER 25 /* subimtype, flag options for imtype */ #define R_OPENEXR_HALF 1 @@ -498,6 +520,8 @@ typedef struct Scene { #define AUDIO_SYNC 2 #define AUDIO_SCRUB 4 +#define FFMPEG_MULTIPLEX_AUDIO 1 +#define FFMPEG_AUTOSPLIT_OUTPUT 2 #ifdef __cplusplus } diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index a4b5a889503..6115a82457f 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -48,19 +48,18 @@ typedef struct StripElem { char name[80]; struct ImBuf *ibuf; struct StripElem *se1, *se2, *se3; - short ok, nr; - int pad; - + short ok; + unsigned char isneeded; + unsigned char pad; + int nr; } StripElem; typedef struct Strip { struct Strip *next, *prev; - short rt, len, us, done; + int rt, len, us, done; StripElem *stripdata; char dir[160]; - short orx, ory; - int pad; - + int orx, ory; } Strip; @@ -77,6 +76,9 @@ typedef struct PluginSeq { float data[32]; + void *instance_private_data; + void **current_private_data; + void (*doit)(void); void (*callback)(void); @@ -91,14 +93,14 @@ typedef struct Sequence { void *lib; char name[24]; - short flag, type; /*flags bitmap (see below) and the type of sequence*/ + short flag, type; /*flags bitmap (see below) and the type of sequence*/ int len; int start, startofs, endofs; int startstill, endstill; int machine, depth; - int startdisp, enddisp; /*starting and ending points in the sequence*/ + int startdisp, enddisp; /*starting and ending points in the sequence*/ float mul, handsize; - int sfra; /* starting frame according to the timeline of the scene */ + int sfra; /* starting frame according to the timeline of the scene */ Strip *strip; StripElem *curelem; @@ -117,11 +119,12 @@ typedef struct Sequence { ListBase seqbase; struct bSound *sound; /* the linked "bSound" object */ - float level, pan; /* level in dB (0=full), pan -1..1 */ - int curpos; /* last sample position in audio_fill() */ + struct hdaudio *hdaudio; /* external hdaudio object */ + float level, pan; /* level in dB (0=full), pan -1..1 */ + int curpos; /* last sample position in audio_fill() */ float strobe; - void *effectdata; /* Struct pointer for effect settings */ + void *effectdata; /* Struct pointer for effect settings */ } Sequence; @@ -135,8 +138,9 @@ typedef struct Editing { ListBase *seqbasep; ListBase seqbase; ListBase metastack; - short flag, rt; - int pad; + short flag; + short pad; + int rt; } Editing; /* ************* Effect Variable Structs ********* */ @@ -165,13 +169,15 @@ typedef struct GlowVars { #define SEQ_MUTE 32 #define SEQ_MAKE_PREMUL 64 #define SEQ_REVERSE_FRAMES 128 +#define SEQ_IPO_FRAME_LOCKED 256 /* seq->type WATCH IT: SEQ_EFFECT BIT is used to determine if this is an effect strip!!! */ #define SEQ_IMAGE 0 #define SEQ_META 1 #define SEQ_SCENE 2 #define SEQ_MOVIE 3 -#define SEQ_SOUND 4 +#define SEQ_RAM_SOUND 4 +#define SEQ_HD_SOUND 5 #define SEQ_EFFECT 8 #define SEQ_CROSS 8 diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 24e341fa3a0..2be600e8f44 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -146,7 +146,8 @@ typedef struct SpaceSeq { View2D v2d; short mainb, zoom; - int pad2; + short chanshown; + short pad2; } SpaceSeq; @@ -560,5 +561,10 @@ typedef struct SpaceImaSel { #define TIME_ALL_BUTS_WIN 8 #define TIME_WITH_SEQ_AUDIO 16 +/* sseq->mainb */ +#define SEQ_DRAW_SEQUENCE 0 +#define SEQ_DRAW_IMG_IMBUF 1 +#define SEQ_DRAW_IMG_WAVEFORM 2 +#define SEQ_DRAW_IMG_VECTORSCOPE 3 #endif diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index f5cc2ce4810..6faf07819d7 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -161,6 +161,9 @@ typedef struct UserDef { struct SolidLight light[3]; short tw_hotspot, tw_flag, tw_handlesize, tw_size; int textimeout, texcollectrate; + int memcachelimit; + short frameserverport; + short pad; short obcenter_dia, pad1, pad2, pad3; } UserDef; -- cgit v1.2.3