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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/