MLT  6.26.0
mlt_geometry.h
Go to the documentation of this file.
1 
23 #ifndef MLT_GEOMETRY_H
24 #define MLT_GEOMETRY_H
25 
26 #include "mlt_types.h"
27 
33 {
34  /* Will be 1 when this is a key frame */
35  int key;
36  /* The actual frame this corresponds to */
37  int frame;
38  /* Distort */
39  int distort;
40  /* x,y are upper left */
41  float x, y, w, h, mix;
42  /* Indicates which values are fixed */
43  int f[ 5 ];
44 };
45 
51 {
52  void *local;
53 };
54 
55 /* Create a new geometry structure */
57 /* Parse the geometry specification for a given length and normalised width/height (-1 for default) */
58 extern int mlt_geometry_parse( mlt_geometry self, char *data, int length, int nw, int nh );
59 /* Conditionally refresh the geometry if it's modified */
60 extern int mlt_geometry_refresh( mlt_geometry self, char *data, int length, int nw, int nh );
61 /* Get and set the length */
62 extern int mlt_geometry_get_length( mlt_geometry self );
63 extern void mlt_geometry_set_length( mlt_geometry self, int length );
64 /* Parse an item - doesn't affect the geometry itself but uses current information for evaluation */
65 /* (item->frame should be specified if not included in the data itself) */
66 extern int mlt_geometry_parse_item( mlt_geometry self, mlt_geometry_item item, char *data );
67 /* Fetch a geometry item for an absolute position */
68 extern int mlt_geometry_fetch( mlt_geometry self, mlt_geometry_item item, float position );
69 /* Specify a geometry item at an absolute position */
70 extern int mlt_geometry_insert( mlt_geometry self, mlt_geometry_item item );
71 /* Remove the key at the specified position */
72 extern int mlt_geometry_remove( mlt_geometry self, int position );
73 /* Typically, re-interpolate after a series of insertions or removals. */
74 extern void mlt_geometry_interpolate( mlt_geometry self );
75 /* Get the key at the position or the next following */
76 extern int mlt_geometry_next_key( mlt_geometry self, mlt_geometry_item item, int position );
77 extern int mlt_geometry_prev_key( mlt_geometry self, mlt_geometry_item item, int position );
78 /* Serialise the current geometry */
79 extern char *mlt_geometry_serialise_cut( mlt_geometry self, int in, int out );
80 extern char *mlt_geometry_serialise( mlt_geometry self );
81 /* Close the geometry */
82 extern void mlt_geometry_close( mlt_geometry self );
83 
84 #endif
85 
mlt_tokeniser_close
void mlt_tokeniser_close(mlt_tokeniser tokeniser)
Close the tokeniser.
Definition: mlt_tokeniser.c:172
mlt_geometry_refresh
int mlt_geometry_refresh(mlt_geometry self, char *data, int length, int nw, int nh)
Definition: mlt_geometry.c:270
mlt_geometry.h
geometry animation API (deprecated)
mlt_geometry_refresh
int mlt_geometry_refresh(mlt_geometry self, char *data, int length, int nw, int nh)
Definition: mlt_geometry.c:270
mlt_geometry_serialise_cut
char * mlt_geometry_serialise_cut(mlt_geometry self, int in, int out)
Definition: mlt_geometry.c:582
mlt_geometry_s
geometry object (deprecated)
Definition: mlt_geometry.h:50
mlt_geometry_init
mlt_geometry mlt_geometry_init()
Definition: mlt_geometry.c:58
geometry_item_s
private part of geometry animation item (deprecated)
Definition: mlt_geometry.c:36
mlt_geometry_item_s::distort
int distort
Definition: mlt_geometry.h:39
mlt_geometry_remove
int mlt_geometry_remove(mlt_geometry self, int position)
Definition: mlt_geometry.c:527
mlt_tokeniser_get_string
char * mlt_tokeniser_get_string(mlt_tokeniser tokeniser, int index)
Get a token as a string.
Definition: mlt_tokeniser.c:161
mlt_types.h
Provides forward definitions of all public types.
mlt_geometry_init
mlt_geometry mlt_geometry_init()
Definition: mlt_geometry.c:58
mlt_profile.h
video output definition
mlt_geometry_insert
int mlt_geometry_insert(mlt_geometry self, mlt_geometry_item item)
Definition: mlt_geometry.c:465
mlt_geometry_clean
static void mlt_geometry_clean(mlt_geometry self)
Definition: mlt_geometry.c:201
mlt_geometry_fetch
int mlt_geometry_fetch(mlt_geometry self, mlt_geometry_item item, float position)
Definition: mlt_geometry.c:401
mlt_tokeniser_count
int mlt_tokeniser_count(mlt_tokeniser tokeniser)
Get the number of tokens.
Definition: mlt_tokeniser.c:153
mlt_geometry_get_length
int mlt_geometry_get_length(mlt_geometry self)
Definition: mlt_geometry.c:282
mlt_geometry_item_s::x
float x
Definition: mlt_geometry.h:41
mlt_geometry_parse_item
int mlt_geometry_parse_item(mlt_geometry self, mlt_geometry_item item, char *data)
Definition: mlt_geometry.c:300
mlt_geometry_parse_item
int mlt_geometry_parse_item(mlt_geometry self, mlt_geometry_item item, char *value)
Definition: mlt_geometry.c:300
mlt_geometry_item_s::f
int f[5]
Definition: mlt_geometry.h:43
mlt_geometry_item_s::y
float y
Definition: mlt_geometry.h:41
mlt_tokeniser_init
mlt_tokeniser mlt_tokeniser_init()
Initialise a tokeniser.
Definition: mlt_tokeniser.c:33
geometry
struct geometry_s * geometry
geometry_s::length
int length
Definition: mlt_geometry.c:50
mlt_geometry_fetch
int mlt_geometry_fetch(mlt_geometry self, mlt_geometry_item item, float position)
Definition: mlt_geometry.c:401
geometry_s::item
geometry_item item
Definition: mlt_geometry.c:53
mlt_geometry_prev_key
int mlt_geometry_prev_key(mlt_geometry self, mlt_geometry_item item, int position)
Definition: mlt_geometry.c:565
mlt_geometry_parse
int mlt_geometry_parse(mlt_geometry self, char *data, int length, int nw, int nh)
Definition: mlt_geometry.c:214
mlt_geometry_item_s::mix
float mix
Definition: mlt_geometry.h:41
mlt_geometry_item_s
geometry animation item (deprecated)
Definition: mlt_geometry.h:32
mlt_geometry_next_key
int mlt_geometry_next_key(mlt_geometry self, mlt_geometry_item item, int position)
Definition: mlt_geometry.c:547
mlt_factory.h
the factory method interfaces
mlt_geometry_s::local
void * local
Definition: mlt_geometry.h:52
geometry_item_s::prev
struct geometry_item_s * prev
Definition: mlt_geometry.c:39
mlt_geometry_item_s::frame
int frame
Definition: mlt_geometry.h:37
mlt_geometry_close
void mlt_geometry_close(mlt_geometry self)
Definition: mlt_geometry.c:704
mlt_geometry_get_length
int mlt_geometry_get_length(mlt_geometry self)
Definition: mlt_geometry.c:282
mlt_tokeniser.h
string tokeniser
mlt_geometry_insert
int mlt_geometry_insert(mlt_geometry self, mlt_geometry_item item)
Definition: mlt_geometry.c:465
geometry_s
private part of geometry object (deprecated)
Definition: mlt_geometry.c:47
mlt_geometry_parse
int mlt_geometry_parse(mlt_geometry self, char *data, int length, int nw, int nh)
Definition: mlt_geometry.c:214
linearstep
static double linearstep(double start, double end, double position, int length)
A linear step.
Definition: mlt_geometry.c:82
mlt_geometry_next_key
int mlt_geometry_next_key(mlt_geometry self, mlt_geometry_item item, int position)
Definition: mlt_geometry.c:547
geometry_s::data
char * data
Definition: mlt_geometry.c:49
geometry_item_s::data
struct mlt_geometry_item_s data
Definition: mlt_geometry.c:38
mlt_geometry_drop
static int mlt_geometry_drop(mlt_geometry self, geometry_item item)
Definition: mlt_geometry.c:163
mlt_tokeniser
Tokeniser class.
Definition: mlt_tokeniser.h:30
mlt_geometry_serialise
char * mlt_geometry_serialise(mlt_geometry self)
Definition: mlt_geometry.c:691
mlt_geometry_interpolate
void mlt_geometry_interpolate(mlt_geometry self)
Definition: mlt_geometry.c:88
geometry_item_s::next
struct geometry_item_s * next
Definition: mlt_geometry.c:39
mlt_geometry_set_length
void mlt_geometry_set_length(mlt_geometry self, int length)
Definition: mlt_geometry.c:291
mlt_geometry_item_s::w
float w
Definition: mlt_geometry.h:41
geometry_s::nw
int nw
Definition: mlt_geometry.c:51
mlt_geometry_set_length
void mlt_geometry_set_length(mlt_geometry self, int length)
Definition: mlt_geometry.c:291
geometry_s::nh
int nh
Definition: mlt_geometry.c:52
mlt_tokeniser_parse_new
int mlt_tokeniser_parse_new(mlt_tokeniser tokeniser, char *string, const char *delimiter)
Parse a string by splitting on the delimiter provided.
Definition: mlt_tokeniser.c:84
geometry_item
struct geometry_item_s * geometry_item
private part of geometry animation item (deprecated)
mlt_geometry_close
void mlt_geometry_close(mlt_geometry self)
Definition: mlt_geometry.c:704
mlt_geometry_remove
int mlt_geometry_remove(mlt_geometry self, int position)
Definition: mlt_geometry.c:527
mlt_geometry_serialise
char * mlt_geometry_serialise(mlt_geometry self)
Definition: mlt_geometry.c:691
mlt_geometry_interpolate
void mlt_geometry_interpolate(mlt_geometry self)
Definition: mlt_geometry.c:88
mlt_geometry_serialise_cut
char * mlt_geometry_serialise_cut(mlt_geometry self, int in, int out)
Definition: mlt_geometry.c:582
mlt_geometry_item_s::h
float h
Definition: mlt_geometry.h:41
mlt_geometry_prev_key
int mlt_geometry_prev_key(mlt_geometry self, mlt_geometry_item item, int position)
Definition: mlt_geometry.c:565
mlt_geometry_item_s::key
int key
Definition: mlt_geometry.h:35