| Mediastreamer Reference Guide |
|---|
#include <mssync.h> struct MSSync; int ms_sync_attach (MSSync *sync, MSFilter *f); int ms_sync_detach (MSSync *sync, MSFilter *f);
A mediastreamer thread executes the synchronize() function of the MSSync object, then all the processing functions of the chain of filters attached to the synchronisation. A synchronize function may do nothing, can wait for a timer, or can select for some file descriptors to change, etc... The developper is free to implement derivated objects of MSSync in order to satisfy its needs.
struct MSSync {
struct _MSSyncClass *klass;
GMutex *lock;
MSFilter **attached_filters; /* pointer to a table of pointer of filters*/
GList *execution_list; /* the list of filters to be executed. This is filled with compilation */
gint filters; /*number of filters attached to the sync */
gint run; /* flag to indicate whether the sync must be run or not */
GThread * thread; /* the thread ressource if this sync is run by a thread*/
GCond *thread_cond;
GCond *stop_cond;
guint32 flags;
#define MS_SYNC_NEED_UPDATE (0x0001) /* a modification has occured in the processing chains
attached to this sync; so the execution list has to be updated */
guint samples_per_tick; /* number of bytes produced by sources of the processing chains*/
guint32 ticks;
guint32 time; /* a time since the start of the sync expressed in milisec*/
guint32 mute; /* If this is set to mute then throw away any outgoing packets */
};Only programmers creating new derivated objects of MSSync are interested in this object.
int ms_sync_attach (MSSync *sync, MSFilter *f);
Attach a chain of filters to a synchronisation source sync. Filter f must be the first filter of the processing chain. In order to be run, each chain of filter must be attached to a synchronisation source, that will be responsible for scheduling the processing. Multiple chains can be attached to a single synchronisation.
| sync : | A MSSync object. |
| f : | A MSFilter object. |
| Returns : | 0 if successfull, a negative value reprensenting the errno.h error. |
int ms_sync_detach (MSSync *sync, MSFilter *f);
Dettach a chain of filters to a synchronisation source. Filter f must be the first filter of the processing chain. The processing chain will no more be executed.
| sync : | A MSSync object. |
| f : | A MSFilter object. |
| Returns : | 0 if successfull, a negative value reprensenting the errno.h error. |
| <<< Running processing chains | MSFilters >>> |