MLT  7.34.0
mlt_transition.h
Go to the documentation of this file.
1 
23 #ifndef MLT_TRANSITION_H
24 #define MLT_TRANSITION_H
25 
26 #include "mlt_export.h"
27 #include "mlt_service.h"
28 #include <pthread.h>
29 
44 {
46  struct mlt_service_s parent;
47 
50 
53 
55  void *child;
56 
59 
62  int held;
63  pthread_mutex_t mutex;
64 };
65 
66 #define MLT_TRANSITION_SERVICE(transition) (&(transition)->parent)
67 #define MLT_TRANSITION_PROPERTIES(transition) \
68  MLT_SERVICE_PROPERTIES(MLT_TRANSITION_SERVICE(transition))
69 
70 MLT_EXPORT int mlt_transition_init(mlt_transition self, void *child);
75  mlt_service producer,
76  int a_track,
77  int b_track);
79  mlt_position in,
80  mlt_position out);
81 MLT_EXPORT void mlt_transition_set_tracks(mlt_transition self, int a_track, int b_track);
88 MLT_EXPORT double mlt_transition_get_progress(mlt_transition self, mlt_frame frame);
91  mlt_frame a_frame,
92  mlt_frame b_frame);
93 MLT_EXPORT void mlt_transition_close(mlt_transition self);
94 
95 #endif
interface declaration for all service classes
int32_t mlt_position
Definition: mlt_types.h:255
struct mlt_transition_s * mlt_transition
pointer to Transition object
Definition: mlt_types.h:290
struct mlt_frame_s * mlt_frame
Definition: mlt_types.h:281
Frame class.
Definition: mlt_frame.h:91
Properties class.
Definition: mlt_properties.h:41
Service abstract base class.
Definition: mlt_service.h:59
void * child
the object of a subclass
Definition: mlt_service.h:76
Transition abstract service class.
Definition: mlt_transition.h:44
mlt_service mlt_transition_service(mlt_transition self)
Get the service class interface.
Definition: mlt_transition.c:90
mlt_frame mlt_transition_process(mlt_transition self, mlt_frame a_frame, mlt_frame b_frame)
Process the frame.
Definition: mlt_transition.c:319
pthread_mutex_t mutex
Definition: mlt_transition.h:63
struct mlt_service_s parent
We're implementing service here.
Definition: mlt_transition.h:46
void(* close)(mlt_transition)
public virtual
Definition: mlt_transition.h:49
int mlt_transition_get_b_track(mlt_transition self)
Get the index of the b track.
Definition: mlt_transition.c:181
mlt_frame * frames
Private.
Definition: mlt_transition.h:61
mlt_position mlt_transition_get_length(mlt_transition self)
Get the duration.
Definition: mlt_transition.c:217
void * child
Protected.
Definition: mlt_transition.h:55
void mlt_transition_close(mlt_transition self)
Close and destroy the transition.
Definition: mlt_transition.c:558
int held
Definition: mlt_transition.h:62
void mlt_transition_set_in_and_out(mlt_transition self, mlt_position in, mlt_position out)
Set the starting and ending time for when the transition is active.
Definition: mlt_transition.c:138
double mlt_transition_get_progress(mlt_transition self, mlt_frame frame)
Get the percent complete.
Definition: mlt_transition.c:250
mlt_service producer
track and in/out points
Definition: mlt_transition.h:58
double mlt_transition_get_progress_delta(mlt_transition self, mlt_frame frame)
Get the second field incremental progress.
Definition: mlt_transition.c:284
mlt_frame(* process)(mlt_transition, mlt_frame, mlt_frame)
protected transition method
Definition: mlt_transition.h:52
mlt_properties mlt_transition_properties(mlt_transition self)
Get the properties interface.
Definition: mlt_transition.c:103
int mlt_transition_get_a_track(mlt_transition self)
Get the index of the a track.
Definition: mlt_transition.c:169
int mlt_transition_connect(mlt_transition self, mlt_service producer, int a_track, int b_track)
Connect a transition with a producer's a and b tracks.
Definition: mlt_transition.c:118
mlt_position mlt_transition_get_out(mlt_transition self)
Get the out point.
Definition: mlt_transition.c:205
mlt_transition mlt_transition_new()
Create and initialize a new transition.
Definition: mlt_transition.c:74
mlt_position mlt_transition_get_in(mlt_transition self)
Get the in point.
Definition: mlt_transition.c:193
int mlt_transition_init(mlt_transition self, void *child)
Initialize a new transition.
Definition: mlt_transition.c:44
void mlt_transition_set_tracks(mlt_transition self, int a_track, int b_track)
Change the track indices of a transition.
Definition: mlt_transition.c:152
mlt_position mlt_transition_get_position(mlt_transition self, mlt_frame frame)
Get the position within the transition.
Definition: mlt_transition.c:235