allfilters.h | allfilters.h | |||
---|---|---|---|---|
skipping to change at line 111 | skipping to change at line 111 | |||
MS_IOUNIT_READ_ID, | MS_IOUNIT_READ_ID, | |||
MS_IOUNIT_WRITE_ID, | MS_IOUNIT_WRITE_ID, | |||
MS_ANDROID_SOUND_READ_ID, | MS_ANDROID_SOUND_READ_ID, | |||
MS_ANDROID_SOUND_WRITE_ID, | MS_ANDROID_SOUND_WRITE_ID, | |||
MS_JPEG_WRITER_ID, | MS_JPEG_WRITER_ID, | |||
MS_X11VIDEO_ID, | MS_X11VIDEO_ID, | |||
MS_ANDROID_DISPLAY_ID, | MS_ANDROID_DISPLAY_ID, | |||
MS_ANDROID_VIDEO_READ_ID, | MS_ANDROID_VIDEO_READ_ID, | |||
MS_ANDROID_VIDEO_WRITE_ID, | MS_ANDROID_VIDEO_WRITE_ID, | |||
MS_TONE_DETECTOR_ID, | MS_TONE_DETECTOR_ID, | |||
MY_FILTER_ID, | ||||
MS_IOS_DISPLAY_ID, | ||||
MS_VP8_ENC_ID, | MS_VP8_ENC_ID, | |||
MS_VP8_DEC_ID, | MS_VP8_DEC_ID, | |||
MS_G722_ENC_ID, | MS_G722_ENC_ID, | |||
MS_G722_DEC_ID, | MS_G722_DEC_ID, | |||
MS_G726_40_ENC_ID, | MS_G726_40_ENC_ID, | |||
MS_G726_32_ENC_ID, | MS_G726_32_ENC_ID, | |||
MS_G726_24_ENC_ID, | MS_G726_24_ENC_ID, | |||
MS_G726_16_ENC_ID, | MS_G726_16_ENC_ID, | |||
MS_AAL2_G726_40_ENC_ID, | MS_AAL2_G726_40_ENC_ID, | |||
MS_AAL2_G726_32_ENC_ID, | MS_AAL2_G726_32_ENC_ID, | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
config.h | config.h | |||
---|---|---|---|---|
skipping to change at line 129 | skipping to change at line 129 | |||
/* 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 nb _NO zh_TW" | #define LINPHONE_ALL_LANGS "fr it de ja es pl cs nl sv pt_BR hu ru zh_CN nb _NO zh_TW" | |||
/* 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.99.4/lib/liblin phone/plugins" | #define LINPHONE_PLUGINS_DIR "/home/ut/testing/linphone/3.5.0/lib/liblinpho ne/plugins" | |||
/* Linphone's version number */ | /* Linphone's version number */ | |||
#define LINPHONE_VERSION "3.4.99.4" | #define LINPHONE_VERSION "3.5.0" | |||
/* 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.99.4/share" | #define PACKAGE_DATA_DIR "/home/ut/testing/linphone/3.5.0/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.99.4/share/locale " | #define PACKAGE_LOCALE_DIR "/home/ut/testing/linphone/3.5.0/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.99.4/share/sounds/ linphone" | #define PACKAGE_SOUND_DIR "/home/ut/testing/linphone/3.5.0/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.99.4" | #define PACKAGE_STRING "linphone 3.5.0" | |||
/* 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.99.4" | #define PACKAGE_VERSION "3.5.0" | |||
/* 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.99.4" | #define VERSION "3.5.0" | |||
/* 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 | |||
linphonecore.h | linphonecore.h | |||
---|---|---|---|---|
skipping to change at line 157 | skipping to change at line 157 | |||
char start_date[128]; /**<Human readable string containg the start d ate*/ | char start_date[128]; /**<Human readable string containg the start d ate*/ | |||
int duration; /**<Duration of the call in seconds*/ | int duration; /**<Duration of the call in seconds*/ | |||
char *refkey; | char *refkey; | |||
void *user_pointer; | void *user_pointer; | |||
rtp_stats_t local_stats; | rtp_stats_t local_stats; | |||
rtp_stats_t remote_stats; | rtp_stats_t remote_stats; | |||
float quality; | float quality; | |||
struct _LinphoneCore *lc; | struct _LinphoneCore *lc; | |||
} LinphoneCallLog; | } LinphoneCallLog; | |||
enum LinphoneMediaEncryption { | ||||
LinphoneMediaEncryptionNone, | ||||
LinphoneMediaEncryptionSRTP, | ||||
LinphoneMediaEncryptionZRTP | ||||
}; | ||||
typedef enum LinphoneMediaEncryption LinphoneMediaEncryption; | ||||
/*public: */ | /*public: */ | |||
void linphone_call_log_set_user_pointer(LinphoneCallLog *cl, void *up); | void linphone_call_log_set_user_pointer(LinphoneCallLog *cl, void *up); | |||
void *linphone_call_log_get_user_pointer(const LinphoneCallLog *cl); | void *linphone_call_log_get_user_pointer(const LinphoneCallLog *cl); | |||
void linphone_call_log_set_ref_key(LinphoneCallLog *cl, const char *refkey) ; | void linphone_call_log_set_ref_key(LinphoneCallLog *cl, const char *refkey) ; | |||
const char *linphone_call_log_get_ref_key(const LinphoneCallLog *cl); | const char *linphone_call_log_get_ref_key(const LinphoneCallLog *cl); | |||
const rtp_stats_t *linphone_call_log_get_local_stats(const LinphoneCallLog *cl); | const rtp_stats_t *linphone_call_log_get_local_stats(const LinphoneCallLog *cl); | |||
const rtp_stats_t *linphone_call_log_get_remote_stats(const LinphoneCallLog *cl); | const rtp_stats_t *linphone_call_log_get_remote_stats(const LinphoneCallLog *cl); | |||
char * linphone_call_log_to_str(LinphoneCallLog *cl); | char * linphone_call_log_to_str(LinphoneCallLog *cl); | |||
/** | /** | |||
* The LinphoneCallParams is an object containing various call related para meters. | * The LinphoneCallParams is an object containing various call related para meters. | |||
* It can be used to retrieve parameters from a currently running call or m odify the call's characteristics | * It can be used to retrieve parameters from a currently running call or m odify the call's characteristics | |||
* dynamically. | * dynamically. | |||
**/ | **/ | |||
struct _LinphoneCallParams; | struct _LinphoneCallParams; | |||
typedef struct _LinphoneCallParams LinphoneCallParams; | typedef struct _LinphoneCallParams LinphoneCallParams; | |||
LinphoneCallParams * linphone_call_params_copy(const LinphoneCallParams *cp ); | LinphoneCallParams * linphone_call_params_copy(const LinphoneCallParams *cp ); | |||
void linphone_call_params_enable_video(LinphoneCallParams *cp, bool_t enabl ed); | void linphone_call_params_enable_video(LinphoneCallParams *cp, bool_t enabl ed); | |||
bool_t linphone_call_params_video_enabled(const LinphoneCallParams *cp); | bool_t linphone_call_params_video_enabled(const LinphoneCallParams *cp); | |||
LinphoneMediaEncryption linphone_call_params_get_media_encryption(const Lin | ||||
phoneCallParams *cp); | ||||
void linphone_call_params_set_media_encryption(LinphoneCallParams *cp, Linp | ||||
honeMediaEncryption e); | ||||
void linphone_call_params_enable_early_media_sending(LinphoneCallParams *cp , bool_t enabled); | void linphone_call_params_enable_early_media_sending(LinphoneCallParams *cp , bool_t enabled); | |||
bool_t linphone_call_params_early_media_sending_enabled(const LinphoneCallP arams *cp); | bool_t linphone_call_params_early_media_sending_enabled(const LinphoneCallP arams *cp); | |||
bool_t linphone_call_params_local_conference_mode(const LinphoneCallParams *cp); | bool_t linphone_call_params_local_conference_mode(const LinphoneCallParams *cp); | |||
void linphone_call_params_set_audio_bandwidth_limit(LinphoneCallParams *cp, int bw); | void linphone_call_params_set_audio_bandwidth_limit(LinphoneCallParams *cp, int bw); | |||
void linphone_call_params_destroy(LinphoneCallParams *cp); | void linphone_call_params_destroy(LinphoneCallParams *cp); | |||
/** | /** | |||
* Enum describing failure reasons. | * Enum describing failure reasons. | |||
* @ingroup initializing | * @ingroup initializing | |||
**/ | **/ | |||
skipping to change at line 257 | skipping to change at line 267 | |||
const LinphoneCallParams * linphone_call_get_current_params(const LinphoneC all *call); | const LinphoneCallParams * linphone_call_get_current_params(const LinphoneC all *call); | |||
void linphone_call_enable_camera(LinphoneCall *lc, bool_t enabled); | void linphone_call_enable_camera(LinphoneCall *lc, bool_t enabled); | |||
bool_t linphone_call_camera_enabled(const LinphoneCall *lc); | bool_t linphone_call_camera_enabled(const LinphoneCall *lc); | |||
int linphone_call_take_video_snapshot(LinphoneCall *call, const char *file) ; | int linphone_call_take_video_snapshot(LinphoneCall *call, const char *file) ; | |||
LinphoneReason linphone_call_get_reason(const LinphoneCall *call); | LinphoneReason linphone_call_get_reason(const LinphoneCall *call); | |||
const char *linphone_call_get_remote_user_agent(LinphoneCall *call); | const char *linphone_call_get_remote_user_agent(LinphoneCall *call); | |||
float linphone_call_get_play_volume(LinphoneCall *call); | float linphone_call_get_play_volume(LinphoneCall *call); | |||
float linphone_call_get_record_volume(LinphoneCall *call); | float linphone_call_get_record_volume(LinphoneCall *call); | |||
float linphone_call_get_current_quality(LinphoneCall *call); | float linphone_call_get_current_quality(LinphoneCall *call); | |||
float linphone_call_get_average_quality(LinphoneCall *call); | float linphone_call_get_average_quality(LinphoneCall *call); | |||
const char* linphone_call_get_authentication_token(LinphoneCall *call); | ||||
bool_t linphone_call_get_authentication_token_verified(LinphoneCall *call); | ||||
void linphone_call_set_authentication_token_verified(LinphoneCall *call, bo | ||||
ol_t verified); | ||||
void linphone_call_send_vfu_request(LinphoneCall *call); | ||||
void *linphone_call_get_user_pointer(LinphoneCall *call); | void *linphone_call_get_user_pointer(LinphoneCall *call); | |||
void linphone_call_set_user_pointer(LinphoneCall *call, void *user_pointer) ; | void linphone_call_set_user_pointer(LinphoneCall *call, void *user_pointer) ; | |||
/** | /** | |||
* Enables or disable echo cancellation for this call | * Enables or disable echo cancellation for this call | |||
* @param call | * @param call | |||
* @param val | * @param val | |||
* | * | |||
* @ingroup media_parameters | * @ingroup media_parameters | |||
**/ | **/ | |||
void linphone_call_enable_echo_cancellation(LinphoneCall *call, bool_t val) ; | void linphone_call_enable_echo_cancellation(LinphoneCall *call, bool_t val) ; | |||
skipping to change at line 330 | skipping to change at line 344 | |||
LinphoneRegistrationCleared, /**< Unregistration succeeded */ | LinphoneRegistrationCleared, /**< Unregistration succeeded */ | |||
LinphoneRegistrationFailed /**<Registration failed */ | LinphoneRegistrationFailed /**<Registration failed */ | |||
}LinphoneRegistrationState; | }LinphoneRegistrationState; | |||
/** | /** | |||
* Human readable version of the #LinphoneRegistrationState | * Human readable version of the #LinphoneRegistrationState | |||
* @param cs sate | * @param cs sate | |||
*/ | */ | |||
const char *linphone_registration_state_to_string(LinphoneRegistrationState cs); | const char *linphone_registration_state_to_string(LinphoneRegistrationState cs); | |||
/** | ||||
* True if tunnel support was compiled. | ||||
*/ | ||||
bool_t linphone_core_tunnel_available(); | ||||
/** | ||||
* Update tunnel using configuration. | ||||
*/ | ||||
void linphone_core_update_tunnel(LinphoneCore *lc); | ||||
LinphoneProxyConfig *linphone_proxy_config_new(void); | LinphoneProxyConfig *linphone_proxy_config_new(void); | |||
int linphone_proxy_config_set_server_addr(LinphoneProxyConfig *obj, const c har *server_addr); | int linphone_proxy_config_set_server_addr(LinphoneProxyConfig *obj, const c har *server_addr); | |||
int linphone_proxy_config_set_identity(LinphoneProxyConfig *obj, const char *identity); | int linphone_proxy_config_set_identity(LinphoneProxyConfig *obj, const char *identity); | |||
int linphone_proxy_config_set_route(LinphoneProxyConfig *obj, const char *r oute); | int linphone_proxy_config_set_route(LinphoneProxyConfig *obj, const char *r oute); | |||
void linphone_proxy_config_expires(LinphoneProxyConfig *obj, int expires); | void linphone_proxy_config_expires(LinphoneProxyConfig *obj, int expires); | |||
/** | /** | |||
* Indicates either or not, REGISTRATION must be issued for this #Linphone ProxyConfig . | * Indicates either or not, REGISTRATION must be issued for this #Linphone ProxyConfig . | |||
* <br> In case this #LinphoneProxyConfig has been added to #LinphoneCore, follows the linphone_proxy_config_edit() rule. | * <br> In case this #LinphoneProxyConfig has been added to #LinphoneCore, follows the linphone_proxy_config_edit() rule. | |||
* @param obj object pointer | * @param obj object pointer | |||
* @param val if true, registration will be engaged | * @param val if true, registration will be engaged | |||
skipping to change at line 797 | skipping to change at line 821 | |||
bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc); | bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc); | |||
void linphone_core_set_sip_port(LinphoneCore *lc, int port); | void linphone_core_set_sip_port(LinphoneCore *lc, int port); | |||
int linphone_core_get_sip_port(LinphoneCore *lc); | int linphone_core_get_sip_port(LinphoneCore *lc); | |||
int linphone_core_set_sip_transports(LinphoneCore *lc, const LCSipTransport s *transports); | int linphone_core_set_sip_transports(LinphoneCore *lc, const LCSipTransport s *transports); | |||
int linphone_core_get_sip_transports(LinphoneCore *lc, LCSipTransports *tra nsports); | int linphone_core_get_sip_transports(LinphoneCore *lc, LCSipTransports *tra nsports); | |||
/** | /** | |||
* @ingroup IOS | * | |||
* Give access to the UDP sip socket. Can be useful to configure this socke t as persistent I.E kCFStreamNetworkServiceType set to kCFStreamNetworkServ iceTypeVoIP) | * Give access to the UDP sip socket. Can be useful to configure this socke t as persistent I.E kCFStreamNetworkServiceType set to kCFStreamNetworkServ iceTypeVoIP) | |||
* @param lc #LinphoneCore | * @param lc #LinphoneCore | |||
* @return socket file descriptor | * @return socket file descriptor | |||
*/ | */ | |||
ortp_socket_t linphone_core_get_sip_socket(LinphoneCore *lc); | ortp_socket_t linphone_core_get_sip_socket(LinphoneCore *lc); | |||
void linphone_core_set_inc_timeout(LinphoneCore *lc, int seconds); | void linphone_core_set_inc_timeout(LinphoneCore *lc, int seconds); | |||
int linphone_core_get_inc_timeout(LinphoneCore *lc); | int linphone_core_get_inc_timeout(LinphoneCore *lc); | |||
skipping to change at line 849 | skipping to change at line 873 | |||
const char * linphone_core_get_ringer_device(LinphoneCore *lc); | const char * linphone_core_get_ringer_device(LinphoneCore *lc); | |||
const char * linphone_core_get_playback_device(LinphoneCore *lc); | const char * linphone_core_get_playback_device(LinphoneCore *lc); | |||
const char * linphone_core_get_capture_device(LinphoneCore *lc); | const char * linphone_core_get_capture_device(LinphoneCore *lc); | |||
int linphone_core_set_ringer_device(LinphoneCore *lc, const char * devid); | int linphone_core_set_ringer_device(LinphoneCore *lc, const char * devid); | |||
int linphone_core_set_playback_device(LinphoneCore *lc, const char * devid) ; | int linphone_core_set_playback_device(LinphoneCore *lc, const char * devid) ; | |||
int linphone_core_set_capture_device(LinphoneCore *lc, const char * devid); | int linphone_core_set_capture_device(LinphoneCore *lc, const char * devid); | |||
char linphone_core_get_sound_source(LinphoneCore *lc); | char linphone_core_get_sound_source(LinphoneCore *lc); | |||
void linphone_core_set_sound_source(LinphoneCore *lc, char source); | void linphone_core_set_sound_source(LinphoneCore *lc, char source); | |||
void linphone_core_set_ring(LinphoneCore *lc, const char *path); | void linphone_core_set_ring(LinphoneCore *lc, const char *path); | |||
const char *linphone_core_get_ring(const LinphoneCore *lc); | const char *linphone_core_get_ring(const LinphoneCore *lc); | |||
void linphone_core_verify_server_certificates(LinphoneCore *lc, bool_t yesn o); | ||||
void linphone_core_set_root_ca(LinphoneCore *lc, const char *path); | void linphone_core_set_root_ca(LinphoneCore *lc, const char *path); | |||
void linphone_core_set_ringback(LinphoneCore *lc, const char *path); | void linphone_core_set_ringback(LinphoneCore *lc, const char *path); | |||
const char * linphone_core_get_ringback(const LinphoneCore *lc); | const char * linphone_core_get_ringback(const LinphoneCore *lc); | |||
void linphone_core_set_remote_ringback_tone(LinphoneCore *lc,const char *); | void linphone_core_set_remote_ringback_tone(LinphoneCore *lc,const char *); | |||
const char *linphone_core_get_remote_ringback_tone(const LinphoneCore *lc); | const char *linphone_core_get_remote_ringback_tone(const LinphoneCore *lc); | |||
int linphone_core_preview_ring(LinphoneCore *lc, const char *ring,LinphoneC oreCbFunc func,void * userdata); | int linphone_core_preview_ring(LinphoneCore *lc, const char *ring,LinphoneC oreCbFunc func,void * userdata); | |||
void linphone_core_enable_echo_cancellation(LinphoneCore *lc, bool_t val); | void linphone_core_enable_echo_cancellation(LinphoneCore *lc, bool_t val); | |||
bool_t linphone_core_echo_cancellation_enabled(LinphoneCore *lc); | bool_t linphone_core_echo_cancellation_enabled(LinphoneCore *lc); | |||
skipping to change at line 924 | skipping to change at line 949 | |||
float linphone_core_get_static_picture_fps(LinphoneCore *lc); | float linphone_core_get_static_picture_fps(LinphoneCore *lc); | |||
/*function to be used for eventually setting window decorations (icons, tit le...)*/ | /*function to be used for eventually setting window decorations (icons, tit le...)*/ | |||
unsigned long linphone_core_get_native_video_window_id(const LinphoneCore * lc); | unsigned long linphone_core_get_native_video_window_id(const LinphoneCore * lc); | |||
void linphone_core_set_native_video_window_id(LinphoneCore *lc, unsigned lo ng id); | void linphone_core_set_native_video_window_id(LinphoneCore *lc, unsigned lo ng id); | |||
unsigned long linphone_core_get_native_preview_window_id(const LinphoneCore *lc); | unsigned long linphone_core_get_native_preview_window_id(const LinphoneCore *lc); | |||
void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long id); | void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long id); | |||
void linphone_core_use_preview_window(LinphoneCore *lc, bool_t yesno); | void linphone_core_use_preview_window(LinphoneCore *lc, bool_t yesno); | |||
int linphone_core_get_device_rotation(LinphoneCore *lc ); | ||||
void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation); | void linphone_core_set_device_rotation(LinphoneCore *lc, int rotation); | |||
/*play/record support: use files instead of soundcard*/ | /*play/record support: use files instead of soundcard*/ | |||
void linphone_core_use_files(LinphoneCore *lc, bool_t yesno); | void linphone_core_use_files(LinphoneCore *lc, bool_t yesno); | |||
void linphone_core_set_play_file(LinphoneCore *lc, const char *file); | void linphone_core_set_play_file(LinphoneCore *lc, const char *file); | |||
void linphone_core_set_record_file(LinphoneCore *lc, const char *file); | void linphone_core_set_record_file(LinphoneCore *lc, const char *file); | |||
void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms); | void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms); | |||
void linphone_core_stop_dtmf(LinphoneCore *lc); | void linphone_core_stop_dtmf(LinphoneCore *lc); | |||
skipping to change at line 980 | skipping to change at line 1006 | |||
/*set a callback for some blocking operations, it takes you informed of the progress of the operation*/ | /*set a callback for some blocking operations, it takes you informed of the progress of the operation*/ | |||
void linphone_core_set_waiting_callback(LinphoneCore *lc, LinphoneWaitingCa llback cb, void *user_context); | void linphone_core_set_waiting_callback(LinphoneCore *lc, LinphoneWaitingCa llback cb, void *user_context); | |||
/*returns the list of registered SipSetup (linphonecore plugins) */ | /*returns the list of registered SipSetup (linphonecore plugins) */ | |||
const MSList * linphone_core_get_sip_setups(LinphoneCore *lc); | const MSList * linphone_core_get_sip_setups(LinphoneCore *lc); | |||
void linphone_core_destroy(LinphoneCore *lc); | void linphone_core_destroy(LinphoneCore *lc); | |||
/*for advanced users:*/ | /*for advanced users:*/ | |||
void linphone_core_set_audio_transports(LinphoneCore *lc, RtpTransport *rtp | typedef RtpTransport * (*LinphoneRtpTransportFactoryFunc)(void *data, int p | |||
, RtpTransport *rtcp); | ort); | |||
void linphone_core_set_video_transports(LinphoneCore *lc, RtpTransport *rtp | struct _LinphoneRtpTransportFactories{ | |||
, RtpTransport *rtcp); | LinphoneRtpTransportFactoryFunc audio_rtp_func; | |||
void *audio_rtp_func_data; | ||||
LinphoneRtpTransportFactoryFunc audio_rtcp_func; | ||||
void *audio_rtcp_func_data; | ||||
LinphoneRtpTransportFactoryFunc video_rtp_func; | ||||
void *video_rtp_func_data; | ||||
LinphoneRtpTransportFactoryFunc video_rtcp_func; | ||||
void *video_rtcp_func_data; | ||||
}; | ||||
typedef struct _LinphoneRtpTransportFactories LinphoneRtpTransportFactories | ||||
; | ||||
void linphone_core_set_rtp_transport_factories(LinphoneCore* lc, LinphoneRt | ||||
pTransportFactories *factories); | ||||
int linphone_core_get_current_call_stats(LinphoneCore *lc, rtp_stats_t *loc al, rtp_stats_t *remote); | int linphone_core_get_current_call_stats(LinphoneCore *lc, rtp_stats_t *loc al, rtp_stats_t *remote); | |||
const MSList *linphone_core_get_calls(LinphoneCore *lc); | const MSList *linphone_core_get_calls(LinphoneCore *lc); | |||
LinphoneGlobalState linphone_core_get_global_state(const LinphoneCore *lc); | LinphoneGlobalState linphone_core_get_global_state(const LinphoneCore *lc); | |||
/** | /** | |||
* force registration refresh to be initiated upon next iterate | * force registration refresh to be initiated upon next iterate | |||
* @ingroup proxies | * @ingroup proxies | |||
*/ | */ | |||
void linphone_core_refresh_registers(LinphoneCore* lc); | void linphone_core_refresh_registers(LinphoneCore* lc); | |||
void linphone_call_send_vfu_request(LinphoneCall *call); | ||||
/* Path to the file storing secrets cache */ | /* Path to the file storing secrets cache */ | |||
void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file ); | void linphone_core_set_zrtp_secrets_file(LinphoneCore *lc, const char* file ); | |||
bool_t linphone_call_are_all_streams_encrypted(LinphoneCall *call); | ||||
const char* linphone_call_get_authentication_token(LinphoneCall *call); | ||||
bool_t linphone_call_get_authentication_token_verified(LinphoneCall *call); | ||||
const LinphoneCall* linphone_core_find_call_from_uri(LinphoneCore *lc, cons t char *uri); | const LinphoneCall* linphone_core_find_call_from_uri(LinphoneCore *lc, cons t char *uri); | |||
int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call); | int linphone_core_add_to_conference(LinphoneCore *lc, LinphoneCall *call); | |||
int linphone_core_add_all_to_conference(LinphoneCore *lc); | int linphone_core_add_all_to_conference(LinphoneCore *lc); | |||
int linphone_core_remove_from_conference(LinphoneCore *lc, LinphoneCall *ca ll); | int linphone_core_remove_from_conference(LinphoneCore *lc, LinphoneCall *ca ll); | |||
bool_t linphone_core_is_in_conference(const LinphoneCore *lc); | bool_t linphone_core_is_in_conference(const LinphoneCore *lc); | |||
int linphone_core_enter_conference(LinphoneCore *lc); | int linphone_core_enter_conference(LinphoneCore *lc); | |||
int linphone_core_leave_conference(LinphoneCore *lc); | int linphone_core_leave_conference(LinphoneCore *lc); | |||
float linphone_core_get_conference_local_input_volume(LinphoneCore *lc); | float linphone_core_get_conference_local_input_volume(LinphoneCore *lc); | |||
int linphone_core_terminate_conference(LinphoneCore *lc); | int linphone_core_terminate_conference(LinphoneCore *lc); | |||
int linphone_core_get_conference_size(LinphoneCore *lc); | int linphone_core_get_conference_size(LinphoneCore *lc); | |||
int linphone_core_get_max_calls(LinphoneCore *lc); | int linphone_core_get_max_calls(LinphoneCore *lc); | |||
void linphone_core_set_max_calls(LinphoneCore *lc, int max); | ||||
bool_t linphone_core_sound_resources_locked(LinphoneCore *lc); | bool_t linphone_core_sound_resources_locked(LinphoneCore *lc); | |||
bool_t linphone_core_media_encryption_supported(const LinphoneCore *lc, Lin | ||||
phoneMediaEncryption menc); | ||||
/** | ||||
* Choose media encryption policy to be used for RTP packets | ||||
*/ | ||||
int linphone_core_set_media_encryption(LinphoneCore *lc, enum LinphoneMedia | ||||
Encryption menc); | ||||
LinphoneMediaEncryption linphone_core_get_media_encryption(LinphoneCore *lc | ||||
); | ||||
bool_t linphone_core_is_media_encryption_mandatory(LinphoneCore *lc); | ||||
/** | ||||
* Defines Linphone behaviour when encryption parameters negociation fails | ||||
on outoing call. | ||||
* If set to TRUE call will fail; if set to FALSE will resend an INVITE wit | ||||
h encryption disabled | ||||
*/ | ||||
void linphone_core_set_media_encryption_mandatory(LinphoneCore *lc, bool_t | ||||
m); | ||||
/** | ||||
* Init call params using LinphoneCore's current configuration | ||||
*/ | ||||
void linphone_core_init_default_params(LinphoneCore*lc, LinphoneCallParams | ||||
*params); | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 12 change blocks. | ||||
11 lines changed or deleted | 76 lines changed or added | |||
mediastream.h | mediastream.h | |||
---|---|---|---|---|
skipping to change at line 35 | skipping to change at line 35 | |||
#include <mediastreamer2/mssndcard.h> | #include <mediastreamer2/mssndcard.h> | |||
#include <mediastreamer2/mswebcam.h> | #include <mediastreamer2/mswebcam.h> | |||
#include <mediastreamer2/msvideo.h> | #include <mediastreamer2/msvideo.h> | |||
#include <mediastreamer2/bitratecontrol.h> | #include <mediastreamer2/bitratecontrol.h> | |||
#include <mediastreamer2/qualityindicator.h> | #include <mediastreamer2/qualityindicator.h> | |||
#include <ortp/ortp.h> | #include <ortp/ortp.h> | |||
#include <ortp/event.h> | #include <ortp/event.h> | |||
#include <ortp/zrtp.h> | #include <ortp/zrtp.h> | |||
#include <ortp/ortp_srtp.h> | #include <ortp/ortp_srtp.h> | |||
#include <ortp/zrtp.h> | ||||
#define PAYLOAD_TYPE_FLAG_CAN_RECV PAYLOAD_TYPE_USER_FLAG_1 | #define PAYLOAD_TYPE_FLAG_CAN_RECV PAYLOAD_TYPE_USER_FLAG_1 | |||
#define PAYLOAD_TYPE_FLAG_CAN_SEND PAYLOAD_TYPE_USER_FLAG_2 | #define PAYLOAD_TYPE_FLAG_CAN_SEND PAYLOAD_TYPE_USER_FLAG_2 | |||
typedef enum EchoLimiterType{ | typedef enum EchoLimiterType{ | |||
ELInactive, | ELInactive, | |||
ELControlMic, | ELControlMic, | |||
ELControlFull | ELControlFull | |||
} EchoLimiterType; | } EchoLimiterType; | |||
struct _AudioStream | struct _AudioStream | |||
skipping to change at line 83 | skipping to change at line 85 | |||
bool_t use_rc; | bool_t use_rc; | |||
bool_t is_beginning; | bool_t is_beginning; | |||
OrtpZrtpContext *ortpZrtpContext; | OrtpZrtpContext *ortpZrtpContext; | |||
srtp_t srtp_session; | srtp_t srtp_session; | |||
}; | }; | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
/** | ||||
* @addtogroup audio_stream_api | ||||
* @{ | ||||
**/ | ||||
/** | ||||
* The AudioStream holds all resources to create and run typical VoIP audio | ||||
stream. | ||||
**/ | ||||
typedef struct _AudioStream AudioStream; | typedef struct _AudioStream AudioStream; | |||
struct _RingStream | struct _RingStream | |||
{ | { | |||
MSTicker *ticker; | MSTicker *ticker; | |||
MSFilter *source; | MSFilter *source; | |||
MSFilter *gendtmf; | MSFilter *gendtmf; | |||
MSFilter *write_resampler; | MSFilter *write_resampler; | |||
MSFilter *sndwrite; | MSFilter *sndwrite; | |||
}; | }; | |||
skipping to change at line 107 | skipping to change at line 117 | |||
MS2_PUBLIC 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); | |||
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); | 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); | |||
MS2_PUBLIC int audio_stream_start_with_files (AudioStream * stream, RtpProf ile * 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); | |||
/** | ||||
* Starts an audio stream from/to local wav files or soundcards. | ||||
* | ||||
* This method starts the processing of the audio stream, that is playing f | ||||
rom wav file or soundcard, voice processing, encoding, | ||||
* sending through RTP, receiving from RTP, decoding, voice processing and | ||||
wav file recording or soundcard playback. | ||||
* | ||||
* | ||||
* @param stream an AudioStream previously created with audio_stream_new(). | ||||
* @param prof a RtpProfile containing all PayloadType possible during the | ||||
audio session. | ||||
* @param remip remote IP address where to send the encoded audio. | ||||
* @param remport remote IP port where to send the encoded audio | ||||
* @param rem_rtcp_port remote port for RTCP. | ||||
* @param payload_type payload type index to use for the sending stream. Th | ||||
is index must point to a valid PayloadType in the RtpProfile. | ||||
* @param jitt_comp Nominal jitter buffer size in milliseconds. | ||||
* @param infile path to wav file to play out (can be NULL) | ||||
* @param outfile path to wav file to record into (can be NULL) | ||||
* @param playcard The soundcard to be used for playback (can be NULL) | ||||
* @param captcard The soundcard to be used for catpure. (can be NULL) | ||||
* @param echo_cancel whether echo cancellation is to be performed. | ||||
* @returns 0 if sucessful, -1 otherwise. | ||||
**/ | ||||
MS2_PUBLIC int audio_stream_start_full(AudioStream *stream, RtpProfile *pro file, 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); | |||
MS2_PUBLIC void audio_stream_play(AudioStream *st, const char *name); | MS2_PUBLIC void audio_stream_play(AudioStream *st, const char *name); | |||
MS2_PUBLIC void audio_stream_record(AudioStream *st, const char *name); | MS2_PUBLIC void audio_stream_record(AudioStream *st, const char *name); | |||
MS2_PUBLIC void audio_stream_set_rtcp_information(AudioStream *st, const ch ar *cname, const char *tool); | MS2_PUBLIC void audio_stream_set_rtcp_information(AudioStream *st, const ch ar *cname, const char *tool); | |||
MS2_PUBLIC void audio_stream_play_received_dtmfs(AudioStream *st, bool_t ye sno); | 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 | /** | |||
this is useful to make sure that sockets are open before sending an invite; | * Creates an AudioStream object listening on a RTP port. | |||
or to start to stream only after receiving an ack.*/ | * @param locport the local UDP port to listen for RTP packets. | |||
* @param ipv6 TRUE if ipv6 must be used. | ||||
* @returns a new AudioStream. | ||||
**/ | ||||
MS2_PUBLIC AudioStream *audio_stream_new(int locport, bool_t ipv6); | MS2_PUBLIC AudioStream *audio_stream_new(int locport, bool_t ipv6); | |||
/** | ||||
* Starts an audio stream from local soundcards. | ||||
* | ||||
* This method starts the processing of the audio stream, that is capture f | ||||
rom soundcard, voice processing, encoding, | ||||
* sending through RTP, receiving from RTP, decoding, voice processing and | ||||
soundcard playback. | ||||
* | ||||
* @param stream an AudioStream previously created with audio_stream_new(). | ||||
* @param prof a RtpProfile containing all PayloadType possible during the | ||||
audio session. | ||||
* @param remip remote IP address where to send the encoded audio. | ||||
* @param remport remote IP port where to send the encoded audio | ||||
* @param rem_rtcp_port remote port for RTCP. | ||||
* @param payload_type payload type index to use for the sending stream. Th | ||||
is index must point to a valid PayloadType in the RtpProfile. | ||||
* @param jitt_comp Nominal jitter buffer size in milliseconds. | ||||
* @param playcard The soundcard to be used for playback | ||||
* @param captcard The soundcard to be used for catpure. | ||||
* @param echo_cancel whether echo cancellation is to be performed. | ||||
**/ | ||||
MS2_PUBLIC int audio_stream_start_now(AudioStream * stream, RtpProfile * pr of, const char *remip, int remport, int rem_rtcp_port, int payload_type, i nt jitt_comp,MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel); | MS2_PUBLIC int audio_stream_start_now(AudioStream * stream, RtpProfile * pr of, const char *remip, int remport, int rem_rtcp_port, int payload_type, i nt jitt_comp,MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel); | |||
MS2_PUBLIC void audio_stream_set_relay_session_id(AudioStream *stream, cons t char *relay_session_id); | MS2_PUBLIC void audio_stream_set_relay_session_id(AudioStream *stream, cons 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*/ | |||
MS2_PUBLIC bool_t audio_stream_alive(AudioStream * stream, int timeout); | MS2_PUBLIC bool_t audio_stream_alive(AudioStream * stream, int timeout); | |||
/*execute background tasks related to audio processing*/ | /** | |||
* Executes background low priority tasks related to audio processing (RTP | ||||
statistics analysis). | ||||
* It should be called periodically, for example with an interval of 100 ms | ||||
or so. | ||||
*/ | ||||
MS2_PUBLIC void audio_stream_iterate(AudioStream *stream); | MS2_PUBLIC void audio_stream_iterate(AudioStream *stream); | |||
/*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*/ | |||
MS2_PUBLIC void audio_stream_enable_echo_limiter(AudioStream *stream, EchoL imiterType 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() */ | |||
MS2_PUBLIC 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() */ | |||
MS2_PUBLIC void audio_stream_enable_automatic_gain_control(AudioStream *str eam, bool_t val); | MS2_PUBLIC void audio_stream_enable_automatic_gain_control(AudioStream *str eam, bool_t val); | |||
skipping to change at line 299 | skipping to change at line 353 | |||
#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) | |||
MS2_PUBLIC void video_preview_start(VideoPreview *stream, MSWebCam *device) ; | MS2_PUBLIC void video_preview_start(VideoPreview *stream, MSWebCam *device) ; | |||
MS2_PUBLIC void video_preview_stop(VideoPreview *stream); | MS2_PUBLIC void video_preview_stop(VideoPreview *stream); | |||
MS2_PUBLIC 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. 7 change blocks. | ||||
4 lines changed or deleted | 73 lines changed or added | |||
mscommon.h | mscommon.h | |||
---|---|---|---|---|
skipping to change at line 24 | skipping to change at line 24 | |||
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 mscommon_h | #ifndef mscommon_h | |||
#define mscommon_h | #define mscommon_h | |||
#include <ortp/ortp.h> | #include <ortp/ortp.h> | |||
#include <time.h> | #include <time.h> | |||
#if defined(__APPLE__) | ||||
#include "TargetConditionals.h" | ||||
#endif | ||||
#define ms_malloc ortp_malloc | #define ms_malloc ortp_malloc | |||
#define ms_malloc0 ortp_malloc0 | #define ms_malloc0 ortp_malloc0 | |||
#define ms_realloc ortp_realloc | #define ms_realloc ortp_realloc | |||
#define ms_new ortp_new | #define ms_new ortp_new | |||
#define ms_new0 ortp_new0 | #define ms_new0 ortp_new0 | |||
#define ms_free ortp_free | #define ms_free ortp_free | |||
#define ms_strdup ortp_strdup | #define ms_strdup ortp_strdup | |||
#define ms_strdup_printf ortp_strdup_printf | #define ms_strdup_printf ortp_strdup_printf | |||
skipping to change at line 216 | skipping to change at line 219 | |||
* Those packets are filled with zeroes. | * Those packets are filled with zeroes. | |||
**/ | **/ | |||
MS2_PUBLIC 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]). | |||
**/ | **/ | |||
MS2_PUBLIC void ms_set_mtu(int mtu); | MS2_PUBLIC void ms_set_mtu(int mtu); | |||
/** | ||||
* Declare how many cpu (cores) are available on the platform | ||||
*/ | ||||
MS2_PUBLIC void ms_set_cpu_count(unsigned int c); | ||||
MS2_PUBLIC unsigned int ms_get_cpu_count(); | ||||
/** @} */ | /** @} */ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#ifdef MS2_INTERNAL | #ifdef MS2_INTERNAL | |||
# ifdef HAVE_CONFIG_H | # ifdef HAVE_CONFIG_H | |||
# include "mediastreamer-config.h" /*necessary to know if ENABLE_NLS is th ere*/ | # include "mediastreamer-config.h" /*necessary to know if ENABLE_NLS is th ere*/ | |||
# endif | # endif | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 10 lines changed or added | |||
msconference.h | msconference.h | |||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
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. | |||
*/ | */ | |||
/* | /* | |||
* Convenient API to create and manage audio conferences. | * Convenient API to create and manage audio conferences. | |||
*/ | */ | |||
#ifndef conference_h | #ifndef msconference_h | |||
#define conference_h | #define msconference_h | |||
#include "mediastreamer2/mediastream.h" | #include "mediastreamer2/mediastream.h" | |||
typedef struct _MSAudioConferenceParams{ | /** | |||
int samplerate; | * @addtogroup mediastreamer2_audio_conference | |||
}MSAudioConferenceParams; | * @{ | |||
*/ | ||||
struct _MSAudioConference{ | ||||
MSTicker *ticker; | /** | |||
MSFilter *mixer; | * Structure that holds audio conference parameters | |||
MSAudioConferenceParams params; | **/ | |||
int nmembers; | struct _MSAudioConferenceParams{ | |||
int samplerate; /**< Conference audio sampling rate in Hz: 8000, 160 | ||||
00 ...*/ | ||||
}; | }; | |||
/** | ||||
* Typedef to structure that holds conference parameters | ||||
**/ | ||||
typedef struct _MSAudioConferenceParams MSAudioConferenceParams; | ||||
/** | ||||
* The MSAudioConference is the object representing an audio conference. | ||||
* | ||||
* First, the conference has to be created with ms_audio_conference_new(), | ||||
with parameters supplied. | ||||
* Then, participants to the conference can be added with ms_audio_conferen | ||||
ce_add_member(). | ||||
* The MSAudioConference takes in charge the mixing and dispatching of the | ||||
audio to the participants. | ||||
* If participants (MSAudioEndpoint) are using sampling rate different from | ||||
the conference, then sample rate converters are automatically added | ||||
* and configured. | ||||
* Participants can be removed from the conference with ms_audio_conference | ||||
_remove_member(). | ||||
* The conference processing is performed in a new thread run by a MSTicker | ||||
object, which is owned by the conference. | ||||
* When all participants are removed, the MSAudioConference object can then | ||||
be safely destroyed with ms_audio_conference_destroy(). | ||||
**/ | ||||
typedef struct _MSAudioConference MSAudioConference; | typedef struct _MSAudioConference MSAudioConference; | |||
struct _MSAudioEndpoint{ | /** | |||
AudioStream *st; | * The MSAudioEndpoint represents a participant in the conference. | |||
MSFilter *in_resampler,*out_resampler; | * It can be constructed from an existing AudioStream object with | |||
MSCPoint out_cut_point; | * ms_audio_endpoint_get_from_stream(). | |||
MSCPoint in_cut_point; | **/ | |||
MSCPoint in_cut_point_prev; | ||||
MSCPoint mixer_in; | ||||
MSCPoint mixer_out; | ||||
MSAudioConference *conference; | ||||
int pin; | ||||
int samplerate; | ||||
}; | ||||
typedef struct _MSAudioEndpoint MSAudioEndpoint; | typedef struct _MSAudioEndpoint MSAudioEndpoint; | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
/** | ||||
* Creates a conference. | ||||
* @param params a MSAudioConferenceParams structure, containing conference | ||||
parameters. | ||||
* @returns a MSAudioConference object. | ||||
**/ | ||||
MSAudioConference * ms_audio_conference_new(const MSAudioConferenceParams * params); | MSAudioConference * ms_audio_conference_new(const MSAudioConferenceParams * params); | |||
/** | ||||
* Gets conference's current parameters. | ||||
* @param obj the conference. | ||||
* @returns a read-only pointer to the conference parameters. | ||||
**/ | ||||
const MSAudioConferenceParams *ms_audio_conference_get_params(MSAudioConfer ence *obj); | const MSAudioConferenceParams *ms_audio_conference_get_params(MSAudioConfer ence *obj); | |||
/** | ||||
* Adds a participant to the conference. | ||||
* @param obj the conference | ||||
* @param ep the participant, represented as a MSAudioEndpoint object | ||||
**/ | ||||
void ms_audio_conference_add_member(MSAudioConference *obj, MSAudioEndpoint *ep); | void ms_audio_conference_add_member(MSAudioConference *obj, MSAudioEndpoint *ep); | |||
/** | ||||
* Removes a participant from the conference. | ||||
* @param obj the conference | ||||
* @param ep the participant, represented as a MSAudioEndpoint object | ||||
**/ | ||||
void ms_audio_conference_remove_member(MSAudioConference *obj, MSAudioEndpo int *ep); | void ms_audio_conference_remove_member(MSAudioConference *obj, MSAudioEndpo int *ep); | |||
/** | ||||
* Mutes or unmutes a participant. | ||||
* | ||||
* @param obj the conference | ||||
* @param ep the participant, represented as a MSAudioEndpoint object | ||||
* | ||||
* By default all participants are unmuted. | ||||
**/ | ||||
void ms_audio_conference_mute_member(MSAudioConference *obj, MSAudioEndpoin t *ep, bool_t muted); | void ms_audio_conference_mute_member(MSAudioConference *obj, MSAudioEndpoin t *ep, bool_t muted); | |||
int ms_audio_conference_size(MSAudioConference *obj); | ||||
/** | ||||
* Returns the size (ie the number of participants) of a conference. | ||||
* @param obj the conference | ||||
**/ | ||||
int ms_audio_conference_get_size(MSAudioConference *obj); | ||||
/** | ||||
* Destroys a conference. | ||||
* @param obj the conference | ||||
* All participants must have been removed before destroying the conference | ||||
. | ||||
**/ | ||||
void ms_audio_conference_destroy(MSAudioConference *obj); | void ms_audio_conference_destroy(MSAudioConference *obj); | |||
/** | ||||
* Creates an MSAudioEndpoint from an existing AudioStream. | ||||
* | ||||
* In order to create graphs for audio processing of each participant, the | ||||
AudioStream object is used, because | ||||
* this object already handles all the processing for volume control, encod | ||||
ing, decoding, etc... | ||||
* | ||||
* The construction of the participants depends whether it is a remote part | ||||
icipant, that is somebody in the network | ||||
* sending and receiving audio through RTP, or a local participant, that is | ||||
somebody using the local soundcard to capture | ||||
* and play audio. | ||||
* | ||||
* To create a remote participant, first create and start an AudioStream fo | ||||
r the participant with audio_stream_new() and | ||||
* audio_stream_start_with_files(), given NULL arguments as input and outpu | ||||
t files. | ||||
* This participant does not interact with soundcards, this is why we sugge | ||||
st to use audio_stream_start_full() to avoid | ||||
* holding any reference to the sound system. | ||||
* Then, create a MSAudioEndpoint representing this participant by calling | ||||
ms_audio_endpoint_get_from_stream() with | ||||
* is_remote=TRUE. | ||||
* | ||||
* To create a local participant, first create and start an AudioStream wit | ||||
h audio_stream_new() and audio_stream_start_full(), | ||||
* with real soundcard arguments. | ||||
* Arguments controlling RTP should be filled with placeholders value and w | ||||
ill not be used for conferencing. | ||||
* Then, create a MSAudioEndpoint representing this local participant by ca | ||||
lling ms_audio_endpoint_get_from_stream() | ||||
* with the audiostream and is_remote=FALSE.<br> | ||||
* For example:<br> | ||||
* <PRE> | ||||
* AudioStream *st=audio_stream_new(65000,FALSE); | ||||
* audio_stream_start_full(st, conf->local_dummy_profile, | ||||
* "127.0.0.1", | ||||
* 65000, | ||||
* 65001, | ||||
* 0, | ||||
* 40, | ||||
* NULL, | ||||
* NULL, | ||||
* playcard, | ||||
* captcard, | ||||
* needs_echocancellation, | ||||
* ); | ||||
* MSAudioEndpoint *local_endpoint=ms_audio_endpoint_get_from_stream(st,FAL | ||||
SE); | ||||
* </PRE> | ||||
**/ | ||||
MSAudioEndpoint * ms_audio_endpoint_get_from_stream(AudioStream *st, bool_t is_remote); | MSAudioEndpoint * ms_audio_endpoint_get_from_stream(AudioStream *st, bool_t is_remote); | |||
/** | ||||
* Destroys a MSAudioEndpoint that was created from an AudioStream with ms_ | ||||
audio_endpoint_get_from_stream(). | ||||
* The AudioStream can then be destroyed if needed. | ||||
**/ | ||||
void ms_audio_endpoint_release_from_stream(MSAudioEndpoint *obj); | void ms_audio_endpoint_release_from_stream(MSAudioEndpoint *obj); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
/** | ||||
* @} | ||||
*/ | ||||
#endif | #endif | |||
End of changes. 13 change blocks. | ||||
25 lines changed or deleted | 150 lines changed or added | |||
msfilter.h | msfilter.h | |||
---|---|---|---|---|
skipping to change at line 73 | skipping to change at line 73 | |||
struct _MSFilterMethod{ | struct _MSFilterMethod{ | |||
int id; | int id; | |||
MSFilterMethodFunc method; | MSFilterMethodFunc method; | |||
}; | }; | |||
/** | /** | |||
* Structure for holding filter's methods to set filter's options. | * Structure for holding filter's methods to set filter's options. | |||
* @var MSFilterMethod | * @var MSFilterMethod | |||
*/ | */ | |||
typedef struct _MSFilterMethod MSFilterMethod; | typedef struct _MSFilterMethod MSFilterMethod; | |||
/** | ||||
* Filter's category | ||||
* | ||||
*/ | ||||
enum _MSFilterCategory{ | enum _MSFilterCategory{ | |||
/**others*/ | ||||
MS_FILTER_OTHER, | MS_FILTER_OTHER, | |||
/**used by encoders*/ | ||||
MS_FILTER_ENCODER, | MS_FILTER_ENCODER, | |||
/**used by decoders*/ | ||||
MS_FILTER_DECODER | MS_FILTER_DECODER | |||
}; | }; | |||
/** | /** | |||
* Structure to describe filter's category. | * Structure to describe filter's category. | |||
* <PRE> | * <PRE> | |||
* MS_FILTER_OTHER | * MS_FILTER_OTHER | |||
* MS_FILTER_ENCODER | * MS_FILTER_ENCODER | |||
* MS_FILTER_DECODER | * MS_FILTER_DECODER | |||
* </PRE> | * </PRE> | |||
skipping to change at line 500 | skipping to change at line 506 | |||
#define MS_FILTER_BASE_METHOD_NO_ARG(_count_) \ | #define MS_FILTER_BASE_METHOD_NO_ARG(_count_) \ | |||
MS_FILTER_METHOD_ID(MS_FILTER_BASE_ID,_count_,0) | MS_FILTER_METHOD_ID(MS_FILTER_BASE_ID,_count_,0) | |||
#define MS_FILTER_EVENT(_id_,_count_,_argtype_) \ | #define MS_FILTER_EVENT(_id_,_count_,_argtype_) \ | |||
MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_)) | MS_FILTER_METHOD_ID(_id_,_count_,sizeof(_argtype_)) | |||
#define MS_FILTER_EVENT_NO_ARG(_id_,_count_)\ | #define MS_FILTER_EVENT_NO_ARG(_id_,_count_)\ | |||
MS_FILTER_METHOD_ID(_id_,_count_,0) | MS_FILTER_METHOD_ID(_id_,_count_,0) | |||
/* some MSFilter base generic methods:*/ | /** | |||
* some MSFilter base generic methods: | ||||
**/ | ||||
/** | ||||
* Set filter output/input sampling frequency in hertz | ||||
*/ | ||||
#define MS_FILTER_SET_SAMPLE_RATE MS_FILTER_BASE_METHOD(0,int) | #define MS_FILTER_SET_SAMPLE_RATE MS_FILTER_BASE_METHOD(0,int) | |||
/** | ||||
* Get filter output/input sampling frequency in hertz | ||||
*/ | ||||
#define MS_FILTER_GET_SAMPLE_RATE MS_FILTER_BASE_METHOD(1,int) | #define MS_FILTER_GET_SAMPLE_RATE MS_FILTER_BASE_METHOD(1,int) | |||
/** | ||||
* Set filter output network bitrate in bit per seconds, this value include | ||||
IP+UDP+RTP overhead | ||||
*/ | ||||
#define MS_FILTER_SET_BITRATE MS_FILTER_BASE_METHOD(2,int) | #define MS_FILTER_SET_BITRATE MS_FILTER_BASE_METHOD(2,int) | |||
/** | ||||
* Get filter output network bitrate in bit per seconds, this value include | ||||
IP+UDP+RTP overhead | ||||
*/ | ||||
#define MS_FILTER_GET_BITRATE MS_FILTER_BASE_METHOD(3,int) | #define MS_FILTER_GET_BITRATE MS_FILTER_BASE_METHOD(3,int) | |||
#define MS_FILTER_GET_NCHANNELS MS_FILTER_BASE_METHOD(5,int) | #define MS_FILTER_GET_NCHANNELS MS_FILTER_BASE_METHOD(5,int) | |||
#define MS_FILTER_SET_NCHANNELS MS_FILTER_BASE_METHOD(6,int) | #define MS_FILTER_SET_NCHANNELS MS_FILTER_BASE_METHOD(6,int) | |||
/** | ||||
* Set codec dependent attributes as taken from the SDP | ||||
*/ | ||||
#define MS_FILTER_ADD_FMTP MS_FILTER_BASE_METHOD(7,const char) | #define MS_FILTER_ADD_FMTP MS_FILTER_BASE_METHOD(7,const char) | |||
#define MS_FILTER_ADD_ATTR MS_FILTER_BASE_METHOD(8,const char) | #define MS_FILTER_ADD_ATTR MS_FILTER_BASE_METHOD(8,const char) | |||
#define MS_FILTER_SET_MTU MS_FILTER_BASE_METHOD(9,int) | #define MS_FILTER_SET_MTU MS_FILTER_BASE_METHOD(9,int) | |||
#define MS_FILTER_GET_MTU MS_FILTER_BASE_METHOD(10,int) | #define MS_FILTER_GET_MTU MS_FILTER_BASE_METHOD(10,int) | |||
/**Filters can return their latency in milliseconds (if known) using this m ethod:*/ | /**Filters can return their latency in milliseconds (if known) using this m ethod:*/ | |||
#define MS_FILTER_GET_LATENCY MS_FILTER_BASE_METHOD(11,int) | #define MS_FILTER_GET_LATENCY MS_FILTER_BASE_METHOD(11,int) | |||
enum _MSFilterInterfaceId{ | enum _MSFilterInterfaceId{ | |||
MSFilterInterfaceBegin=16384, | MSFilterInterfaceBegin=16384, | |||
MSFilterPlayerInterface, | MSFilterPlayerInterface, | |||
MSFilterRecorderInterface, | MSFilterRecorderInterface, | |||
End of changes. 10 change blocks. | ||||
2 lines changed or deleted | 29 lines changed or added | |||
ortp_srtp.h | ortp_srtp.h | |||
---|---|---|---|---|
skipping to change at line 62 | skipping to change at line 62 | |||
AES_128_SHA1_80 = 1, | AES_128_SHA1_80 = 1, | |||
AES_128_SHA1_32, | AES_128_SHA1_32, | |||
AES_128_NO_AUTH, | AES_128_NO_AUTH, | |||
NO_CIPHER_SHA1_80 | NO_CIPHER_SHA1_80 | |||
}; | }; | |||
err_status_t ortp_srtp_init(void); | err_status_t ortp_srtp_init(void); | |||
err_status_t ortp_srtp_create(srtp_t *session, const srtp_policy_t *policy) ; | err_status_t ortp_srtp_create(srtp_t *session, const srtp_policy_t *policy) ; | |||
err_status_t ortp_srtp_dealloc(srtp_t session); | err_status_t ortp_srtp_dealloc(srtp_t session); | |||
err_status_t ortp_srtp_add_stream(srtp_t session, const srtp_policy_t *poli cy); | err_status_t ortp_srtp_add_stream(srtp_t session, const srtp_policy_t *poli cy); | |||
void ortp_crypto_get_random(uint8_t *tmp, int size); | err_status_t ortp_crypto_get_random(uint8_t *tmp, int size); | |||
bool_t ortp_srtp_supported(void); | bool_t ortp_srtp_supported(void); | |||
int srtp_transport_new(srtp_t srtp, RtpTransport **rtpt, RtpTransport **rtc pt ); | int srtp_transport_new(srtp_t srtp, RtpTransport **rtpt, RtpTransport **rtc pt ); | |||
srtp_t ortp_srtp_create_configure_session(enum ortp_srtp_crypto_suite_t sui te, uint32_t ssrc, const char* snd_key, const char* rcv_key); | srtp_t ortp_srtp_create_configure_session(enum ortp_srtp_crypto_suite_t sui te, uint32_t ssrc, const char* snd_key, const char* rcv_key); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
rtpsession.h | rtpsession.h | |||
---|---|---|---|---|
skipping to change at line 90 | skipping to change at line 90 | |||
bool_t wakeup; | bool_t wakeup; | |||
} WaitPoint; | } WaitPoint; | |||
typedef struct _RtpTransport | typedef struct _RtpTransport | |||
{ | { | |||
void *data; | void *data; | |||
ortp_socket_t (*t_getsocket)(struct _RtpTransport *t); | ortp_socket_t (*t_getsocket)(struct _RtpTransport *t); | |||
int (*t_sendto)(struct _RtpTransport *t, mblk_t *msg , int flags, c onst struct sockaddr *to, socklen_t tolen); | int (*t_sendto)(struct _RtpTransport *t, mblk_t *msg , int flags, c onst struct sockaddr *to, socklen_t tolen); | |||
int (*t_recvfrom)(struct _RtpTransport *t, mblk_t *msg, int flags, struct sockaddr *from, socklen_t *fromlen); | int (*t_recvfrom)(struct _RtpTransport *t, mblk_t *msg, int flags, struct sockaddr *from, socklen_t *fromlen); | |||
struct _RtpSession *session;//<back pointer to the owning session, s et by oRTP | struct _RtpSession *session;//<back pointer to the owning session, s et by oRTP | |||
void (*t_close)(struct _RtpTransport *transport, void *userData); | ||||
} RtpTransport; | } RtpTransport; | |||
typedef struct _OrtpNetworkSimulatorParams{ | typedef struct _OrtpNetworkSimulatorParams{ | |||
int enabled; | int enabled; | |||
float max_bandwidth; /*IP bandwidth, in bit/s*/ | float max_bandwidth; /*IP bandwidth, in bit/s*/ | |||
float loss_rate; | float loss_rate; | |||
}OrtpNetworkSimulatorParams; | }OrtpNetworkSimulatorParams; | |||
typedef struct _OrtpNetworkSimulatorCtx{ | typedef struct _OrtpNetworkSimulatorCtx{ | |||
OrtpNetworkSimulatorParams params; | OrtpNetworkSimulatorParams params; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
zrtp.h | zrtp.h | |||
---|---|---|---|---|
skipping to change at line 39 | skipping to change at line 39 | |||
#undef PACKAGE_VERSION | #undef PACKAGE_VERSION | |||
#include <srtp/srtp.h> | #include <srtp/srtp.h> | |||
#include <libzrtpcpp/ZrtpCWrapper.h> | #include <libzrtpcpp/ZrtpCWrapper.h> | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C"{ | extern "C"{ | |||
#endif | #endif | |||
typedef struct OrtpZrtpParams { | typedef struct OrtpZrtpParams { | |||
const char *zid; // ZRTP identifier (coded hexa; 96 bits in the end) | ||||
const char *zid_file; // File where to store secrets and other infor mation | const char *zid_file; // File where to store secrets and other infor mation | |||
} OrtpZrtpParams; | } OrtpZrtpParams; | |||
typedef struct _OrtpZrtpContext OrtpZrtpContext ; | typedef struct _OrtpZrtpContext OrtpZrtpContext ; | |||
bool_t ortp_zrtp_available(); | bool_t ortp_zrtp_available(); | |||
OrtpZrtpContext* ortp_zrtp_context_new(RtpSession *s, OrtpZrtpParams *param s); | OrtpZrtpContext* ortp_zrtp_context_new(RtpSession *s, OrtpZrtpParams *param s); | |||
OrtpZrtpContext* ortp_zrtp_multistream_new(OrtpZrtpContext* activeContext, RtpSession *s, OrtpZrtpParams *params); | OrtpZrtpContext* ortp_zrtp_multistream_new(OrtpZrtpContext* activeContext, RtpSession *s, OrtpZrtpParams *params); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 0 lines changed or added | |||