MLT  7.24.0
mlt_producer.h
Go to the documentation of this file.
1 
23 #ifndef MLT_PRODUCER_H
24 #define MLT_PRODUCER_H
25 
26 #include "mlt_filter.h"
27 #include "mlt_profile.h"
28 #include "mlt_service.h"
29 
70 {
72  struct mlt_service_s parent;
73 
82 
90 
99 
102  void *close_object;
104  void *local;
105  void *child;
106 };
107 
108 /*
109  * Public final methods
110  */
111 
112 #define MLT_PRODUCER_SERVICE(producer) (&(producer)->parent)
113 #define MLT_PRODUCER_PROPERTIES(producer) MLT_SERVICE_PROPERTIES(MLT_PRODUCER_SERVICE(producer))
114 
115 extern int mlt_producer_init(mlt_producer self, void *child);
119 extern int mlt_producer_seek(mlt_producer self, mlt_position position);
120 extern int mlt_producer_seek_time(mlt_producer self, const char *time);
124 extern int mlt_producer_set_speed(mlt_producer self, double speed);
126 extern double mlt_producer_get_fps(mlt_producer self);
135 extern int mlt_producer_attach(mlt_producer self, mlt_filter filter);
136 extern int mlt_producer_detach(mlt_producer self, mlt_filter filter);
138 extern mlt_producer mlt_producer_cut(mlt_producer self, int in, int out);
146 void mlt_producer_set_creation_time(mlt_producer self, int64_t creation_time);
148 
149 #endif
abstraction for all filter services
video output definition
interface declaration for all service classes
mlt_time_format
The time string formats.
Definition: mlt_types.h:134
int32_t mlt_position
Definition: mlt_types.h:217
struct mlt_frame_s ** mlt_frame_ptr
pointer to Frame object
Definition: mlt_types.h:243
struct mlt_producer_s * mlt_producer
pointer to Producer object
Definition: mlt_types.h:248
void(* mlt_destructor)(void *)
pointer to destructor function
Definition: mlt_types.h:269
Filter abstract service class.
Definition: mlt_filter.h:40
Producer abstract service class.
Definition: mlt_producer.h:70
double mlt_producer_get_speed(mlt_producer self)
Get the playing speed.
Definition: mlt_producer.c:452
mlt_position mlt_producer_get_playtime(mlt_producer self)
Get the total play time.
Definition: mlt_producer.c:575
int mlt_producer_attach(mlt_producer self, mlt_filter filter)
Attach a filter.
Definition: mlt_producer.c:768
mlt_position mlt_producer_get_out(mlt_producer self)
Get the out point.
Definition: mlt_producer.c:563
int mlt_producer_set_speed(mlt_producer self, double speed)
Set the playing speed.
Definition: mlt_producer.c:440
int mlt_producer_seek(mlt_producer self, mlt_position position)
Seek to a specified position.
Definition: mlt_producer.c:338
mlt_position mlt_producer_frame(mlt_producer self)
Get the current position (relative to start of producer).
Definition: mlt_producer.c:414
int mlt_producer_is_cut(mlt_producer self)
Determine if producer is a cut.
Definition: mlt_producer.c:197
int mlt_producer_detach(mlt_producer self, mlt_filter filter)
Detach a filter.
Definition: mlt_producer.c:781
char * mlt_producer_get_length_time(mlt_producer self, mlt_time_format format)
Get the total, unedited length of the producer as a time string.
Definition: mlt_producer.c:604
char * mlt_producer_frame_time(mlt_producer self, mlt_time_format format)
Get the current position (relative to start of producer) as a time string.
Definition: mlt_producer.c:427
mlt_destructor close
the destructor virtual function
Definition: mlt_producer.h:101
mlt_position mlt_producer_get_in(mlt_producer self)
Get the in point.
Definition: mlt_producer.c:551
void * local
instance object
Definition: mlt_producer.h:104
int mlt_producer_probe(mlt_producer self)
Probe the producer to publish metadata properties.
Definition: mlt_producer.c:1296
mlt_producer mlt_producer_cut(mlt_producer self, int in, int out)
Create a cut of this producer.
Definition: mlt_producer.c:266
int mlt_producer_clear(mlt_producer self)
Physically reduce the producer (typically a cut) to a 0 length.
Definition: mlt_producer.c:532
mlt_filter mlt_producer_filter(mlt_producer self, int index)
Retrieve a filter.
Definition: mlt_producer.c:794
mlt_producer mlt_producer_cut_parent(mlt_producer self)
Obtain the parent producer.
Definition: mlt_producer.c:245
int mlt_producer_optimise(mlt_producer self)
Optimise for overlapping cuts from the same clip.
Definition: mlt_producer.c:1009
int mlt_producer_seek_time(mlt_producer self, const char *time)
Seek to a specified time string.
Definition: mlt_producer.c:388
int(* seek)(mlt_producer, mlt_position)
Seek to a specified position (virtual function).
Definition: mlt_producer.h:89
int(* get_frame)(mlt_producer, mlt_frame_ptr, int)
Get a frame of data (virtual function).
Definition: mlt_producer.h:81
int mlt_producer_is_blank(mlt_producer self)
Determine if the producer is a blank.
Definition: mlt_producer.c:227
mlt_properties mlt_producer_properties(mlt_producer self)
Get the producer properties.
Definition: mlt_producer.c:323
struct mlt_service_s parent
A producer is a service.
Definition: mlt_producer.h:72
void * close_object
the object supplied to the close virtual function
Definition: mlt_producer.h:102
int mlt_producer_is_mix(mlt_producer self)
Determine if producer is a mix.
Definition: mlt_producer.c:210
mlt_service mlt_producer_service(mlt_producer self)
Get the parent service object.
Definition: mlt_producer.c:310
void mlt_producer_close(mlt_producer self)
Close the producer.
Definition: mlt_producer.c:1092
double mlt_producer_get_fps(mlt_producer self)
Get the frames per second.
Definition: mlt_producer.c:466
mlt_producer mlt_producer_new(mlt_profile profile)
Create and initialize a new producer.
Definition: mlt_producer.c:167
int mlt_producer_set_in_and_out(mlt_producer self, mlt_position in, mlt_position out)
Set the in and out points.
Definition: mlt_producer.c:487
int64_t mlt_producer_get_creation_time(mlt_producer self)
Get the creation time for the producer.
Definition: mlt_producer.c:1199
mlt_position mlt_producer_position(mlt_producer self)
Get the current position (relative to in point).
Definition: mlt_producer.c:402
void mlt_producer_prepare_next(mlt_producer self)
Prepare for next frame.
Definition: mlt_producer.c:618
int(* set_in_and_out)(mlt_producer, mlt_position, mlt_position)
Set the in and out points.
Definition: mlt_producer.h:98
void mlt_producer_set_creation_time(mlt_producer self, int64_t creation_time)
Set the creation time for the producer.
Definition: mlt_producer.c:1277
mlt_position mlt_producer_get_length(mlt_producer self)
Get the total, unedited length of the producer.
Definition: mlt_producer.c:589
void * child
the object of a subclass
Definition: mlt_producer.h:105
int mlt_producer_init(mlt_producer self, void *child)
Initialize a producer service.
Definition: mlt_producer.c:59
Profile class.
Definition: mlt_profile.h:35
Properties class.
Definition: mlt_properties.h:40
Service abstract base class.
Definition: mlt_service.h:58
void * child
the object of a subclass
Definition: mlt_service.h:75