mediastreamer2  2.10.0
Macros | Typedefs | Enumerations | Functions
msfilter.h File Reference

mediastreamer2 msfilter.h include file More...

#include "mediastreamer2/mscommon.h"
#include "mediastreamer2/msqueue.h"
#include "mediastreamer2/allfilters.h"
#include "mediastreamer2/formats.h"
#include "mediastreamer2/msinterfaces.h"
#include "mediastreamer2/msfactory.h"
Include dependency graph for msfilter.h:
This graph shows which files directly or indirectly include this file:

Macros

#define MS_FILTER_METHOD(_id_, _count_, _argtype_)   MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_))
 
#define MS_FILTER_METHOD_NO_ARG(_id_, _count_)   MS_FILTER_METHOD_ID(_id_,_count_,0)
 
#define MS_FILTER_SET_SAMPLE_RATE   MS_FILTER_BASE_METHOD(0,int)
 
#define MS_FILTER_GET_SAMPLE_RATE   MS_FILTER_BASE_METHOD(1,int)
 
#define MS_FILTER_SET_BITRATE   MS_FILTER_BASE_METHOD(2,int)
 
#define MS_FILTER_GET_BITRATE   MS_FILTER_BASE_METHOD(3,int)
 
#define MS_FILTER_ADD_FMTP   MS_FILTER_BASE_METHOD(7,const char)
 
#define MS_FILTER_GET_LATENCY   MS_FILTER_BASE_METHOD(11,int)
 
#define MS_FILTER_GET_INPUT_FMT   MS_FILTER_BASE_METHOD(30,MSPinFormat)
 
#define MS_FILTER_SET_INPUT_FMT   MS_FILTER_BASE_METHOD(31,MSPinFormat)
 
#define MS_FILTER_GET_OUTPUT_FMT   MS_FILTER_BASE_METHOD(32,MSPinFormat)
 
#define MS_FILTER_SET_OUTPUT_FMT   MS_FILTER_BASE_METHOD(33,MSPinFormat)
 
#define MS_FILTER_OUTPUT_FMT_CHANGED   MS_FILTER_BASE_EVENT_NO_ARG(0)
 

Typedefs

typedef void(* MSFilterFunc )(struct _MSFilter *f)
 
typedef int(* MSFilterMethodFunc )(struct _MSFilter *f, void *arg)
 
typedef void(* MSFilterNotifyFunc )(void *userdata, struct _MSFilter *f, unsigned int id, void *arg)
 
typedef enum _MSFilterInterfaceId MSFilterInterfaceId
 
typedef struct _MSFilterMethod MSFilterMethod
 
typedef enum _MSFilterCategory MSFilterCategory
 
typedef enum _MSFilterFlags MSFilterFlags
 
typedef struct _MSFilterDesc MSFilterDesc
 
typedef struct _MSFilter MSFilter
 
typedef struct _MSConnectionPoint MSConnectionPoint
 
typedef struct _MSConnectionHelper MSConnectionHelper
 

Enumerations

enum  _MSFilterInterfaceId { ,
  MSFilterPlayerInterface,
  MSFilterRecorderInterface,
  MSFilterVideoDisplayInterface ,
  MSFilterVideoDecoderInterface,
  MSFilterVideoCaptureInterface,
  MSFilterAudioDecoderInterface,
  MSFilterVideoEncoderInterface,
  MSFilterAudioCaptureInterface ,
  MSFilterAudioEncoderInterface,
  MSFilterVoidInterface
}
 
enum  _MSFilterCategory {
  MS_FILTER_OTHER,
  MS_FILTER_ENCODER,
  MS_FILTER_DECODER,
  MS_FILTER_ENCODING_CAPTURER,
  MS_FILTER_DECODER_RENDERER
}
 
enum  _MSFilterFlags { MS_FILTER_IS_PUMP = 1 }
 

Functions

MS2_PUBLIC void ms_filter_register (MSFilterDesc *desc)
 
MS2_PUBLIC MSFilterDescms_filter_get_encoding_capturer (const char *mime)
 
MS2_PUBLIC MSFilterDescms_filter_get_decoding_renderer (const char *mime)
 
MS2_PUBLIC MSFilterDescms_filter_get_encoder (const char *mime)
 
MS2_PUBLIC MSFilterDescms_filter_get_decoder (const char *mime)
 
MS2_PUBLIC MSFilterDescms_filter_lookup_by_name (const char *filter_name)
 
MSList * ms_filter_lookup_by_interface (MSFilterInterfaceId id)
 
MS2_PUBLIC MSFilterms_filter_create_encoder (const char *mime)
 
MS2_PUBLIC MSFilterms_filter_create_decoder (const char *mime)
 
MS2_PUBLIC bool_t ms_filter_codec_supported (const char *mime)
 
MS2_PUBLIC MSFilterms_filter_new (MSFilterId id)
 
MS2_PUBLIC MSFilterms_filter_new_from_name (const char *name)
 
MS2_PUBLIC MSFilterms_filter_new_from_desc (MSFilterDesc *desc)
 
MS2_PUBLIC int ms_filter_link (MSFilter *f1, int pin1, MSFilter *f2, int pin2)
 
MS2_PUBLIC int ms_filter_unlink (MSFilter *f1, int pin1, MSFilter *f2, int pin2)
 
MS2_PUBLIC int ms_filter_call_method (MSFilter *f, unsigned int id, void *arg)
 
MS2_PUBLIC int ms_filter_call_method_noarg (MSFilter *f, unsigned int id)
 
MS2_PUBLIC bool_t ms_filter_has_method (MSFilter *f, unsigned int id)
 
MS2_PUBLIC bool_t ms_filter_implements_interface (MSFilter *f, MSFilterInterfaceId id)
 
MS2_PUBLIC bool_t ms_filter_desc_implements_interface (MSFilterDesc *desc, MSFilterInterfaceId id)
 
MS2_PUBLIC void ms_filter_add_notify_callback (MSFilter *f, MSFilterNotifyFunc fn, void *userdata, bool_t synchronous)
 
MS2_PUBLIC void ms_filter_remove_notify_callback (MSFilter *f, MSFilterNotifyFunc fn, void *userdata)
 
MS2_PUBLIC MSFilterId ms_filter_get_id (MSFilter *f)
 
MS2_PUBLIC const char * ms_filter_get_name (MSFilter *f)
 
MS2_PUBLIC MSList * ms_filter_find_neighbours (MSFilter *me)
 
MS2_PUBLIC void ms_filter_destroy (MSFilter *f)
 
MS2_PUBLIC void ms_connection_helper_start (MSConnectionHelper *h)
 
MS2_PUBLIC int ms_connection_helper_link (MSConnectionHelper *h, MSFilter *f, int inpin, int outpin)
 Enter a MSFilter to be connected into the MSConnectionHelper object. More...
 
MS2_PUBLIC int ms_connection_helper_unlink (MSConnectionHelper *h, MSFilter *f, int inpin, int outpin)
 Enter a MSFilter to be disconnected into the MSConnectionHelper object. Process exactly the same way as ms_connection_helper_link() but calls ms_filter_unlink() on the entered filters.
 
MS2_PUBLIC void ms_filter_enable_statistics (bool_t enabled)
 Enable processing time measurements statistics for filters.
 
MS2_PUBLIC void ms_filter_reset_statistics (void)
 Reset processing time statistics for filters.
 
MS2_PUBLIC const MSList * ms_filter_get_statistics (void)
 Retrieves statistics for running filters. Returns a list of MSFilterStats.
 
MS2_PUBLIC void ms_filter_log_statistics (void)
 Logs runtime statistics for running filters.
 
MS2_PUBLIC void ms_filter_postpone_task (MSFilter *f, MSFilterFunc taskfunc)
 

Detailed Description

mediastreamer2 msfilter.h include file

This file provide the API needed to create, link, unlink, find and destroy filter.

It also provides definitions if you wish to implement your own filters.

Function Documentation

MS2_PUBLIC void ms_filter_postpone_task ( MSFilter f,
MSFilterFunc  taskfunc 
)

Allow a filter to request the ticker to call him the tick after. The ticker will call the taskfunc prior to all filter's process func.