MLT  7.24.0
mlt_chain.h
Go to the documentation of this file.
1 
23 #ifndef MLT_CHAIN_H
24 #define MLT_CHAIN_H
25 
26 #include "mlt_link.h"
27 #include "mlt_producer.h"
28 
37 {
38  struct mlt_producer_s parent;
39  void *local;
40 };
41 
42 #define MLT_CHAIN_PRODUCER(chain) (&(chain)->parent)
43 #define MLT_CHAIN_SERVICE(chain) MLT_PRODUCER_SERVICE(MLT_CHAIN_PRODUCER(chain))
44 #define MLT_CHAIN_PROPERTIES(chain) MLT_SERVICE_PROPERTIES(MLT_CHAIN_SERVICE(chain))
45 
47 extern void mlt_chain_set_source(mlt_chain self, mlt_producer source);
49 extern int mlt_chain_attach(mlt_chain self, mlt_link link);
50 extern int mlt_chain_detach(mlt_chain self, mlt_link link);
52 extern int mlt_chain_move_link(mlt_chain self, int from, int to);
53 extern mlt_link mlt_chain_link(mlt_chain self, int index);
54 extern void mlt_chain_close(mlt_chain self);
56 
57 #endif
abstraction for all producer services
Chain class.
Definition: mlt_chain.h:37
mlt_producer mlt_chain_get_source(mlt_chain self)
Get the source producer.
Definition: mlt_chain.c:225
int mlt_chain_attach(mlt_chain self, mlt_link link)
Attach a link.
Definition: mlt_chain.c:243
int mlt_chain_detach(mlt_chain self, mlt_link link)
Detach a link.
Definition: mlt_chain.c:282
void * local
instance object
Definition: mlt_chain.h:39
mlt_link mlt_chain_link(mlt_chain self, int index)
Retrieve an attached link.
Definition: mlt_chain.c:372
int mlt_chain_move_link(mlt_chain self, int from, int to)
Reorder the attached links.
Definition: mlt_chain.c:332
void mlt_chain_set_source(mlt_chain self, mlt_producer source)
Set the source producer.
Definition: mlt_chain.c:110
int mlt_chain_link_count(mlt_chain self)
Get the number of links attached.
Definition: mlt_chain.c:313
struct mlt_producer_s parent
Definition: mlt_chain.h:38
void mlt_chain_close(mlt_chain self)
Close the chain and free its resources.
Definition: mlt_chain.c:389
mlt_chain mlt_chain_init(mlt_profile profile)
Construct a chain.
Definition: mlt_chain.c:62
void mlt_chain_attach_normalizers(mlt_chain self)
Attach normalizer links.
Definition: mlt_chain.c:414
Producer abstract service class.
Definition: mlt_producer.h:70
Profile class.
Definition: mlt_profile.h:35