| 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 | |
|
| 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 | |
|