config.h | config.h | |||
---|---|---|---|---|
skipping to change at line 114 | skipping to change at line 114 | |||
/* Define to 1 if you have the <X11/Xlib.h> header file. */ | /* Define to 1 if you have the <X11/Xlib.h> header file. */ | |||
#define HAVE_X11_XLIB_H 1 | #define HAVE_X11_XLIB_H 1 | |||
/* All supported languages */ | /* All supported languages */ | |||
#define LINPHONE_ALL_LANGS "fr it de ja es pl cs nl sv pt_BR hu ru zh_CN" | #define LINPHONE_ALL_LANGS "fr it de ja es pl cs nl sv pt_BR hu ru zh_CN" | |||
/* Windows appdata subdir where linphonerc can be found */ | /* Windows appdata subdir where linphonerc can be found */ | |||
#define LINPHONE_CONFIG_DIR "Linphone" | #define LINPHONE_CONFIG_DIR "Linphone" | |||
/* path of liblinphone plugins, not mediastreamer2 plugins */ | /* path of liblinphone plugins, not mediastreamer2 plugins */ | |||
#define LINPHONE_PLUGINS_DIR "/home/ut/testing/linphone/3.4.0/lib/liblinpho ne/plugins" | #define LINPHONE_PLUGINS_DIR "/home/ut/testing/linphone/3.4.1/lib/liblinpho ne/plugins" | |||
/* Linphone's version number */ | /* Linphone's version number */ | |||
#define LINPHONE_VERSION "3.4.0" | #define LINPHONE_VERSION "3.4.1" | |||
/* Define to the sub-directory in which libtool stores uninstalled librarie s. | /* Define to the sub-directory in which libtool stores uninstalled librarie s. | |||
*/ | */ | |||
#define LT_OBJDIR ".libs/" | #define LT_OBJDIR ".libs/" | |||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ | /* Define to 1 if your C compiler doesn't accept -c and -o together. */ | |||
/* #undef NO_MINUS_C_MINUS_O */ | /* #undef NO_MINUS_C_MINUS_O */ | |||
/* Name of package */ | /* Name of package */ | |||
#define PACKAGE "linphone" | #define PACKAGE "linphone" | |||
/* Define to the address where bug reports for this package should be sent. */ | /* Define to the address where bug reports for this package should be sent. */ | |||
#define PACKAGE_BUGREPORT "linphone-developers@nongnu.org" | #define PACKAGE_BUGREPORT "linphone-developers@nongnu.org" | |||
/* Defines the place where data are found */ | /* Defines the place where data are found */ | |||
#define PACKAGE_DATA_DIR "/home/ut/testing/linphone/3.4.0/share" | #define PACKAGE_DATA_DIR "/home/ut/testing/linphone/3.4.1/share" | |||
/* Defines the place where locales can be found */ | /* Defines the place where locales can be found */ | |||
#define PACKAGE_LOCALE_DIR "/home/ut/testing/linphone/3.4.0/share/locale" | #define PACKAGE_LOCALE_DIR "/home/ut/testing/linphone/3.4.1/share/locale" | |||
/* Define to the full name of this package. */ | /* Define to the full name of this package. */ | |||
#define PACKAGE_NAME "linphone" | #define PACKAGE_NAME "linphone" | |||
/* Defines the place where linphone sounds are found */ | /* Defines the place where linphone sounds are found */ | |||
#define PACKAGE_SOUND_DIR "/home/ut/testing/linphone/3.4.0/share/sounds/lin phone" | #define PACKAGE_SOUND_DIR "/home/ut/testing/linphone/3.4.1/share/sounds/lin phone" | |||
/* Define to the full name and version of this package. */ | /* Define to the full name and version of this package. */ | |||
#define PACKAGE_STRING "linphone 3.4.0" | #define PACKAGE_STRING "linphone 3.4.1" | |||
/* Define to the one symbol short name of this package. */ | /* Define to the one symbol short name of this package. */ | |||
#define PACKAGE_TARNAME "linphone" | #define PACKAGE_TARNAME "linphone" | |||
/* Define to the home page for this package. */ | /* Define to the home page for this package. */ | |||
#define PACKAGE_URL "" | #define PACKAGE_URL "" | |||
/* Define to the version of this package. */ | /* Define to the version of this package. */ | |||
#define PACKAGE_VERSION "3.4.0" | #define PACKAGE_VERSION "3.4.1" | |||
/* Define to 1 if you have the ANSI C header files. */ | /* Define to 1 if you have the ANSI C header files. */ | |||
#define STDC_HEADERS 1 | #define STDC_HEADERS 1 | |||
/* Tell whether date_version.h must be used */ | /* Tell whether date_version.h must be used */ | |||
/* #undef USE_BUILDDATE_VERSION */ | /* #undef USE_BUILDDATE_VERSION */ | |||
/* Version number of package */ | /* Version number of package */ | |||
#define VERSION "3.4.0" | #define VERSION "3.4.1" | |||
/* defined if video support is available */ | /* defined if video support is available */ | |||
#define VIDEO_ENABLED 1 | #define VIDEO_ENABLED 1 | |||
/* Tell whether RSVP support should be compiled. */ | /* Tell whether RSVP support should be compiled. */ | |||
/* #undef VINCENT_MAURY_RSVP */ | /* #undef VINCENT_MAURY_RSVP */ | |||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most | /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most | |||
significant byte first (like Motorola and SPARC, unlike Intel). */ | significant byte first (like Motorola and SPARC, unlike Intel). */ | |||
#if defined AC_APPLE_UNIVERSAL_BUILD | #if defined AC_APPLE_UNIVERSAL_BUILD | |||
End of changes. 8 change blocks. | ||||
8 lines changed or deleted | 8 lines changed or added | |||
dtmfgen.h | dtmfgen.h | |||
---|---|---|---|---|
skipping to change at line 50 | skipping to change at line 50 | |||
int duration; /**<Duration of the tone in milliseconds*/ | int duration; /**<Duration of the tone in milliseconds*/ | |||
int frequency; /**<Frequency of the tone to be played */ | int frequency; /**<Frequency of the tone to be played */ | |||
float amplitude; /**<Amplitude of the tone, 1.0 being the 0dbm norma lized level*/ | float amplitude; /**<Amplitude of the tone, 1.0 being the 0dbm norma lized level*/ | |||
}; | }; | |||
typedef struct _MSDtmfGenCustomTone MSDtmfGenCustomTone; | typedef struct _MSDtmfGenCustomTone MSDtmfGenCustomTone; | |||
/**Play a custom tone according to the supplied tone description*/ | /**Play a custom tone according to the supplied tone description*/ | |||
#define MS_DTMF_GEN_PLAY_CUSTOM MS_FILTER_METHOD(MS_DTMF_GEN_ID,3,MS DtmfGenCustomTone) | #define MS_DTMF_GEN_PLAY_CUSTOM MS_FILTER_METHOD(MS_DTMF_GEN_ID,3,MS DtmfGenCustomTone) | |||
/**Sets default amplitude for dtmfs, expressed in the 0..1 range*/ | ||||
#define MS_DTMF_GEN_SET_DEFAULT_AMPLITUDE MS_FILTER_METHOD(MS_DTMF_GEN_ID,4 | ||||
,float) | ||||
/** | /** | |||
* Structure carried by MS_DTMF_GEN_EVENT | * Structure carried by MS_DTMF_GEN_EVENT | |||
**/ | **/ | |||
struct _MSDtmfGenEvent{ | struct _MSDtmfGenEvent{ | |||
uint64_t tone_start_time; | uint64_t tone_start_time; | |||
char tone_name[8]; | char tone_name[8]; | |||
}; | }; | |||
typedef struct _MSDtmfGenEvent MSDtmfGenEvent; | typedef struct _MSDtmfGenEvent MSDtmfGenEvent; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 4 lines changed or added | |||
linphonecore_utils.h | linphonecore_utils.h | |||
---|---|---|---|---|
skipping to change at line 70 | skipping to change at line 70 | |||
LinphoneEcCalibratorDone, | LinphoneEcCalibratorDone, | |||
LinphoneEcCalibratorFailed | LinphoneEcCalibratorFailed | |||
}LinphoneEcCalibratorStatus; | }LinphoneEcCalibratorStatus; | |||
typedef void (*LinphoneEcCalibrationCallback)(LinphoneCore *lc, LinphoneEcC alibratorStatus status, int delay_ms, void *data); | typedef void (*LinphoneEcCalibrationCallback)(LinphoneCore *lc, LinphoneEcC alibratorStatus status, int delay_ms, void *data); | |||
/** | /** | |||
* Start an echo calibration of the sound devices, in order to find adequat e settings for the echo canceller automatically. | * Start an echo calibration of the sound devices, in order to find adequat e settings for the echo canceller automatically. | |||
**/ | **/ | |||
int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibr ationCallback cb, void *cb_data); | int linphone_core_start_echo_calibration(LinphoneCore *lc, LinphoneEcCalibr ationCallback cb, void *cb_data); | |||
#if TARGET_OS_IPHONE | ||||
/** | ||||
* IOS special function to warm up dtmf feeback stream. #linphone_core_sto | ||||
p_dtmf_stream must be called before entering BG mode | ||||
*/ | ||||
void linphone_core_start_dtmf_stream(const LinphoneCore* lc); | ||||
/** | ||||
* IOS special function to stop dtmf feed back function. Must be called bef | ||||
ore entering BG mode | ||||
*/ | ||||
void linphone_core_stop_dtmf_stream(const LinphoneCore* lc); | ||||
#endif | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 13 lines changed or added | |||
mediastream.h | mediastream.h | |||
---|---|---|---|---|
skipping to change at line 86 | skipping to change at line 86 | |||
MSTicker *ticker; | MSTicker *ticker; | |||
MSFilter *source; | MSFilter *source; | |||
MSFilter *gendtmf; | MSFilter *gendtmf; | |||
MSFilter *write_resampler; | MSFilter *write_resampler; | |||
MSFilter *sndwrite; | MSFilter *sndwrite; | |||
}; | }; | |||
typedef struct _RingStream RingStream; | typedef struct _RingStream RingStream; | |||
/* start a thread that does sampling->encoding->rtp_sending|rtp_receiving-> decoding->playing */ | /* start a thread that does sampling->encoding->rtp_sending|rtp_receiving-> decoding->playing */ | |||
AudioStream *audio_stream_start (RtpProfile * prof, int locport, const char *remip, | MS2_PUBLIC AudioStream *audio_stream_start (RtpProfile * prof, int locport, const char *remip, | |||
int remport, int payload_type, int jitt_com p, bool_t echo_cancel); | int remport, int payload_type, int jitt_com p, bool_t echo_cancel); | |||
AudioStream *audio_stream_start_with_sndcards(RtpProfile * prof, int locpor t, const char *remip4, int remport, int payload_type, int jitt_comp, MSSndC ard *playcard, MSSndCard *captcard, bool_t echocancel); | MS2_PUBLIC AudioStream *audio_stream_start_with_sndcards(RtpProfile * prof, int locport, const char *remip4, int remport, int payload_type, int jitt_c omp, MSSndCard *playcard, MSSndCard *captcard, bool_t echocancel); | |||
int audio_stream_start_with_files (AudioStream * stream, RtpProfile * prof, | MS2_PUBLIC int audio_stream_start_with_files (AudioStream * stream, RtpProf ile * prof, | |||
const char *remip, int remport, int rem_rtcp_port, | const char *remip, int remport, int rem_rtcp_port, | |||
int pt, int jitt_comp, | int pt, int jitt_comp, | |||
const char * infile, const char * outfile); | const char * infile, const char * outfile); | |||
int audio_stream_start_full(AudioStream *stream, RtpProfile *profile, const char *remip,int remport, | MS2_PUBLIC int audio_stream_start_full(AudioStream *stream, RtpProfile *pro file, const char *remip,int remport, | |||
int rem_rtcp_port, int payload,int jitt_comp, const char *infile, co nst char *outfile, | int rem_rtcp_port, int payload,int jitt_comp, const char *infile, co nst char *outfile, | |||
MSSndCard *playcard, MSSndCard *captcard, bool_t use_ec); | MSSndCard *playcard, MSSndCard *captcard, bool_t use_ec); | |||
void audio_stream_play(AudioStream *st, const char *name); | MS2_PUBLIC void audio_stream_play(AudioStream *st, const char *name); | |||
void audio_stream_record(AudioStream *st, const char *name); | MS2_PUBLIC void audio_stream_record(AudioStream *st, const char *name); | |||
void audio_stream_set_rtcp_information(AudioStream *st, const char *cname, const char *tool); | MS2_PUBLIC void audio_stream_set_rtcp_information(AudioStream *st, const ch ar *cname, const char *tool); | |||
void audio_stream_play_received_dtmfs(AudioStream *st, bool_t yesno); | MS2_PUBLIC void audio_stream_play_received_dtmfs(AudioStream *st, bool_t ye sno); | |||
/* those two function do the same as audio_stream_start() but in two steps | /* those two function do the same as audio_stream_start() but in two steps | |||
this is useful to make sure that sockets are open before sending an invite; | this is useful to make sure that sockets are open before sending an invite; | |||
or to start to stream only after receiving an ack.*/ | or to start to stream only after receiving an ack.*/ | |||
AudioStream *audio_stream_new(int locport, bool_t ipv6); | MS2_PUBLIC AudioStream *audio_stream_new(int locport, bool_t ipv6); | |||
int audio_stream_start_now(AudioStream * stream, RtpProfile * prof, const | MS2_PUBLIC int audio_stream_start_now(AudioStream * stream, RtpProfile * pr | |||
char *remip, int remport, int rem_rtcp_port, int payload_type, int jitt_com | of, const char *remip, int remport, int rem_rtcp_port, int payload_type, i | |||
p,MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel); | nt jitt_comp,MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel); | |||
void audio_stream_set_relay_session_id(AudioStream *stream, const char *rel | MS2_PUBLIC void audio_stream_set_relay_session_id(AudioStream *stream, cons | |||
ay_session_id); | t char *relay_session_id); | |||
/*returns true if we are still receiving some data from remote end in the l ast timeout seconds*/ | /*returns true if we are still receiving some data from remote end in the l ast timeout seconds*/ | |||
bool_t audio_stream_alive(AudioStream * stream, int timeout); | MS2_PUBLIC bool_t audio_stream_alive(AudioStream * stream, int timeout); | |||
/*enable echo-limiter dispositve: one MSVolume in input branch controls a M SVolume in the output branch*/ | /*enable echo-limiter dispositve: one MSVolume in input branch controls a M SVolume in the output branch*/ | |||
void audio_stream_enable_echo_limiter(AudioStream *stream, EchoLimiterType type); | MS2_PUBLIC void audio_stream_enable_echo_limiter(AudioStream *stream, EchoL imiterType type); | |||
/*enable gain control, to be done before start() */ | /*enable gain control, to be done before start() */ | |||
void audio_stream_enable_gain_control(AudioStream *stream, bool_t val); | MS2_PUBLIC void audio_stream_enable_gain_control(AudioStream *stream, bool_ t val); | |||
/*enable automatic gain control, to be done before start() */ | /*enable automatic gain control, to be done before start() */ | |||
void audio_stream_enable_automatic_gain_control(AudioStream *stream, bool_t val); | MS2_PUBLIC void audio_stream_enable_automatic_gain_control(AudioStream *str eam, bool_t val); | |||
/*to be done before start */ | /*to be done before start */ | |||
void audio_stream_set_echo_canceller_params(AudioStream *st, int tail_len_m s, int delay_ms, int framesize); | MS2_PUBLIC void audio_stream_set_echo_canceller_params(AudioStream *st, int tail_len_ms, int delay_ms, int framesize); | |||
void audio_stream_set_mic_gain(AudioStream *stream, float gain); | MS2_PUBLIC void audio_stream_set_mic_gain(AudioStream *stream, float gain); | |||
/* enable/disable rtp stream */ | /* enable/disable rtp stream */ | |||
void audio_stream_mute_rtp(AudioStream *stream, bool_t val); | MS2_PUBLIC void audio_stream_mute_rtp(AudioStream *stream, bool_t val); | |||
/*enable noise gate, must be done before start()*/ | /*enable noise gate, must be done before start()*/ | |||
void audio_stream_enable_noise_gate(AudioStream *stream, bool_t val); | MS2_PUBLIC void audio_stream_enable_noise_gate(AudioStream *stream, bool_t val); | |||
/*enable parametric equalizer in the stream that goes to the speaker*/ | /*enable parametric equalizer in the stream that goes to the speaker*/ | |||
void audio_stream_enable_equalizer(AudioStream *stream, bool_t enabled); | MS2_PUBLIC void audio_stream_enable_equalizer(AudioStream *stream, bool_t e nabled); | |||
void audio_stream_equalizer_set_gain(AudioStream *stream, int frequency, fl oat gain, int freq_width); | MS2_PUBLIC void audio_stream_equalizer_set_gain(AudioStream *stream, int fr equency, float gain, int freq_width); | |||
/* stop the audio streaming thread and free everything*/ | /* stop the audio streaming thread and free everything*/ | |||
void audio_stream_stop (AudioStream * stream); | MS2_PUBLIC void audio_stream_stop (AudioStream * stream); | |||
RingStream *ring_start (const char * file, int interval, MSSndCard *sndcard | MS2_PUBLIC RingStream *ring_start (const char * file, int interval, MSSndCa | |||
); | rd *sndcard); | |||
RingStream *ring_start_with_cb(const char * file, int interval, MSSndCard * | MS2_PUBLIC RingStream *ring_start_with_cb(const char * file, int interval, | |||
sndcard, MSFilterNotifyFunc func, void * user_data); | MSSndCard *sndcard, MSFilterNotifyFunc func, void * user_data); | |||
void ring_stop (RingStream * stream); | MS2_PUBLIC void ring_stop (RingStream * stream); | |||
/* send a dtmf */ | /* send a dtmf */ | |||
int audio_stream_send_dtmf (AudioStream * stream, char dtmf); | MS2_PUBLIC int audio_stream_send_dtmf (AudioStream * stream, char dtmf); | |||
void audio_stream_set_default_card(int cardindex); | MS2_PUBLIC void audio_stream_set_default_card(int cardindex); | |||
/* retrieve RTP statistics*/ | /* retrieve RTP statistics*/ | |||
void audio_stream_get_local_rtp_stats(AudioStream *stream, rtp_stats_t *sta ts); | MS2_PUBLIC void audio_stream_get_local_rtp_stats(AudioStream *stream, rtp_s tats_t *stats); | |||
/***************** | /***************** | |||
Video Support | Video Support | |||
*****************/ | *****************/ | |||
typedef void (*VideoStreamRenderCallback)(void *user_pointer, const MSPictu re *local_view, const MSPicture *remote_view); | typedef void (*VideoStreamRenderCallback)(void *user_pointer, const MSPictu re *local_view, const MSPicture *remote_view); | |||
typedef void (*VideoStreamEventCallback)(void *user_pointer, const MSFilter *f, const unsigned int event_id, const void *args); | typedef void (*VideoStreamEventCallback)(void *user_pointer, const MSFilter *f, const unsigned int event_id, const void *args); | |||
typedef enum _VideoStreamDir{ | typedef enum _VideoStreamDir{ | |||
VideoStreamSendRecv, | VideoStreamSendRecv, | |||
skipping to change at line 203 | skipping to change at line 203 | |||
unsigned long window_id; | unsigned long window_id; | |||
unsigned long preview_window_id; | unsigned long preview_window_id; | |||
VideoStreamDir dir; | VideoStreamDir dir; | |||
MSWebCam *cam; | MSWebCam *cam; | |||
bool_t use_preview_window; | bool_t use_preview_window; | |||
bool_t adapt_bitrate; | bool_t adapt_bitrate; | |||
}; | }; | |||
typedef struct _VideoStream VideoStream; | typedef struct _VideoStream VideoStream; | |||
VideoStream *video_stream_new(int locport, bool_t use_ipv6); | MS2_PUBLIC VideoStream *video_stream_new(int locport, bool_t use_ipv6); | |||
void video_stream_set_direction(VideoStream *vs, VideoStreamDir dir); | MS2_PUBLIC void video_stream_set_direction(VideoStream *vs, VideoStreamDir | |||
void video_stream_enable_adaptive_bitrate_control(VideoStream *s, bool_t ye | dir); | |||
sno); | MS2_PUBLIC void video_stream_enable_adaptive_bitrate_control(VideoStream *s | |||
void video_stream_set_render_callback(VideoStream *s, VideoStreamRenderCall | , bool_t yesno); | |||
back cb, void *user_pointer); | MS2_PUBLIC void video_stream_set_render_callback(VideoStream *s, VideoStrea | |||
void video_stream_set_event_callback(VideoStream *s, VideoStreamEventCallba | mRenderCallback cb, void *user_pointer); | |||
ck cb, void *user_pointer); | MS2_PUBLIC void video_stream_set_event_callback(VideoStream *s, VideoStream | |||
void video_stream_set_display_filter_name(VideoStream *s, const char *fname | EventCallback cb, void *user_pointer); | |||
); | MS2_PUBLIC void video_stream_set_display_filter_name(VideoStream *s, const | |||
int video_stream_start(VideoStream * stream, RtpProfile *profile, const cha | char *fname); | |||
r *remip, int remport, int rem_rtcp_port, | MS2_PUBLIC int video_stream_start(VideoStream * stream, RtpProfile *profile | |||
, const char *remip, int remport, int rem_rtcp_port, | ||||
int payload, int jitt_comp, MSWebCam *device); | int payload, int jitt_comp, MSWebCam *device); | |||
void video_stream_set_relay_session_id(VideoStream *stream, const char *rel | MS2_PUBLIC void video_stream_set_relay_session_id(VideoStream *stream, cons | |||
ay_session_id); | t char *relay_session_id); | |||
void video_stream_set_rtcp_information(VideoStream *st, const char *cname, | MS2_PUBLIC void video_stream_set_rtcp_information(VideoStream *st, const ch | |||
const char *tool); | ar *cname, const char *tool); | |||
void video_stream_change_camera(VideoStream *stream, MSWebCam *cam); | MS2_PUBLIC void video_stream_change_camera(VideoStream *stream, MSWebCam *c | |||
am); | ||||
/* Calling video_stream_set_sent_video_size() or changing the bitrate value in the used PayloadType during a stream is running does nothing. | /* Calling video_stream_set_sent_video_size() or changing the bitrate value in the used PayloadType during a stream is running does nothing. | |||
The following function allows to take into account new parameters by redraw ing the sending graph*/ | The following function allows to take into account new parameters by redraw ing the sending graph*/ | |||
void video_stream_update_video_params(VideoStream *stream); | MS2_PUBLIC void video_stream_update_video_params(VideoStream *stream); | |||
/*function to call periodically to handle various events */ | /*function to call periodically to handle various events */ | |||
void video_stream_iterate(VideoStream *stream); | MS2_PUBLIC void video_stream_iterate(VideoStream *stream); | |||
void video_stream_send_vfu(VideoStream *stream); | MS2_PUBLIC void video_stream_send_vfu(VideoStream *stream); | |||
void video_stream_stop(VideoStream * stream); | MS2_PUBLIC void video_stream_stop(VideoStream * stream); | |||
void video_stream_set_sent_video_size(VideoStream *stream, MSVideoSize vsiz | MS2_PUBLIC void video_stream_set_sent_video_size(VideoStream *stream, MSVid | |||
e); | eoSize vsize); | |||
void video_stream_enable_self_view(VideoStream *stream, bool_t val); | MS2_PUBLIC void video_stream_enable_self_view(VideoStream *stream, bool_t v | |||
unsigned long video_stream_get_native_window_id(VideoStream *stream); | al); | |||
void video_stream_set_native_window_id(VideoStream *stream, unsigned long i | MS2_PUBLIC unsigned long video_stream_get_native_window_id(VideoStream *str | |||
d); | eam); | |||
void video_stream_set_native_preview_window_id(VideoStream *stream, unsigne | MS2_PUBLIC void video_stream_set_native_window_id(VideoStream *stream, unsi | |||
d long id); | gned long id); | |||
unsigned long video_stream_get_native_preview_window_id(VideoStream *stream | MS2_PUBLIC void video_stream_set_native_preview_window_id(VideoStream *stre | |||
); | am, unsigned long id); | |||
void video_stream_use_preview_video_window(VideoStream *stream, bool_t yesn | MS2_PUBLIC unsigned long video_stream_get_native_preview_window_id(VideoStr | |||
o); | eam *stream); | |||
MS2_PUBLIC void video_stream_use_preview_video_window(VideoStream *stream, | ||||
bool_t yesno); | ||||
/*provided for compatibility, use video_stream_set_direction() instead */ | /*provided for compatibility, use video_stream_set_direction() instead */ | |||
int video_stream_recv_only_start(VideoStream *videostream, RtpProfile *prof | MS2_PUBLIC int video_stream_recv_only_start(VideoStream *videostream, RtpPr | |||
ile, const char *addr, int port, int used_pt, int jitt_comp); | ofile *profile, const char *addr, int port, int used_pt, int jitt_comp); | |||
int video_stream_send_only_start(VideoStream *videostream, | MS2_PUBLIC int video_stream_send_only_start(VideoStream *videostream, | |||
RtpProfile *profile, const char *addr, int p ort, int rtcp_port, | RtpProfile *profile, const char *addr, int p ort, int rtcp_port, | |||
int used_pt, int jitt_comp, MSWebCam *devic e); | int used_pt, int jitt_comp, MSWebCam *devic e); | |||
void video_stream_recv_only_stop(VideoStream *vs); | MS2_PUBLIC void video_stream_recv_only_stop(VideoStream *vs); | |||
void video_stream_send_only_stop(VideoStream *vs); | MS2_PUBLIC void video_stream_send_only_stop(VideoStream *vs); | |||
/** | /** | |||
* Small API to display a local preview window. | * Small API to display a local preview window. | |||
**/ | **/ | |||
typedef VideoStream VideoPreview; | typedef VideoStream VideoPreview; | |||
VideoPreview * video_preview_new(); | MS2_PUBLIC VideoPreview * video_preview_new(); | |||
#define video_preview_set_size(p,s) video_stream_set_sent_video_size(p,s) | #define video_preview_set_size(p,s) video_stream_set_sent_video_size(p,s) | |||
#define video_preview_set_display_filter_name(p,dt) video_stream_set_dis play_filter_name(p,dt) | #define video_preview_set_display_filter_name(p,dt) video_stream_set_dis play_filter_name(p,dt) | |||
#define video_preview_set_native_window_id(p,id) video_stream _set_native_preview_window_id (p,id) | #define video_preview_set_native_window_id(p,id) video_stream _set_native_preview_window_id (p,id) | |||
#define video_preview_get_native_window_id(p) video_stream _get_native_preview_window_id (p) | #define video_preview_get_native_window_id(p) video_stream _get_native_preview_window_id (p) | |||
void video_preview_start(VideoPreview *stream, MSWebCam *device); | MS2_PUBLIC void video_preview_start(VideoPreview *stream, MSWebCam *device) | |||
void video_preview_stop(VideoPreview *stream); | ; | |||
MS2_PUBLIC void video_preview_stop(VideoPreview *stream); | ||||
bool_t ms_is_ipv6(const char *address); | MS2_PUBLIC bool_t ms_is_ipv6(const char *address); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 32 change blocks. | ||||
75 lines changed or deleted | 80 lines changed or added | |||
mscommon.h | mscommon.h | |||
---|---|---|---|---|
skipping to change at line 47 | skipping to change at line 47 | |||
#define ms_mutex_lock ortp_mutex_lock | #define ms_mutex_lock ortp_mutex_lock | |||
#define ms_mutex_unlock ortp_mutex_unlock | #define ms_mutex_unlock ortp_mutex_unlock | |||
#define ms_cond_t ortp_cond_t | #define ms_cond_t ortp_cond_t | |||
#define ms_cond_init ortp_cond_init | #define ms_cond_init ortp_cond_init | |||
#define ms_cond_wait ortp_cond_wait | #define ms_cond_wait ortp_cond_wait | |||
#define ms_cond_signal ortp_cond_signal | #define ms_cond_signal ortp_cond_signal | |||
#define ms_cond_broadcast ortp_cond_broadcast | #define ms_cond_broadcast ortp_cond_broadcast | |||
#define ms_cond_destroy ortp_cond_destroy | #define ms_cond_destroy ortp_cond_destroy | |||
#if defined(_MSC_VER) | ||||
#define MS2_PUBLIC __declspec(dllexport) | ||||
#else | ||||
#define MS2_PUBLIC | ||||
#endif | ||||
#if defined(_WIN32_WCE) | #if defined(_WIN32_WCE) | |||
time_t ms_time (time_t *t); | time_t ms_time (time_t *t); | |||
#else | #else | |||
#define ms_time time | #define ms_time time | |||
#endif | #endif | |||
#ifdef WIN32 | #ifdef WIN32 | |||
static inline void ms_debug(const char *fmt,...) | static inline void ms_debug(const char *fmt,...) | |||
{ | { | |||
va_list args; | va_list args; | |||
skipping to change at line 107 | skipping to change at line 113 | |||
#define ms_list_next(elem) ((elem)->next) | #define ms_list_next(elem) ((elem)->next) | |||
typedef int (*MSCompareFunc)(const void *a, const void *b); | typedef int (*MSCompareFunc)(const void *a, const void *b); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
void ms_thread_exit(void* ret_val); | void ms_thread_exit(void* ret_val); | |||
MSList * ms_list_append(MSList *elem, void * data); | MS2_PUBLIC MSList * ms_list_append(MSList *elem, void * data); | |||
MSList * ms_list_prepend(MSList *elem, void * data); | MS2_PUBLIC MSList * ms_list_prepend(MSList *elem, void * data); | |||
MSList * ms_list_free(MSList *elem); | MS2_PUBLIC MSList * ms_list_free(MSList *elem); | |||
MSList * ms_list_concat(MSList *first, MSList *second); | MS2_PUBLIC MSList * ms_list_concat(MSList *first, MSList *second); | |||
MSList * ms_list_remove(MSList *first, void *data); | MS2_PUBLIC MSList * ms_list_remove(MSList *first, void *data); | |||
int ms_list_size(const MSList *first); | MS2_PUBLIC int ms_list_size(const MSList *first); | |||
void ms_list_for_each(const MSList *list, void (*func)(void *)); | MS2_PUBLIC void ms_list_for_each(const MSList *list, void (*func)(void *)); | |||
void ms_list_for_each2(const MSList *list, void (*func)(void *, void *), vo | MS2_PUBLIC void ms_list_for_each2(const MSList *list, void (*func)(void *, | |||
id *user_data); | void *), void *user_data); | |||
MSList *ms_list_remove_link(MSList *list, MSList *elem); | MS2_PUBLIC MSList *ms_list_remove_link(MSList *list, MSList *elem); | |||
MSList *ms_list_find(MSList *list, void *data); | MS2_PUBLIC MSList *ms_list_find(MSList *list, void *data); | |||
MSList *ms_list_find_custom(MSList *list, MSCompareFunc compare_func, const | MS2_PUBLIC MSList *ms_list_find_custom(MSList *list, MSCompareFunc compare_ | |||
void *user_data); | func, const void *user_data); | |||
void * ms_list_nth_data(const MSList *list, int index); | MS2_PUBLIC void * ms_list_nth_data(const MSList *list, int index); | |||
int ms_list_position(const MSList *list, MSList *elem); | MS2_PUBLIC int ms_list_position(const MSList *list, MSList *elem); | |||
int ms_list_index(const MSList *list, void *data); | MS2_PUBLIC int ms_list_index(const MSList *list, void *data); | |||
MSList *ms_list_insert_sorted(MSList *list, void *data, MSCompareFunc compa | MS2_PUBLIC MSList *ms_list_insert_sorted(MSList *list, void *data, MSCompar | |||
re_func); | eFunc compare_func); | |||
MSList *ms_list_insert(MSList *list, MSList *before, void *data); | MS2_PUBLIC MSList *ms_list_insert(MSList *list, MSList *before, void *data) | |||
MSList *ms_list_copy(const MSList *list); | ; | |||
MS2_PUBLIC MSList *ms_list_copy(const MSList *list); | ||||
#undef MIN | #undef MIN | |||
#define MIN(a,b) ((a)>(b) ? (b) : (a)) | #define MIN(a,b) ((a)>(b) ? (b) : (a)) | |||
#undef MAX | #undef MAX | |||
#define MAX(a,b) ((a)>(b) ? (a) : (b)) | #define MAX(a,b) ((a)>(b) ? (a) : (b)) | |||
/** | /** | |||
* @file mscommon.h | * @file mscommon.h | |||
* @brief mediastreamer2 mscommon.h include file | * @brief mediastreamer2 mscommon.h include file | |||
* | * | |||
skipping to change at line 150 | skipping to change at line 156 | |||
* @defgroup mediastreamer2_init Init API - manage mediastreamer2 library. | * @defgroup mediastreamer2_init Init API - manage mediastreamer2 library. | |||
* @ingroup mediastreamer2_api | * @ingroup mediastreamer2_api | |||
* @{ | * @{ | |||
*/ | */ | |||
/** | /** | |||
* Initialize the mediastreamer2 library. | * Initialize the mediastreamer2 library. | |||
* | * | |||
* This must be called once before calling any other API. | * This must be called once before calling any other API. | |||
*/ | */ | |||
void ms_init(void); | MS2_PUBLIC void ms_init(void); | |||
/** | /** | |||
* Load plugins from a specific directory. | * Load plugins from a specific directory. | |||
* This method basically loads all libraries in the specified directory and attempts to call a C function called | * This method basically loads all libraries in the specified directory and attempts to call a C function called | |||
* \<libraryname\>_init. For example if a library 'libdummy.so' or 'libdumm y.dll' is found, then the loader tries to locate | * \<libraryname\>_init. For example if a library 'libdummy.so' or 'libdumm y.dll' is found, then the loader tries to locate | |||
* a C function called 'libdummy_init()' and calls it if it exists. | * a C function called 'libdummy_init()' and calls it if it exists. | |||
* ms_load_plugins() can be used to load non-mediastreamer2 plugins as it d oes not expect mediastreamer2 specific entry points. | * ms_load_plugins() can be used to load non-mediastreamer2 plugins as it d oes not expect mediastreamer2 specific entry points. | |||
* | * | |||
* @param directory A directory where plugins library are available. | * @param directory A directory where plugins library are available. | |||
* | * | |||
* Returns: >0 if successfull, 0 if not plugins loaded, -1 otherwise. | * Returns: >0 if successfull, 0 if not plugins loaded, -1 otherwise. | |||
*/ | */ | |||
int ms_load_plugins(const char *directory); | MS2_PUBLIC int ms_load_plugins(const char *directory); | |||
/** | /** | |||
* Release resource allocated in the mediastreamer2 library. | * Release resource allocated in the mediastreamer2 library. | |||
* | * | |||
* This must be called once before closing program. | * This must be called once before closing program. | |||
*/ | */ | |||
void ms_exit(void); | MS2_PUBLIC void ms_exit(void); | |||
struct _MSSndCardDesc; | struct _MSSndCardDesc; | |||
void ms_sleep(int seconds); | MS2_PUBLIC void ms_sleep(int seconds); | |||
void ms_usleep(uint64_t usec); | MS2_PUBLIC void ms_usleep(uint64_t usec); | |||
/** | /** | |||
* The max payload size allowed. | * The max payload size allowed. | |||
* Filters that generate data that can be sent through RTP should make pack ets | * Filters that generate data that can be sent through RTP should make pack ets | |||
* whose size is below ms_get_payload_max_size(). | * whose size is below ms_get_payload_max_size(). | |||
* The default value is 1440 computed as the standard internet MTU minus IP v6 header, | * The default value is 1440 computed as the standard internet MTU minus IP v6 header, | |||
* UDP header and RTP header. As IPV4 header is smaller than IPv6 header, t his | * UDP header and RTP header. As IPV4 header is smaller than IPv6 header, t his | |||
* value works for both. | * value works for both. | |||
* | * | |||
**/ | **/ | |||
int ms_get_payload_max_size(); | MS2_PUBLIC int ms_get_payload_max_size(); | |||
void ms_set_payload_max_size(int size); | MS2_PUBLIC void ms_set_payload_max_size(int size); | |||
/** | /** | |||
* Returns the network Max Transmission Unit to reach destination_host. | * Returns the network Max Transmission Unit to reach destination_host. | |||
* This will attempt to send one or more big packets to destination_host, t o a random port. | * This will attempt to send one or more big packets to destination_host, t o a random port. | |||
* Those packets are filled with zeroes. | * Those packets are filled with zeroes. | |||
**/ | **/ | |||
int ms_discover_mtu(const char *destination_host); | MS2_PUBLIC int ms_discover_mtu(const char *destination_host); | |||
/** | /** | |||
* Set mediastreamer default mtu, used to compute the default RTP max paylo ad size. | * Set mediastreamer default mtu, used to compute the default RTP max paylo ad size. | |||
* This function will call ms_set_payload_max_size(mtu-[ipv6 header size]). | * This function will call ms_set_payload_max_size(mtu-[ipv6 header size]). | |||
**/ | **/ | |||
void ms_set_mtu(int mtu); | MS2_PUBLIC void ms_set_mtu(int mtu); | |||
/** @} */ | /** @} */ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#ifdef ANDROID | #ifdef ANDROID | |||
#include "mediastreamer2/msjava.h" | #include "mediastreamer2/msjava.h" | |||
#endif | #endif | |||
End of changes. 11 change blocks. | ||||
29 lines changed or deleted | 36 lines changed or added | |||
mseventqueue.h | mseventqueue.h | |||
---|---|---|---|---|
skipping to change at line 23 | skipping to change at line 23 | |||
GNU General Public License for more details. | GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | You should have received a copy of the GNU General Public License | |||
along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
*/ | */ | |||
#ifndef mseventqueue_h | #ifndef mseventqueue_h | |||
#define mseventqueue_h | #define mseventqueue_h | |||
#include "mediastreamer2/mscommon.h" | ||||
typedef struct _MSEventQueue MSEventQueue; | typedef struct _MSEventQueue MSEventQueue; | |||
/** | /** | |||
* Creates an event queue to receive notifications from MSFilters. | * Creates an event queue to receive notifications from MSFilters. | |||
* | * | |||
* The queue can be installed to be global with ms_set_global_event_queue() . | * The queue can be installed to be global with ms_set_global_event_queue() . | |||
* The application can then schedule the callbacks for the events | * The application can then schedule the callbacks for the events | |||
* received by the queue by calling ms_event_queue_pump() | * received by the queue by calling ms_event_queue_pump() | |||
**/ | **/ | |||
MSEventQueue *ms_event_queue_new(); | MS2_PUBLIC MSEventQueue *ms_event_queue_new(); | |||
/** | /** | |||
* Install a global event queue. | * Install a global event queue. | |||
* | * | |||
* All filters currently scheduled by MSTickers will send events (notificat ions) | * All filters currently scheduled by MSTickers will send events (notificat ions) | |||
* to the event queue. | * to the event queue. | |||
* | * | |||
**/ | **/ | |||
void ms_set_global_event_queue(MSEventQueue *q); | MS2_PUBLIC void ms_set_global_event_queue(MSEventQueue *q); | |||
/** | /** | |||
* Run callbacks associated to the events received. | * Run callbacks associated to the events received. | |||
* The user can register a notify callback per filter using | * The user can register a notify callback per filter using | |||
* ms_filter_set_notify_callback() in order to be informed | * ms_filter_set_notify_callback() in order to be informed | |||
* of various events generated by a MSFilter. | * of various events generated by a MSFilter. | |||
**/ | **/ | |||
void ms_event_queue_pump(MSEventQueue *q); | MS2_PUBLIC void ms_event_queue_pump(MSEventQueue *q); | |||
/** | /** | |||
* Discard all pending events. | * Discard all pending events. | |||
**/ | **/ | |||
void ms_event_queue_skip(MSEventQueue *q); | MS2_PUBLIC void ms_event_queue_skip(MSEventQueue *q); | |||
/** | /** | |||
* Destroys an event queue. | * Destroys an event queue. | |||
**/ | **/ | |||
void ms_event_queue_destroy(MSEventQueue *q); | MS2_PUBLIC void ms_event_queue_destroy(MSEventQueue *q); | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
5 lines changed or deleted | 7 lines changed or added | |||
msfilter.h | msfilter.h | |||
---|---|---|---|---|
skipping to change at line 192 | skipping to change at line 192 | |||
* transparently from the application. | * transparently from the application. | |||
* | * | |||
* ms_filter_get_encoder, ms_filter_get_decoder, | * ms_filter_get_encoder, ms_filter_get_decoder, | |||
* ms_filter_create_encoder, ms_filter_create_decoder | * ms_filter_create_encoder, ms_filter_create_decoder | |||
* and ms_filter_codec_supported | * and ms_filter_codec_supported | |||
* can then be used as if the codec was internally. | * can then be used as if the codec was internally. | |||
* supported. | * supported. | |||
* | * | |||
* @param desc a filter description. | * @param desc a filter description. | |||
*/ | */ | |||
void ms_filter_register(MSFilterDesc *desc); | MS2_PUBLIC void ms_filter_register(MSFilterDesc *desc); | |||
/** | /** | |||
* Retrieve encoders according to codec name. | * Retrieve encoders according to codec name. | |||
* | * | |||
* Internal supported codecs: | * Internal supported codecs: | |||
* PCMU, PCMA, speex, gsm | * PCMU, PCMA, speex, gsm | |||
* Existing Public plugins: | * Existing Public plugins: | |||
* iLBC | * iLBC | |||
* | * | |||
* @param mime A string indicating the codec. | * @param mime A string indicating the codec. | |||
* | * | |||
* Returns: a MSFilterDesc if successfull, NULL otherwise. | * Returns: a MSFilterDesc if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilterDesc * ms_filter_get_encoder(const char *mime); | MS2_PUBLIC MSFilterDesc * ms_filter_get_encoder(const char *mime); | |||
/** | /** | |||
* Retrieve decoders according to codec name. | * Retrieve decoders according to codec name. | |||
* | * | |||
* Internal supported codecs: | * Internal supported codecs: | |||
* PCMU, PCMA, speex, gsm | * PCMU, PCMA, speex, gsm | |||
* Existing Public plugins: | * Existing Public plugins: | |||
* iLBC | * iLBC | |||
* | * | |||
* @param mime A string indicating the codec. | * @param mime A string indicating the codec. | |||
* | * | |||
* Returns: a MSFilterDesc if successfull, NULL otherwise. | * Returns: a MSFilterDesc if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilterDesc * ms_filter_get_decoder(const char *mime); | MS2_PUBLIC MSFilterDesc * ms_filter_get_decoder(const char *mime); | |||
/** | /** | |||
* Create encoder filter according to codec name. | * Create encoder filter according to codec name. | |||
* | * | |||
* Internal supported codecs: | * Internal supported codecs: | |||
* PCMU, PCMA, speex, gsm | * PCMU, PCMA, speex, gsm | |||
* Existing Public plugins: | * Existing Public plugins: | |||
* iLBC | * iLBC | |||
* | * | |||
* @param mime A string indicating the codec. | * @param mime A string indicating the codec. | |||
* | * | |||
* Returns: a MSFilter if successfull, NULL otherwise. | * Returns: a MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilter * ms_filter_create_encoder(const char *mime); | MS2_PUBLIC MSFilter * ms_filter_create_encoder(const char *mime); | |||
/** | /** | |||
* Create decoder filter according to codec name. | * Create decoder filter according to codec name. | |||
* | * | |||
* Internal supported codecs: | * Internal supported codecs: | |||
* PCMU, PCMA, speex, gsm | * PCMU, PCMA, speex, gsm | |||
* Existing Public plugins: | * Existing Public plugins: | |||
* iLBC | * iLBC | |||
* | * | |||
* @param mime A string indicating the codec. | * @param mime A string indicating the codec. | |||
* | * | |||
* Returns: a MSFilter if successfull, NULL otherwise. | * Returns: a MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilter * ms_filter_create_decoder(const char *mime); | MS2_PUBLIC MSFilter * ms_filter_create_decoder(const char *mime); | |||
/** | /** | |||
* Check if a encode or decode filter exists for a codec name. | * Check if a encode or decode filter exists for a codec name. | |||
* | * | |||
* Internal supported codecs: | * Internal supported codecs: | |||
* PCMU, PCMA, speex, gsm | * PCMU, PCMA, speex, gsm | |||
* Existing Public plugins: | * Existing Public plugins: | |||
* iLBC | * iLBC | |||
* | * | |||
* @param mime A string indicating the codec. | * @param mime A string indicating the codec. | |||
* | * | |||
* Returns: TRUE if successfull, FALSE otherwise. | * Returns: TRUE if successfull, FALSE otherwise. | |||
*/ | */ | |||
bool_t ms_filter_codec_supported(const char *mime); | MS2_PUBLIC bool_t ms_filter_codec_supported(const char *mime); | |||
/** | /** | |||
* Create decoder filter according to a filter's MSFilterId. | * Create decoder filter according to a filter's MSFilterId. | |||
* | * | |||
* @param id A MSFilterId identifier for the filter. | * @param id A MSFilterId identifier for the filter. | |||
* | * | |||
* Returns: a MSFilter if successfull, NULL otherwise. | * Returns: a MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilter *ms_filter_new(MSFilterId id); | MS2_PUBLIC MSFilter *ms_filter_new(MSFilterId id); | |||
/** | /** | |||
* Create decoder filter according to a filter's name. | * Create decoder filter according to a filter's name. | |||
* | * | |||
* @param name A name for the filter. | * @param name A name for the filter. | |||
* | * | |||
* Returns: a MSFilter if successfull, NULL otherwise. | * Returns: a MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilter *ms_filter_new_from_name(const char *name); | MS2_PUBLIC MSFilter *ms_filter_new_from_name(const char *name); | |||
/** | /** | |||
* Create decoder filter according to a filter's description. | * Create decoder filter according to a filter's description. | |||
* | * | |||
* The primary use is to create your own filter's in your | * The primary use is to create your own filter's in your | |||
* application and avoid registration inside mediastreamer2. | * application and avoid registration inside mediastreamer2. | |||
* | * | |||
* @param desc A MSFilterDesc for the filter. | * @param desc A MSFilterDesc for the filter. | |||
* | * | |||
* Returns: a MSFilter if successfull, NULL otherwise. | * Returns: a MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
MSFilter *ms_filter_new_from_desc(MSFilterDesc *desc); | MS2_PUBLIC MSFilter *ms_filter_new_from_desc(MSFilterDesc *desc); | |||
/** | /** | |||
* Link one OUTPUT pin from a filter to an INPUT pin of another filter. | * Link one OUTPUT pin from a filter to an INPUT pin of another filter. | |||
* | * | |||
* All data coming from the OUTPUT pin of one filter will be distributed | * All data coming from the OUTPUT pin of one filter will be distributed | |||
* to the INPUT pin of the second filter. | * to the INPUT pin of the second filter. | |||
* | * | |||
* @param f1 A MSFilter object containing the OUTPUT pin | * @param f1 A MSFilter object containing the OUTPUT pin | |||
* @param pin1 An index of an OUTPUT pin. | * @param pin1 An index of an OUTPUT pin. | |||
* @param f2 A MSFilter object containing the INPUT pin | * @param f2 A MSFilter object containing the INPUT pin | |||
* @param pin2 An index of an INPUT pin. | * @param pin2 An index of an INPUT pin. | |||
* | * | |||
* Returns: 0 if sucessful, -1 otherwise. | * Returns: 0 if sucessful, -1 otherwise. | |||
*/ | */ | |||
int ms_filter_link(MSFilter *f1, int pin1, MSFilter *f2, int pin2); | MS2_PUBLIC int ms_filter_link(MSFilter *f1, int pin1, MSFilter *f2, int pin 2); | |||
/** | /** | |||
* Unlink one OUTPUT pin from a filter to an INPUT pin of another filter. | * Unlink one OUTPUT pin from a filter to an INPUT pin of another filter. | |||
* | * | |||
* @param f1 A MSFilter object containing the OUTPUT pin | * @param f1 A MSFilter object containing the OUTPUT pin | |||
* @param pin1 An index of an OUTPUT pin. | * @param pin1 An index of an OUTPUT pin. | |||
* @param f2 A MSFilter object containing the INPUT pin | * @param f2 A MSFilter object containing the INPUT pin | |||
* @param pin2 An index of an INPUT pin. | * @param pin2 An index of an INPUT pin. | |||
* | * | |||
* Returns: 0 if sucessful, -1 otherwise. | * Returns: 0 if sucessful, -1 otherwise. | |||
*/ | */ | |||
int ms_filter_unlink(MSFilter *f1, int pin1, MSFilter *f2, int pin2); | MS2_PUBLIC int ms_filter_unlink(MSFilter *f1, int pin1, MSFilter *f2, int p in2); | |||
/** | /** | |||
* Call a filter's method to set or get options. | * Call a filter's method to set or get options. | |||
* | * | |||
* @param f A MSFilter object. | * @param f A MSFilter object. | |||
* @param id A private filter ID for the option. | * @param id A private filter ID for the option. | |||
* @param arg A private user data for the filter. | * @param arg A private user data for the filter. | |||
* | * | |||
* Returns: 0 if successfull, -1 otherwise. | * Returns: 0 if successfull, -1 otherwise. | |||
*/ | */ | |||
int ms_filter_call_method(MSFilter *f, unsigned int id, void *arg); | MS2_PUBLIC int ms_filter_call_method(MSFilter *f, unsigned int id, void *ar g); | |||
/** | /** | |||
* Call a filter's method to set options. | * Call a filter's method to set options. | |||
* | * | |||
* @param f A MSFilter object. | * @param f A MSFilter object. | |||
* @param id A private filter ID for the option. | * @param id A private filter ID for the option. | |||
* | * | |||
* Returns: 0 if successfull, -1 otherwise. | * Returns: 0 if successfull, -1 otherwise. | |||
*/ | */ | |||
int ms_filter_call_method_noarg(MSFilter *f, unsigned int id); | MS2_PUBLIC int ms_filter_call_method_noarg(MSFilter *f, unsigned int id); | |||
/** | /** | |||
* Set a callback on filter's to be informed of private filter's event. | * Set a callback on filter's to be informed of private filter's event. | |||
* This callback is called from the filter's MSTicker, unless a global even t queue | * This callback is called from the filter's MSTicker, unless a global even t queue | |||
* is created to receive all filter's notification asynchronously. | * is created to receive all filter's notification asynchronously. | |||
* See ms_event_queue_new() for details. | * See ms_event_queue_new() for details. | |||
* | * | |||
* @param f A MSFilter object. | * @param f A MSFilter object. | |||
* @param fn A MSFilterNotifyFunc that will be called. | * @param fn A MSFilterNotifyFunc that will be called. | |||
* @param userdata A pointer to private data. | * @param userdata A pointer to private data. | |||
* | * | |||
* | * | |||
*/ | */ | |||
void ms_filter_set_notify_callback(MSFilter *f, MSFilterNotifyFunc fn, void *userdata); | MS2_PUBLIC void ms_filter_set_notify_callback(MSFilter *f, MSFilterNotifyFu nc fn, void *userdata); | |||
/** | /** | |||
* Forces the filter to synchronously send notifications, that is | * Forces the filter to synchronously send notifications, that is | |||
* the notify callback will be called from MSTicker thread instead of being | * the notify callback will be called from MSTicker thread instead of being | |||
* run by a MSEventQueue. | * run by a MSEventQueue. | |||
*/ | */ | |||
void ms_filter_enable_synchronous_notifcations(MSFilter *f, bool_t yesno); | MS2_PUBLIC void ms_filter_enable_synchronous_notifcations(MSFilter *f, bool _t yesno); | |||
/** | /** | |||
* Get MSFilterId's filter. | * Get MSFilterId's filter. | |||
* | * | |||
* @param f A MSFilter object. | * @param f A MSFilter object. | |||
* | * | |||
* Returns: MSFilterId if successfull, -1 otherwise. | * Returns: MSFilterId if successfull, -1 otherwise. | |||
*/ | */ | |||
MSFilterId ms_filter_get_id(MSFilter *f); | MS2_PUBLIC MSFilterId ms_filter_get_id(MSFilter *f); | |||
/** | /** | |||
* Obtain the list of current filter's neighbours, ie filters that are part of same graph. | * Obtain the list of current filter's neighbours, ie filters that are part of same graph. | |||
* | * | |||
* Returns: a MSList of MSFilter, that needs to be freed by the caller when no more needed. | * Returns: a MSList of MSFilter, that needs to be freed by the caller when no more needed. | |||
**/ | **/ | |||
MSList * ms_filter_find_neighbours(MSFilter *me); | MS2_PUBLIC MSList * ms_filter_find_neighbours(MSFilter *me); | |||
/** | /** | |||
* Destroy a filter object. | * Destroy a filter object. | |||
* | * | |||
* @param f A MSFilter object. | * @param f A MSFilter object. | |||
* | * | |||
*/ | */ | |||
void ms_filter_destroy(MSFilter *f); | MS2_PUBLIC void ms_filter_destroy(MSFilter *f); | |||
/** | /** | |||
* Initialize a MSConnectionHelper. | * Initialize a MSConnectionHelper. | |||
* | * | |||
* @param h A MSConnectionHelper, usually (but not necessarily) on stack | * @param h A MSConnectionHelper, usually (but not necessarily) on stack | |||
* | * | |||
**/ | **/ | |||
void ms_connection_helper_start(MSConnectionHelper *h); | MS2_PUBLIC void ms_connection_helper_start(MSConnectionHelper *h); | |||
/** | /** | |||
* \brief Enter a MSFilter to be connected into the MSConnectionHelper obje ct. | * \brief Enter a MSFilter to be connected into the MSConnectionHelper obje ct. | |||
* | * | |||
* This functions enters a MSFilter to be connected into the MSConnectionHe lper | * This functions enters a MSFilter to be connected into the MSConnectionHe lper | |||
* object and connects it to the last entered if not the first one. | * object and connects it to the last entered if not the first one. | |||
* The MSConnectionHelper is useful to reduce the amount of code necessary to create graphs in case | * The MSConnectionHelper is useful to reduce the amount of code necessary to create graphs in case | |||
* the connections are made in an ordered manner and some filters are prese nt conditionally in graphs. | * the connections are made in an ordered manner and some filters are prese nt conditionally in graphs. | |||
* For example, instead of writing | * For example, instead of writing | |||
* \code | * \code | |||
skipping to change at line 431 | skipping to change at line 431 | |||
* if (my_condition) ms_connection_helper_link(&h,f2,1,0); | * if (my_condition) ms_connection_helper_link(&h,f2,1,0); | |||
* \endcode | * \endcode | |||
* | * | |||
* @param h a connection helper | * @param h a connection helper | |||
* @param f a MSFilter | * @param f a MSFilter | |||
* @param inpin an input pin number with which the MSFilter needs to connec t to previously entered MSFilter | * @param inpin an input pin number with which the MSFilter needs to connec t to previously entered MSFilter | |||
* @param outpin an output pin number with which the MSFilter needs to be c onnected to the next entered MSFilter | * @param outpin an output pin number with which the MSFilter needs to be c onnected to the next entered MSFilter | |||
* | * | |||
* Returns: the return value of ms_filter_link() that is called internally to this function. | * Returns: the return value of ms_filter_link() that is called internally to this function. | |||
**/ | **/ | |||
int ms_connection_helper_link(MSConnectionHelper *h, MSFilter *f, int inpin , int outpin); | MS2_PUBLIC int ms_connection_helper_link(MSConnectionHelper *h, MSFilter *f , int inpin, int outpin); | |||
/** | /** | |||
* \brief Enter a MSFilter to be disconnected into the MSConnectionHelper o bject. | * \brief Enter a MSFilter to be disconnected into the MSConnectionHelper o bject. | |||
* Process exactly the same way as ms_connection_helper_link() but calls ms _filter_unlink() on the | * Process exactly the same way as ms_connection_helper_link() but calls ms _filter_unlink() on the | |||
* entered filters. | * entered filters. | |||
**/ | **/ | |||
int ms_connection_helper_unlink(MSConnectionHelper *h, MSFilter *f, int inp in, int outpin); | MS2_PUBLIC int ms_connection_helper_unlink(MSConnectionHelper *h, MSFilter *f, int inpin, int outpin); | |||
/** | /** | |||
* \brief Enable processing time measurements statistics for filters. | * \brief Enable processing time measurements statistics for filters. | |||
* | * | |||
**/ | **/ | |||
void ms_filter_enable_statistics(bool_t enabled); | MS2_PUBLIC void ms_filter_enable_statistics(bool_t enabled); | |||
/** | /** | |||
* \brief Reset processing time statistics for filters. | * \brief Reset processing time statistics for filters. | |||
* | * | |||
**/ | **/ | |||
void ms_filter_reset_statistics(void); | MS2_PUBLIC void ms_filter_reset_statistics(void); | |||
/** | /** | |||
* \brief Retrieves statistics for running filters. | * \brief Retrieves statistics for running filters. | |||
* Returns a list of MSFilterStats | * Returns a list of MSFilterStats | |||
**/ | **/ | |||
const MSList * ms_filter_get_statistics(void); | MS2_PUBLIC const MSList * ms_filter_get_statistics(void); | |||
/** | /** | |||
* \brief Logs runtime statistics for running filters. | * \brief Logs runtime statistics for running filters. | |||
* | * | |||
**/ | **/ | |||
void ms_filter_log_statistics(void); | MS2_PUBLIC void ms_filter_log_statistics(void); | |||
/* I define the id taking the lower bits of the address of the MSFilterDesc object, | /* I define the id taking the lower bits of the address of the MSFilterDesc object, | |||
the method index (_cnt_) and the argument size */ | the method index (_cnt_) and the argument size */ | |||
/* I hope using this to avoid type mismatch (calling a method on the wrong filter)*/ | /* I hope using this to avoid type mismatch (calling a method on the wrong filter)*/ | |||
#define MS_FILTER_METHOD_ID(_id_,_cnt_,_argsize_) \ | #define MS_FILTER_METHOD_ID(_id_,_cnt_,_argsize_) \ | |||
( (((unsigned long)(_id_)) & 0xFFFF)<<16 | (_cnt_<<8) | (_argsize_ & 0xFF )) | ( (((unsigned long)(_id_)) & 0xFFFF)<<16 | (_cnt_<<8) | (_argsize_ & 0xFF )) | |||
#define MS_FILTER_METHOD(_id_,_count_,_argtype_) \ | #define MS_FILTER_METHOD(_id_,_count_,_argtype_) \ | |||
MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_)) | MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_)) | |||
End of changes. 25 change blocks. | ||||
25 lines changed or deleted | 25 lines changed or added | |||
msqueue.h | msqueue.h | |||
---|---|---|---|---|
skipping to change at line 23 | skipping to change at line 23 | |||
GNU General Public License for more details. | GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | You should have received a copy of the GNU General Public License | |||
along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
*/ | */ | |||
#ifndef MSQUEUE_H | #ifndef MSQUEUE_H | |||
#define MSQUEUE_H | #define MSQUEUE_H | |||
#include "ortp/str_utils.h" | #include "ortp/str_utils.h" | |||
#include "mediastreamer2/mscommon.h" | ||||
/* for the moment these are stupid queues limited to one element*/ | /* for the moment these are stupid queues limited to one element*/ | |||
typedef struct _MSCPoint{ | typedef struct _MSCPoint{ | |||
struct _MSFilter *filter; | struct _MSFilter *filter; | |||
int pin; | int pin; | |||
} MSCPoint; | } MSCPoint; | |||
typedef struct _MSQueue | typedef struct _MSQueue | |||
{ | { | |||
skipping to change at line 66 | skipping to change at line 67 | |||
static inline bool_t ms_queue_empty(MSQueue *q){ | static inline bool_t ms_queue_empty(MSQueue *q){ | |||
return qempty(&q->q); | return qempty(&q->q); | |||
} | } | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
/*yes these functions need to be public for plugins to work*/ | ||||
/*init a queue on stack*/ | /*init a queue on stack*/ | |||
void ms_queue_init(MSQueue *q); | MS2_PUBLIC void ms_queue_init(MSQueue *q); | |||
void ms_queue_flush(MSQueue *q); | MS2_PUBLIC void ms_queue_flush(MSQueue *q); | |||
void ms_queue_destroy(MSQueue *q); | MS2_PUBLIC void ms_queue_destroy(MSQueue *q); | |||
#define mblk_set_timestamp_info(m,ts) (m)->reserved1=(ts); | #define mblk_set_timestamp_info(m,ts) (m)->reserved1=(ts); | |||
#define mblk_get_timestamp_info(m) ((m)->reserved1) | #define mblk_get_timestamp_info(m) ((m)->reserved1) | |||
#define mblk_set_marker_info(m,bit) (m)->reserved2=((m)->reserved2|bit) | #define mblk_set_marker_info(m,bit) (m)->reserved2=((m)->reserved2|bit) | |||
#define mblk_get_marker_info(m) ((m)->reserved2&0x1) | #define mblk_get_marker_info(m) ((m)->reserved2&0x1) | |||
#define mblk_set_rate(m,bits) (m)->reserved2=((m)->reserved2|(bits) <<1) | #define mblk_set_rate(m,bits) (m)->reserved2=((m)->reserved2|(bits) <<1) | |||
#define mblk_get_rate(m) (((m)->reserved2>>1)&0x3) | #define mblk_get_rate(m) (((m)->reserved2>>1)&0x3) | |||
#define mblk_set_payload_type(m,bits) (m)->reserved2=((m)->reserved2|(bits< <3)) | #define mblk_set_payload_type(m,bits) (m)->reserved2=((m)->reserved2|(bits< <3)) | |||
#define mblk_get_payload_type(m) (((m)->reserved2>>3)&0x7F) | #define mblk_get_payload_type(m) (((m)->reserved2>>3)&0x7F) | |||
#define mblk_set_precious_flag(m,bit) (m)->reserved2=(m)->reserved2|((bi t & 0x1)<<10) /*use to prevent mirroring*/ | #define mblk_set_precious_flag(m,bit) (m)->reserved2=(m)->reserved2|((bi t & 0x1)<<10) /*use to prevent mirroring*/ | |||
skipping to change at line 97 | skipping to change at line 100 | |||
#define mblk_get_video_orientation(m) (((m)->reserved2 & (1<<11)) ? MS_VID EO_PORTRAIT : MS_VIDEO_LANDSCAPE) | #define mblk_get_video_orientation(m) (((m)->reserved2 & (1<<11)) ? MS_VID EO_PORTRAIT : MS_VIDEO_LANDSCAPE) | |||
struct _MSBufferizer{ | struct _MSBufferizer{ | |||
queue_t q; | queue_t q; | |||
int size; | int size; | |||
}; | }; | |||
typedef struct _MSBufferizer MSBufferizer; | typedef struct _MSBufferizer MSBufferizer; | |||
/*allocates and initialize */ | /*allocates and initialize */ | |||
MSBufferizer * ms_bufferizer_new(void); | MS2_PUBLIC MSBufferizer * ms_bufferizer_new(void); | |||
/*initialize in memory */ | /*initialize in memory */ | |||
void ms_bufferizer_init(MSBufferizer *obj); | void ms_bufferizer_init(MSBufferizer *obj); | |||
void ms_bufferizer_put(MSBufferizer *obj, mblk_t *m); | MS2_PUBLIC void ms_bufferizer_put(MSBufferizer *obj, mblk_t *m); | |||
/* put every mblk_t from q, into the bufferizer */ | /* put every mblk_t from q, into the bufferizer */ | |||
void ms_bufferizer_put_from_queue(MSBufferizer *obj, MSQueue *q); | MS2_PUBLIC void ms_bufferizer_put_from_queue(MSBufferizer *obj, MSQueue *q) ; | |||
int ms_bufferizer_read(MSBufferizer *obj, uint8_t *data, int datalen); | MS2_PUBLIC int ms_bufferizer_read(MSBufferizer *obj, uint8_t *data, int dat alen); | |||
/* returns the number of bytes available in the bufferizer*/ | /* returns the number of bytes available in the bufferizer*/ | |||
static inline int ms_bufferizer_get_avail(MSBufferizer *obj){ | static inline int ms_bufferizer_get_avail(MSBufferizer *obj){ | |||
return obj->size; | return obj->size; | |||
} | } | |||
void ms_bufferizer_skip_bytes(MSBufferizer *obj, int bytes); | MS2_PUBLIC void ms_bufferizer_skip_bytes(MSBufferizer *obj, int bytes); | |||
/* purge all data pending in the bufferizer */ | /* purge all data pending in the bufferizer */ | |||
void ms_bufferizer_flush(MSBufferizer *obj); | MS2_PUBLIC void ms_bufferizer_flush(MSBufferizer *obj); | |||
void ms_bufferizer_uninit(MSBufferizer *obj); | void ms_bufferizer_uninit(MSBufferizer *obj); | |||
void ms_bufferizer_destroy(MSBufferizer *obj); | MS2_PUBLIC void ms_bufferizer_destroy(MSBufferizer *obj); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 12 change blocks. | ||||
10 lines changed or deleted | 13 lines changed or added | |||
mssndcard.h | mssndcard.h | |||
---|---|---|---|---|
skipping to change at line 157 | skipping to change at line 157 | |||
* @defgroup mediastreamer2_soundcardmanager Sound Card Manager API | * @defgroup mediastreamer2_soundcardmanager Sound Card Manager API | |||
* @ingroup mediastreamer2_soundcard | * @ingroup mediastreamer2_soundcard | |||
* @{ | * @{ | |||
*/ | */ | |||
/** | /** | |||
* Retreive a sound card manager object. | * Retreive a sound card manager object. | |||
* | * | |||
* Returns: MSSndCardManager if successfull, NULL otherwise. | * Returns: MSSndCardManager if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCardManager * ms_snd_card_manager_get(void); | MS2_PUBLIC MSSndCardManager * ms_snd_card_manager_get(void); | |||
/** | /** | |||
* Destroy a sound card manager object. | * Destroy a sound card manager object. | |||
* | * | |||
*/ | */ | |||
void ms_snd_card_manager_destroy(void); | MS2_PUBLIC void ms_snd_card_manager_destroy(void); | |||
/** | /** | |||
* Retreive a sound card object based on its name. | * Retreive a sound card object based on its name. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* @param id A name for card to search. | * @param id A name for card to search. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_manager_get_card(MSSndCardManager *m, const char *i d); | MS2_PUBLIC MSSndCard * ms_snd_card_manager_get_card(MSSndCardManager *m, co nst char *id); | |||
/** | /** | |||
* Retreive the default sound card object. | * Retreive the default sound card object. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_manager_get_default_card(MSSndCardManager *m); | MS2_PUBLIC MSSndCard * ms_snd_card_manager_get_default_card(MSSndCardManage r *m); | |||
/** | /** | |||
* Retreive the default capture sound card object. | * Retreive the default capture sound card object. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_manager_get_default_capture_card(MSSndCardManager * m); | MS2_PUBLIC MSSndCard * ms_snd_card_manager_get_default_capture_card(MSSndCa rdManager *m); | |||
/** | /** | |||
* Retreive the default playback sound card object. | * Retreive the default playback sound card object. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_manager_get_default_playback_card(MSSndCardManager *m); | MS2_PUBLIC MSSndCard * ms_snd_card_manager_get_default_playback_card(MSSndC ardManager *m); | |||
/** | /** | |||
* Retreive the list of sound card objects. | * Retreive the list of sound card objects. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* | * | |||
* Returns: MSList of cards if successfull, NULL otherwise. | * Returns: MSList of cards if successfull, NULL otherwise. | |||
*/ | */ | |||
const MSList * ms_snd_card_manager_get_list(MSSndCardManager *m); | MS2_PUBLIC const MSList * ms_snd_card_manager_get_list(MSSndCardManager *m) ; | |||
/** | /** | |||
* Add a sound card object in a sound card manager's list. | * Add a sound card object in a sound card manager's list. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* @param c A sound card object. | * @param c A sound card object. | |||
* | * | |||
*/ | */ | |||
void ms_snd_card_manager_add_card(MSSndCardManager *m, MSSndCard *c); | MS2_PUBLIC void ms_snd_card_manager_add_card(MSSndCardManager *m, MSSndCard *c); | |||
/** | /** | |||
* Register a sound card description in a sound card manager. | * Register a sound card description in a sound card manager. | |||
* | * | |||
* @param m A sound card manager containing sound cards. | * @param m A sound card manager containing sound cards. | |||
* @param desc A sound card description object. | * @param desc A sound card description object. | |||
* | * | |||
*/ | */ | |||
void ms_snd_card_manager_register_desc(MSSndCardManager *m, MSSndCardDesc * desc); | MS2_PUBLIC void ms_snd_card_manager_register_desc(MSSndCardManager *m, MSSn dCardDesc *desc); | |||
/** | /** | |||
* Ask all registered MSSndCardDesc to re-detect their soundcards. | * Ask all registered MSSndCardDesc to re-detect their soundcards. | |||
* @param m The sound card manager. | * @param m The sound card manager. | |||
**/ | **/ | |||
void ms_snd_card_manager_reload(MSSndCardManager *m); | MS2_PUBLIC void ms_snd_card_manager_reload(MSSndCardManager *m); | |||
/** @} */ | /** @} */ | |||
/** | /** | |||
* @defgroup mediastreamer2_soundcardfilter Sound Card Filter API | * @defgroup mediastreamer2_soundcardfilter Sound Card Filter API | |||
* @ingroup mediastreamer2_soundcard | * @ingroup mediastreamer2_soundcard | |||
* @{ | * @{ | |||
*/ | */ | |||
/** | /** | |||
* Create an INPUT filter based on the selected sound card. | * Create an INPUT filter based on the selected sound card. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: A MSFilter if successfull, NULL otherwise. | * Returns: A MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
struct _MSFilter * ms_snd_card_create_reader(MSSndCard *obj); | MS2_PUBLIC struct _MSFilter * ms_snd_card_create_reader(MSSndCard *obj); | |||
/** | /** | |||
* Create an OUPUT filter based on the selected sound card. | * Create an OUPUT filter based on the selected sound card. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: A MSFilter if successfull, NULL otherwise. | * Returns: A MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
struct _MSFilter * ms_snd_card_create_writer(MSSndCard *obj); | MS2_PUBLIC struct _MSFilter * ms_snd_card_create_writer(MSSndCard *obj); | |||
/** | /** | |||
* Create a new sound card object. | * Create a new sound card object. | |||
* | * | |||
* @param desc A sound card description object. | * @param desc A sound card description object. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_new(MSSndCardDesc *desc); | MS2_PUBLIC MSSndCard * ms_snd_card_new(MSSndCardDesc *desc); | |||
/** | /** | |||
* Create a new sound card object. | * Create a new sound card object. | |||
* | * | |||
* @param desc A sound card description object. | * @param desc A sound card description object. | |||
* @param card mame | * @param card mame | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_new_with_name(MSSndCardDesc *desc,const char * name); | MS2_PUBLIC MSSndCard * ms_snd_card_new_with_name(MSSndCardDesc *desc,const char* name); | |||
/** | /** | |||
* Destroy sound card object. | * Destroy sound card object. | |||
* | * | |||
* @param obj A MSSndCard object. | * @param obj A MSSndCard object. | |||
*/ | */ | |||
void ms_snd_card_destroy(MSSndCard *obj); | MS2_PUBLIC void ms_snd_card_destroy(MSSndCard *obj); | |||
/** | /** | |||
* Duplicate a sound card object. | * Duplicate a sound card object. | |||
* | * | |||
* This helps to open several time a sound card. | * This helps to open several time a sound card. | |||
* | * | |||
* @param card A sound card object. | * @param card A sound card object. | |||
* | * | |||
* Returns: MSSndCard if successfull, NULL otherwise. | * Returns: MSSndCard if successfull, NULL otherwise. | |||
*/ | */ | |||
MSSndCard * ms_snd_card_dup(MSSndCard *card); | MS2_PUBLIC MSSndCard * ms_snd_card_dup(MSSndCard *card); | |||
/** | /** | |||
* Retreive a sound card's driver type string. | * Retreive a sound card's driver type string. | |||
* | * | |||
* Internal driver types are either: "OSS, ALSA, WINSND, PASND, CA" | * Internal driver types are either: "OSS, ALSA, WINSND, PASND, CA" | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: a string if successfull, NULL otherwise. | * Returns: a string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_snd_card_get_driver_type(const MSSndCard *obj); | MS2_PUBLIC const char *ms_snd_card_get_driver_type(const MSSndCard *obj); | |||
/** | /** | |||
* Retreive a sound card's name. | * Retreive a sound card's name. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: a string if successfull, NULL otherwise. | * Returns: a string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_snd_card_get_name(const MSSndCard *obj); | MS2_PUBLIC const char *ms_snd_card_get_name(const MSSndCard *obj); | |||
/** | /** | |||
* Retreive sound card's name ($driver_type: $name). | * Retreive sound card's name ($driver_type: $name). | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: A string if successfull, NULL otherwise. | * Returns: A string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_snd_card_get_string_id(MSSndCard *obj); | MS2_PUBLIC const char *ms_snd_card_get_string_id(MSSndCard *obj); | |||
/** | /** | |||
* Retreive sound card's capabilities. | * Retreive sound card's capabilities. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_CAP_CAPTURE | * MS_SND_CARD_CAP_CAPTURE | |||
* MS_SND_CARD_CAP_PLAYBACK | * MS_SND_CARD_CAP_PLAYBACK | |||
* MS_SND_CARD_CAP_CAPTURE|MS_SND_CARD_CAP_PLAYBACK | * MS_SND_CARD_CAP_CAPTURE|MS_SND_CARD_CAP_PLAYBACK | |||
* </PRE> | * </PRE> | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* | * | |||
* Returns: A unsigned int if successfull, 0 otherwise. | * Returns: A unsigned int if successfull, 0 otherwise. | |||
*/ | */ | |||
unsigned int ms_snd_card_get_capabilities(const MSSndCard *obj); | MS2_PUBLIC unsigned int ms_snd_card_get_capabilities(const MSSndCard *obj); | |||
/** | /** | |||
* Set some mixer level value. | * Set some mixer level value. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_MASTER, | * MS_SND_CARD_MASTER, | |||
* MS_SND_CARD_PLAYBACK, | * MS_SND_CARD_PLAYBACK, | |||
* MS_SND_CARD_CAPTURE | * MS_SND_CARD_CAPTURE | |||
* </PRE> | * </PRE> | |||
* Note: not implemented on all sound card filters. | * Note: not implemented on all sound card filters. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* @param e A sound card mixer object. | * @param e A sound card mixer object. | |||
* @param percent A volume level. | * @param percent A volume level. | |||
* | * | |||
*/ | */ | |||
void ms_snd_card_set_level(MSSndCard *obj, MSSndCardMixerElem e, int percen t); | MS2_PUBLIC void ms_snd_card_set_level(MSSndCard *obj, MSSndCardMixerElem e, int percent); | |||
/** | /** | |||
* Get some mixer level value. | * Get some mixer level value. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_MASTER, | * MS_SND_CARD_MASTER, | |||
* MS_SND_CARD_PLAYBACK, | * MS_SND_CARD_PLAYBACK, | |||
* MS_SND_CARD_CAPTURE | * MS_SND_CARD_CAPTURE | |||
* </PRE> | * </PRE> | |||
* Note: not implemented on all sound card filters. | * Note: not implemented on all sound card filters. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* @param e A sound card mixer object. | * @param e A sound card mixer object. | |||
* | * | |||
* Returns: A int if successfull, <0 otherwise. | * Returns: A int if successfull, <0 otherwise. | |||
*/ | */ | |||
int ms_snd_card_get_level(MSSndCard *obj, MSSndCardMixerElem e); | MS2_PUBLIC int ms_snd_card_get_level(MSSndCard *obj, MSSndCardMixerElem e); | |||
/** | /** | |||
* Set some source for capture. | * Set some source for capture. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_MIC, | * MS_SND_CARD_MIC, | |||
* MS_SND_CARD_LINE | * MS_SND_CARD_LINE | |||
* </PRE> | * </PRE> | |||
* Note: not implemented on all sound card filters. | * Note: not implemented on all sound card filters. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* @param c A sound card capture value. | * @param c A sound card capture value. | |||
* | * | |||
* Returns: A int if successfull, 0 otherwise. | * Returns: A int if successfull, 0 otherwise. | |||
*/ | */ | |||
void ms_snd_card_set_capture(MSSndCard *obj, MSSndCardCapture c); | MS2_PUBLIC void ms_snd_card_set_capture(MSSndCard *obj, MSSndCardCapture c) ; | |||
/** | /** | |||
* Set some mixer control. | * Set some mixer control. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_MASTER_MUTE, -> 0: unmute, 1: mute | * MS_SND_CARD_MASTER_MUTE, -> 0: unmute, 1: mute | |||
* MS_SND_CARD_PLAYBACK_MUTE, -> 0: unmute, 1: mute | * MS_SND_CARD_PLAYBACK_MUTE, -> 0: unmute, 1: mute | |||
* MS_SND_CARD_CAPTURE_MUTE -> 0: unmute, 1: mute | * MS_SND_CARD_CAPTURE_MUTE -> 0: unmute, 1: mute | |||
* </PRE> | * </PRE> | |||
* Note: not implemented on all sound card filters. | * Note: not implemented on all sound card filters. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* @param e A sound card control object. | * @param e A sound card control object. | |||
* @param percent A value for control. | * @param percent A value for control. | |||
* | * | |||
* Returns: 0 if successfull, <0 otherwise. | * Returns: 0 if successfull, <0 otherwise. | |||
*/ | */ | |||
int ms_snd_card_set_control(MSSndCard *obj, MSSndCardControlElem e, int val ); | MS2_PUBLIC int ms_snd_card_set_control(MSSndCard *obj, MSSndCardControlElem e, int val); | |||
/** | /** | |||
* Get some mixer control. | * Get some mixer control. | |||
* | * | |||
* <PRE> | * <PRE> | |||
* MS_SND_CARD_MASTER_MUTE, -> return 0: unmute, 1: mute | * MS_SND_CARD_MASTER_MUTE, -> return 0: unmute, 1: mute | |||
* MS_SND_CARD_PLAYBACK_MUTE, -> return 0: unmute, 1: mute | * MS_SND_CARD_PLAYBACK_MUTE, -> return 0: unmute, 1: mute | |||
* MS_SND_CARD_CAPTURE_MUTE -> return 0: unmute, 1: mute | * MS_SND_CARD_CAPTURE_MUTE -> return 0: unmute, 1: mute | |||
* </PRE> | * </PRE> | |||
* Note: not implemented on all sound card filters. | * Note: not implemented on all sound card filters. | |||
* | * | |||
* @param obj A sound card object. | * @param obj A sound card object. | |||
* @param e A sound card mixer object. | * @param e A sound card mixer object. | |||
* | * | |||
* Returns: A int if successfull, <0 otherwise. | * Returns: A int if successfull, <0 otherwise. | |||
*/ | */ | |||
int ms_snd_card_get_control(MSSndCard *obj, MSSndCardControlElem e); | MS2_PUBLIC int ms_snd_card_get_control(MSSndCard *obj, MSSndCardControlElem e); | |||
/** | /** | |||
* Create a alsa card with user supplied pcm name and mixer name. | * Create a alsa card with user supplied pcm name and mixer name. | |||
* @param pcmdev The pcm device name following alsa conventions (ex: plughw :0) | * @param pcmdev The pcm device name following alsa conventions (ex: plughw :0) | |||
* @param mixdev The mixer device name following alsa conventions. | * @param mixdev The mixer device name following alsa conventions. | |||
* | * | |||
* Returns: a MSSndCard object, NULL if alsa support is not available. | * Returns: a MSSndCard object, NULL if alsa support is not available. | |||
*/ | */ | |||
MSSndCard * ms_alsa_card_new_custom(const char *pcmdev, const char *mixdev) ; | MS2_PUBLIC MSSndCard * ms_alsa_card_new_custom(const char *pcmdev, const ch ar *mixdev); | |||
/** @} */ | /** @} */ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
/** @} */ | /** @} */ | |||
#endif | #endif | |||
End of changes. 26 change blocks. | ||||
26 lines changed or deleted | 26 lines changed or added | |||
msticker.h | msticker.h | |||
---|---|---|---|---|
skipping to change at line 83 | skipping to change at line 83 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
/** | /** | |||
* Create a ticker that will be used to start | * Create a ticker that will be used to start | |||
* and stop a graph. | * and stop a graph. | |||
* | * | |||
* Returns: MSTicker * if successfull, NULL otherwise. | * Returns: MSTicker * if successfull, NULL otherwise. | |||
*/ | */ | |||
MSTicker *ms_ticker_new(void); | MS2_PUBLIC MSTicker *ms_ticker_new(void); | |||
/** | /** | |||
* Set a name to the ticker (used for logging) | * Set a name to the ticker (used for logging) | |||
**/ | **/ | |||
void ms_ticker_set_name(MSTicker *ticker, const char *name); | MS2_PUBLIC void ms_ticker_set_name(MSTicker *ticker, const char *name); | |||
/** | /** | |||
* Attach a chain of filters to a ticker. | * Attach a chain of filters to a ticker. | |||
* The processing chain will be executed until ms_ticker_detach | * The processing chain will be executed until ms_ticker_detach | |||
* will be called. | * will be called. | |||
* | * | |||
* @param ticker A #MSTicker object. | * @param ticker A #MSTicker object. | |||
* @param f A #MSFilter object. | * @param f A #MSFilter object. | |||
* | * | |||
* Returns: 0 if successfull, -1 otherwise. | * Returns: 0 if successfull, -1 otherwise. | |||
*/ | */ | |||
int ms_ticker_attach(MSTicker *ticker,MSFilter *f); | MS2_PUBLIC int ms_ticker_attach(MSTicker *ticker,MSFilter *f); | |||
/** | /** | |||
* Dettach a chain of filters to a ticker. | * Dettach a chain of filters to a ticker. | |||
* The processing chain will no more be executed. | * The processing chain will no more be executed. | |||
* | * | |||
* @param ticker A #MSTicker object. | * @param ticker A #MSTicker object. | |||
* @param f A #MSFilter object. | * @param f A #MSFilter object. | |||
* | * | |||
* | * | |||
* Returns: 0 if successfull, -1 otherwise. | * Returns: 0 if successfull, -1 otherwise. | |||
*/ | */ | |||
int ms_ticker_detach(MSTicker *ticker,MSFilter *f); | MS2_PUBLIC int ms_ticker_detach(MSTicker *ticker,MSFilter *f); | |||
/** | /** | |||
* Destroy a ticker. | * Destroy a ticker. | |||
* | * | |||
* @param ticker A #MSTicker object. | * @param ticker A #MSTicker object. | |||
* | * | |||
*/ | */ | |||
void ms_ticker_destroy(MSTicker *ticker); | MS2_PUBLIC void ms_ticker_destroy(MSTicker *ticker); | |||
/** | /** | |||
* Override MSTicker's time function. | * Override MSTicker's time function. | |||
* This can be used to control the ticker from an external time provider, f or example the | * This can be used to control the ticker from an external time provider, f or example the | |||
* clock of a sound card. | * clock of a sound card. | |||
* | * | |||
* @param ticker A #MSTicker object. | * @param ticker A #MSTicker object. | |||
* @param func A replacement method for calculating "current time" | * @param func A replacement method for calculating "current time" | |||
* @param user_data Any pointer to user private data. | * @param user_data Any pointer to user private data. | |||
*/ | */ | |||
void ms_ticker_set_time_func(MSTicker *ticker, MSTickerTimeFunc func, void *user_data); | MS2_PUBLIC void ms_ticker_set_time_func(MSTicker *ticker, MSTickerTimeFunc func, void *user_data); | |||
/** | /** | |||
* Print on stdout all filters of a ticker. (INTERNAL: DO NOT USE) | * Print on stdout all filters of a ticker. (INTERNAL: DO NOT USE) | |||
* | * | |||
* @param ticker A #MSTicker object. | * @param ticker A #MSTicker object. | |||
*/ | */ | |||
void ms_ticker_print_graphs(MSTicker *ticker); | MS2_PUBLIC void ms_ticker_print_graphs(MSTicker *ticker); | |||
/* private functions:*/ | /* private functions:*/ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
/** @} */ | /** @} */ | |||
#endif | #endif | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
msvideo.h | msvideo.h | |||
---|---|---|---|---|
skipping to change at line 189 | skipping to change at line 189 | |||
uint8_t *planes[4]; /*we usually use 3 planes, 4th is for compatibil ity */ | uint8_t *planes[4]; /*we usually use 3 planes, 4th is for compatibil ity */ | |||
int strides[4]; /*with ffmpeg's swscale.h */ | int strides[4]; /*with ffmpeg's swscale.h */ | |||
}MSPicture; | }MSPicture; | |||
typedef struct _MSPicture YuvBuf; /*for backward compatibility*/ | typedef struct _MSPicture YuvBuf; /*for backward compatibility*/ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
int ms_pix_fmt_to_ffmpeg(MSPixFmt fmt); | MS2_PUBLIC int ms_pix_fmt_to_ffmpeg(MSPixFmt fmt); | |||
MSPixFmt ffmpeg_pix_fmt_to_ms(int fmt); | MS2_PUBLIC MSPixFmt ffmpeg_pix_fmt_to_ms(int fmt); | |||
MSPixFmt ms_fourcc_to_pix_fmt(uint32_t fourcc); | MS2_PUBLIC MSPixFmt ms_fourcc_to_pix_fmt(uint32_t fourcc); | |||
void ms_ffmpeg_check_init(void); | MS2_PUBLIC void ms_ffmpeg_check_init(void); | |||
int ms_yuv_buf_init_from_mblk(MSPicture *buf, mblk_t *m); | MS2_PUBLIC int ms_yuv_buf_init_from_mblk(MSPicture *buf, mblk_t *m); | |||
int ms_yuv_buf_init_from_mblk_with_size(MSPicture *buf, mblk_t *m, int w, i | MS2_PUBLIC int ms_yuv_buf_init_from_mblk_with_size(MSPicture *buf, mblk_t * | |||
nt h); | m, int w, int h); | |||
int ms_picture_init_from_mblk_with_size(MSPicture *buf, mblk_t *m, MSPixFmt | MS2_PUBLIC int ms_picture_init_from_mblk_with_size(MSPicture *buf, mblk_t * | |||
fmt, int w, int h); | m, MSPixFmt fmt, int w, int h); | |||
mblk_t * ms_yuv_buf_alloc(MSPicture *buf, int w, int h); | MS2_PUBLIC mblk_t * ms_yuv_buf_alloc(MSPicture *buf, int w, int h); | |||
void ms_yuv_buf_copy(uint8_t *src_planes[], const int src_strides[], | MS2_PUBLIC void ms_yuv_buf_copy(uint8_t *src_planes[], const int src_stride | |||
s[], | ||||
uint8_t *dst_planes[], const int dst_strides[3], MSVideoSize roi); | uint8_t *dst_planes[], const int dst_strides[3], MSVideoSize roi); | |||
void ms_yuv_buf_mirror(YuvBuf *buf); | MS2_PUBLIC void ms_yuv_buf_mirror(YuvBuf *buf); | |||
void rgb24_mirror(uint8_t *buf, int w, int h, int linesize); | MS2_PUBLIC void rgb24_mirror(uint8_t *buf, int w, int h, int linesize); | |||
void rgb24_revert(uint8_t *buf, int w, int h, int linesize); | MS2_PUBLIC void rgb24_revert(uint8_t *buf, int w, int h, int linesize); | |||
void rgb24_copy_revert(uint8_t *dstbuf, int dstlsz, | MS2_PUBLIC void rgb24_copy_revert(uint8_t *dstbuf, int dstlsz, | |||
const uint8_t *srcbuf, int srclsz, MSVideoSi ze roi); | const uint8_t *srcbuf, int srclsz, MSVideoSi ze roi); | |||
void ms_rgb_to_yuv(const uint8_t rgb[3], uint8_t yuv[3]); | MS2_PUBLIC void ms_rgb_to_yuv(const uint8_t rgb[3], uint8_t yuv[3]); | |||
static inline bool_t ms_video_size_greater_than(MSVideoSize vs1, MSVideoSiz e vs2){ | static inline bool_t ms_video_size_greater_than(MSVideoSize vs1, MSVideoSiz e vs2){ | |||
return (vs1.width>=vs2.width) && (vs1.height>=vs2.height); | return (vs1.width>=vs2.width) && (vs1.height>=vs2.height); | |||
} | } | |||
static inline bool_t ms_video_size_area_greater_than(MSVideoSize vs1, MSVid eoSize vs2){ | static inline bool_t ms_video_size_area_greater_than(MSVideoSize vs1, MSVid eoSize vs2){ | |||
return (vs1.width*vs1.height >= vs2.width*vs2.height); | return (vs1.width*vs1.height >= vs2.width*vs2.height); | |||
} | } | |||
static inline MSVideoSize ms_video_size_max(MSVideoSize vs1, MSVideoSize vs 2){ | static inline MSVideoSize ms_video_size_max(MSVideoSize vs1, MSVideoSize vs 2){ | |||
skipping to change at line 235 | skipping to change at line 235 | |||
} | } | |||
static inline MSVideoSize ms_video_size_area_min(MSVideoSize vs1, MSVideoSi ze vs2){ | static inline MSVideoSize ms_video_size_area_min(MSVideoSize vs1, MSVideoSi ze vs2){ | |||
return ms_video_size_area_greater_than(vs1,vs2) ? vs2 : vs1; | return ms_video_size_area_greater_than(vs1,vs2) ? vs2 : vs1; | |||
} | } | |||
static inline bool_t ms_video_size_equal(MSVideoSize vs1, MSVideoSize vs2){ | static inline bool_t ms_video_size_equal(MSVideoSize vs1, MSVideoSize vs2){ | |||
return vs1.width==vs2.width && vs1.height==vs2.height; | return vs1.width==vs2.width && vs1.height==vs2.height; | |||
} | } | |||
MSVideoSize ms_video_size_get_just_lower_than(MSVideoSize vs); | MS2_PUBLIC MSVideoSize ms_video_size_get_just_lower_than(MSVideoSize vs); | |||
static inline MSVideoOrientation ms_video_size_get_orientation(MSVideoSize vs){ | static inline MSVideoOrientation ms_video_size_get_orientation(MSVideoSize vs){ | |||
return vs.width>=vs.height ? MS_VIDEO_LANDSCAPE : MS_VIDEO_PORTRAIT; | return vs.width>=vs.height ? MS_VIDEO_LANDSCAPE : MS_VIDEO_PORTRAIT; | |||
} | } | |||
static inline MSVideoSize ms_video_size_change_orientation(MSVideoSize vs, MSVideoOrientation o){ | static inline MSVideoSize ms_video_size_change_orientation(MSVideoSize vs, MSVideoOrientation o){ | |||
MSVideoSize ret; | MSVideoSize ret; | |||
if (o!=ms_video_size_get_orientation(vs)){ | if (o!=ms_video_size_get_orientation(vs)){ | |||
ret.width=vs.height; | ret.width=vs.height; | |||
ret.height=vs.width; | ret.height=vs.width; | |||
skipping to change at line 266 | skipping to change at line 266 | |||
struct _MSScalerDesc { | struct _MSScalerDesc { | |||
MSScalerContext * (*create_context)(int src_w, int src_h, MSPixFmt s rc_fmt, | MSScalerContext * (*create_context)(int src_w, int src_h, MSPixFmt s rc_fmt, | |||
int dst_w, int dst_h, MSPixFmt dst _fmt, int flags); | int dst_w, int dst_h, MSPixFmt dst _fmt, int flags); | |||
int (*context_process)(MSScalerContext *ctx, uint8_t *src[], int src _strides[], uint8_t *dst[], int dst_strides[]); | int (*context_process)(MSScalerContext *ctx, uint8_t *src[], int src _strides[], uint8_t *dst[], int dst_strides[]); | |||
void (*context_free)(MSScalerContext *ctx); | void (*context_free)(MSScalerContext *ctx); | |||
}; | }; | |||
typedef struct _MSScalerDesc MSScalerDesc; | typedef struct _MSScalerDesc MSScalerDesc; | |||
MSScalerContext *ms_scaler_create_context(int src_w, int src_h, MSPixFmt sr c_fmt, | MS2_PUBLIC MSScalerContext *ms_scaler_create_context(int src_w, int src_h, MSPixFmt src_fmt, | |||
int dst_w, int dst_h, MSPixFmt ds t_fmt, int flags); | int dst_w, int dst_h, MSPixFmt ds t_fmt, int flags); | |||
int ms_scaler_process(MSScalerContext *ctx, uint8_t *src[], int src_strides [], uint8_t *dst[], int dst_strides[]); | MS2_PUBLIC int ms_scaler_process(MSScalerContext *ctx, uint8_t *src[], int src_strides[], uint8_t *dst[], int dst_strides[]); | |||
void ms_scaler_context_free(MSScalerContext *ctx); | MS2_PUBLIC void ms_scaler_context_free(MSScalerContext *ctx); | |||
void ms_video_set_scaler_impl(MSScalerDesc *desc); | MS2_PUBLIC void ms_video_set_scaler_impl(MSScalerDesc *desc); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#define MS_FILTER_SET_VIDEO_SIZE MS_FILTER_BASE_METHOD(100,MSVideoSiz e) | #define MS_FILTER_SET_VIDEO_SIZE MS_FILTER_BASE_METHOD(100,MSVideoSiz e) | |||
#define MS_FILTER_GET_VIDEO_SIZE MS_FILTER_BASE_METHOD(101,MSVideoSiz e) | #define MS_FILTER_GET_VIDEO_SIZE MS_FILTER_BASE_METHOD(101,MSVideoSiz e) | |||
#define MS_FILTER_SET_PIX_FMT MS_FILTER_BASE_METHOD(102,MSPixFmt) | #define MS_FILTER_SET_PIX_FMT MS_FILTER_BASE_METHOD(102,MSPixFmt) | |||
#define MS_FILTER_GET_PIX_FMT MS_FILTER_BASE_METHOD(103,MSPixFmt) | #define MS_FILTER_GET_PIX_FMT MS_FILTER_BASE_METHOD(103,MSPixFmt) | |||
End of changes. 8 change blocks. | ||||
21 lines changed or deleted | 22 lines changed or added | |||
mswebcam.h | mswebcam.h | |||
---|---|---|---|---|
skipping to change at line 94 | skipping to change at line 94 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
/** | /** | |||
* Retreive a webcam manager object. | * Retreive a webcam manager object. | |||
* | * | |||
* Returns: MSWebCamManager if successfull, NULL otherwise. | * Returns: MSWebCamManager if successfull, NULL otherwise. | |||
*/ | */ | |||
MSWebCamManager * ms_web_cam_manager_get(void); | MS2_PUBLIC MSWebCamManager * ms_web_cam_manager_get(void); | |||
/** | /** | |||
* Destroy the webcam manager object. | * Destroy the webcam manager object. | |||
* | * | |||
*/ | */ | |||
void ms_web_cam_manager_destroy(void); | MS2_PUBLIC void ms_web_cam_manager_destroy(void); | |||
/** | /** | |||
* Retreive a webcam object based on its name. | * Retreive a webcam object based on its name. | |||
* | * | |||
* @param m A webcam manager containing webcam. | * @param m A webcam manager containing webcam. | |||
* @param id A name for card to search. | * @param id A name for card to search. | |||
* | * | |||
* Returns: MSWebCam if successfull, NULL otherwise. | * Returns: MSWebCam if successfull, NULL otherwise. | |||
*/ | */ | |||
MSWebCam * ms_web_cam_manager_get_cam(MSWebCamManager *m, const char *id); | MS2_PUBLIC MSWebCam * ms_web_cam_manager_get_cam(MSWebCamManager *m, const char *id); | |||
/** | /** | |||
* Retreive the default webcam object. | * Retreive the default webcam object. | |||
* | * | |||
* @param m A webcam manager containing webcams. | * @param m A webcam manager containing webcams. | |||
* | * | |||
* Returns: MSWebCam if successfull, NULL otherwise. | * Returns: MSWebCam if successfull, NULL otherwise. | |||
*/ | */ | |||
MSWebCam * ms_web_cam_manager_get_default_cam(MSWebCamManager *m); | MS2_PUBLIC MSWebCam * ms_web_cam_manager_get_default_cam(MSWebCamManager *m ); | |||
/** | /** | |||
* Retreive the list of webcam objects. | * Retreive the list of webcam objects. | |||
* | * | |||
* @param m A webcam manager containing webcams. | * @param m A webcam manager containing webcams. | |||
* | * | |||
* Returns: MSList of cards if successfull, NULL otherwise. | * Returns: MSList of cards if successfull, NULL otherwise. | |||
*/ | */ | |||
const MSList * ms_web_cam_manager_get_list(MSWebCamManager *m); | MS2_PUBLIC const MSList * ms_web_cam_manager_get_list(MSWebCamManager *m); | |||
/** | /** | |||
* Add a webcam object in a webcam manager's list. | * Add a webcam object in a webcam manager's list. | |||
* | * | |||
* @param m A webcam manager containing webcams | * @param m A webcam manager containing webcams | |||
* @param c A web cam object. | * @param c A web cam object. | |||
* | * | |||
*/ | */ | |||
void ms_web_cam_manager_add_cam(MSWebCamManager *m, MSWebCam *c); | MS2_PUBLIC void ms_web_cam_manager_add_cam(MSWebCamManager *m, MSWebCam *c) ; | |||
/** | /** | |||
* Add a webcam object on top of list of the webcam manager's list. | * Add a webcam object on top of list of the webcam manager's list. | |||
* | * | |||
* @param m A webcam manager containing webcams | * @param m A webcam manager containing webcams | |||
* @param c A web cam object. | * @param c A web cam object. | |||
* | * | |||
*/ | */ | |||
void ms_web_cam_manager_prepend_cam(MSWebCamManager *m, MSWebCam *c); | MS2_PUBLIC void ms_web_cam_manager_prepend_cam(MSWebCamManager *m, MSWebCam *c); | |||
/** | /** | |||
* Register a webcam descriptor in a webcam manager. | * Register a webcam descriptor in a webcam manager. | |||
* | * | |||
* @param m A webcam manager containing sound cards. | * @param m A webcam manager containing sound cards. | |||
* @param desc A webcam descriptor object. | * @param desc A webcam descriptor object. | |||
* | * | |||
*/ | */ | |||
void ms_web_cam_manager_register_desc(MSWebCamManager *m, MSWebCamDesc *des c); | MS2_PUBLIC void ms_web_cam_manager_register_desc(MSWebCamManager *m, MSWebC amDesc *desc); | |||
/** | /** | |||
* Ask all registered MSWebCamDesc to detect the webcams again. | * Ask all registered MSWebCamDesc to detect the webcams again. | |||
* | * | |||
* @param m A webcam manager | * @param m A webcam manager | |||
**/ | **/ | |||
void ms_web_cam_manager_reload(MSWebCamManager *m); | MS2_PUBLIC void ms_web_cam_manager_reload(MSWebCamManager *m); | |||
/** | /** | |||
* Create an INPUT filter based on the selected camera. | * Create an INPUT filter based on the selected camera. | |||
* | * | |||
* @param obj A webcam object. | * @param obj A webcam object. | |||
* | * | |||
* Returns: A MSFilter if successfull, NULL otherwise. | * Returns: A MSFilter if successfull, NULL otherwise. | |||
*/ | */ | |||
struct _MSFilter * ms_web_cam_create_reader(MSWebCam *obj); | MS2_PUBLIC struct _MSFilter * ms_web_cam_create_reader(MSWebCam *obj); | |||
/** | /** | |||
* Create a new webcam object. | * Create a new webcam object. | |||
* | * | |||
* @param desc A webcam description object. | * @param desc A webcam description object. | |||
* | * | |||
* Returns: MSWebCam if successfull, NULL otherwise. | * Returns: MSWebCam if successfull, NULL otherwise. | |||
*/ | */ | |||
MSWebCam * ms_web_cam_new(MSWebCamDesc *desc); | MS2_PUBLIC MSWebCam * ms_web_cam_new(MSWebCamDesc *desc); | |||
/** | /** | |||
* Destroy webcam object. | * Destroy webcam object. | |||
* | * | |||
* @param obj A MSWebCam object. | * @param obj A MSWebCam object. | |||
*/ | */ | |||
void ms_web_cam_destroy(MSWebCam *obj); | MS2_PUBLIC void ms_web_cam_destroy(MSWebCam *obj); | |||
/** | /** | |||
* Retreive a webcam's driver type string. | * Retreive a webcam's driver type string. | |||
* | * | |||
* Internal driver types are either: "V4L V4LV2" | * Internal driver types are either: "V4L V4LV2" | |||
* | * | |||
* @param obj A webcam object. | * @param obj A webcam object. | |||
* | * | |||
* Returns: a string if successfull, NULL otherwise. | * Returns: a string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_web_cam_get_driver_type(const MSWebCam *obj); | MS2_PUBLIC const char *ms_web_cam_get_driver_type(const MSWebCam *obj); | |||
/** | /** | |||
* Retreive a webcam's name. | * Retreive a webcam's name. | |||
* | * | |||
* @param obj A webcam object. | * @param obj A webcam object. | |||
* | * | |||
* Returns: a string if successfull, NULL otherwise. | * Returns: a string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_web_cam_get_name(const MSWebCam *obj); | MS2_PUBLIC const char *ms_web_cam_get_name(const MSWebCam *obj); | |||
/** | /** | |||
* Retreive webcam's id: ($driver_type: $name). | * Retreive webcam's id: ($driver_type: $name). | |||
* | * | |||
* @param obj A webcam object. | * @param obj A webcam object. | |||
* | * | |||
* Returns: A string if successfull, NULL otherwise. | * Returns: A string if successfull, NULL otherwise. | |||
*/ | */ | |||
const char *ms_web_cam_get_string_id(MSWebCam *obj); | MS2_PUBLIC const char *ms_web_cam_get_string_id(MSWebCam *obj); | |||
/*specific methods for static image:*/ | /*specific methods for static image:*/ | |||
void ms_static_image_set_default_image(const char *path); | MS2_PUBLIC void ms_static_image_set_default_image(const char *path); | |||
/** method for the "nowebcam" filter */ | /** method for the "nowebcam" filter */ | |||
#define MS_STATIC_IMAGE_SET_IMAGE \ | #define MS_STATIC_IMAGE_SET_IMAGE \ | |||
MS_FILTER_METHOD(MS_STATIC_IMAGE_ID,0,const char) | MS_FILTER_METHOD(MS_STATIC_IMAGE_ID,0,const char) | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
/** @} */ | /** @} */ | |||
End of changes. 16 change blocks. | ||||
16 lines changed or deleted | 16 lines changed or added | |||
rfc3984.h | rfc3984.h | |||
---|---|---|---|---|
skipping to change at line 26 | skipping to change at line 26 | |||
along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | |||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
*/ | */ | |||
#ifndef rfc3984_h | #ifndef rfc3984_h | |||
#define rfc3984_h | #define rfc3984_h | |||
#include "mediastreamer2/mscommon.h" | #include "mediastreamer2/mscommon.h" | |||
#include "mediastreamer2/msqueue.h" | #include "mediastreamer2/msqueue.h" | |||
/* | ||||
This file declares an API useful to pack/unpack H264 nals as described in R | ||||
FC3984 | ||||
It is part of the public API to allow external H264 plugins use this api. | ||||
*/ | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
typedef struct Rfc3984Context{ | typedef struct Rfc3984Context{ | |||
MSQueue q; | MSQueue q; | |||
mblk_t *m; | mblk_t *m; | |||
int maxsz; | int maxsz; | |||
uint32_t last_ts; | uint32_t last_ts; | |||
uint8_t mode; | uint8_t mode; | |||
bool_t stap_a_allowed; | bool_t stap_a_allowed; | |||
uint8_t reserved; | uint8_t reserved; | |||
} Rfc3984Context; | } Rfc3984Context; | |||
Rfc3984Context *rfc3984_new(void); | MS2_PUBLIC Rfc3984Context *rfc3984_new(void); | |||
void rfc3984_destroy(Rfc3984Context *ctx); | MS2_PUBLIC void rfc3984_destroy(Rfc3984Context *ctx); | |||
void rfc3984_init(Rfc3984Context *ctx); | void rfc3984_init(Rfc3984Context *ctx); | |||
void rfc3984_set_mode(Rfc3984Context *ctx, int mode); | MS2_PUBLIC void rfc3984_set_mode(Rfc3984Context *ctx, int mode); | |||
/* some stupid phones don't decode STAP-A packets ...*/ | /* some stupid phones don't decode STAP-A packets ...*/ | |||
void rfc3984_enable_stap_a(Rfc3984Context *ctx, bool_t yesno); | MS2_PUBLIC void rfc3984_enable_stap_a(Rfc3984Context *ctx, bool_t yesno); | |||
/*process NALUs and pack them into rtp payloads */ | /*process NALUs and pack them into rtp payloads */ | |||
void rfc3984_pack(Rfc3984Context *ctx, MSQueue *naluq, MSQueue *rtpq, uint3 2_t ts); | MS2_PUBLIC void rfc3984_pack(Rfc3984Context *ctx, MSQueue *naluq, MSQueue * rtpq, uint32_t ts); | |||
/*process incoming rtp data and output NALUs, whenever possible*/ | /*process incoming rtp data and output NALUs, whenever possible*/ | |||
void rfc3984_unpack(Rfc3984Context *ctx, mblk_t *im, MSQueue *naluq); | MS2_PUBLIC void rfc3984_unpack(Rfc3984Context *ctx, mblk_t *im, MSQueue *na luq); | |||
void rfc3984_uninit(Rfc3984Context *ctx); | void rfc3984_uninit(Rfc3984Context *ctx); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
6 lines changed or deleted | 12 lines changed or added | |||