liblinphone  3.6.1
Data Structures | Macros | Typedefs | Functions
Controlling media parameters

Data Structures

struct  _LinphoneVideoPolicy
 

Macros

#define LINPHONE_FIND_PAYLOAD_IGNORE_RATE   -1
 
#define LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS   -1
 

Typedefs

typedef struct _LinphoneVideoPolicy LinphoneVideoPolicy
 

Functions

void linphone_core_enable_adaptive_rate_control (LinphoneCore *lc, bool_t enabled)
 
bool_t linphone_core_adaptive_rate_control_enabled (const LinphoneCore *lc)
 
void linphone_core_set_download_bandwidth (LinphoneCore *lc, int bw)
 
void linphone_core_set_upload_bandwidth (LinphoneCore *lc, int bw)
 
int linphone_core_get_download_bandwidth (const LinphoneCore *lc)
 
int linphone_core_get_upload_bandwidth (const LinphoneCore *lc)
 
void linphone_core_set_download_ptime (LinphoneCore *lc, int ptime)
 
int linphone_core_get_download_ptime (LinphoneCore *lc)
 
void linphone_core_set_upload_ptime (LinphoneCore *lc, int ptime)
 
int linphone_core_get_upload_ptime (LinphoneCore *lc)
 
const MSList * linphone_core_get_audio_codecs (const LinphoneCore *lc)
 
const MSList * linphone_core_get_video_codecs (const LinphoneCore *lc)
 
int linphone_core_set_audio_codecs (LinphoneCore *lc, MSList *codecs)
 
int linphone_core_set_video_codecs (LinphoneCore *lc, MSList *codecs)
 
int linphone_core_get_audio_jittcomp (LinphoneCore *lc)
 
int linphone_core_get_video_jittcomp (LinphoneCore *lc)
 
int linphone_core_get_nortp_timeout (const LinphoneCore *lc)
 
void linphone_core_set_audio_jittcomp (LinphoneCore *lc, int value)
 
void linphone_core_set_video_jittcomp (LinphoneCore *lc, int value)
 
void linphone_core_set_audio_port_range (LinphoneCore *lc, int min_port, int max_port)
 
void linphone_core_set_video_port_range (LinphoneCore *lc, int min_port, int max_port)
 
void linphone_core_set_nortp_timeout (LinphoneCore *lc, int nortp_timeout)
 
bool_t linphone_core_get_use_info_for_dtmf (LinphoneCore *lc)
 
void linphone_core_set_use_info_for_dtmf (LinphoneCore *lc, bool_t use_info)
 
bool_t linphone_core_get_use_rfc2833_for_dtmf (LinphoneCore *lc)
 
void linphone_core_set_use_rfc2833_for_dtmf (LinphoneCore *lc, bool_t use_rfc2833)
 
int linphone_core_get_play_level (LinphoneCore *lc)
 
int linphone_core_get_ring_level (LinphoneCore *lc)
 
int linphone_core_get_rec_level (LinphoneCore *lc)
 
void linphone_core_set_ring_level (LinphoneCore *lc, int level)
 
void linphone_core_set_mic_gain_db (LinphoneCore *lc, float gaindb)
 
float linphone_core_get_mic_gain_db (LinphoneCore *lc)
 
void linphone_core_set_playback_gain_db (LinphoneCore *lc, float gaindb)
 
float linphone_core_get_playback_gain_db (LinphoneCore *lc)
 
void linphone_core_set_play_level (LinphoneCore *lc, int level)
 
void linphone_core_set_rec_level (LinphoneCore *lc, int level)
 
bool_t linphone_core_sound_device_can_capture (LinphoneCore *lc, const char *devid)
 
bool_t linphone_core_sound_device_can_playback (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_capture_device (LinphoneCore *lc, const char *devid)
 
const char * linphone_core_get_ringer_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_sound_devices (LinphoneCore *lc)
 
const char ** linphone_core_get_video_devices (const LinphoneCore *lc)
 
void linphone_core_set_ring (LinphoneCore *lc, const char *path)
 
const char * linphone_core_get_ring (const LinphoneCore *lc)
 
void linphone_core_set_ringback (LinphoneCore *lc, const char *path)
 
const char * linphone_core_get_ringback (const LinphoneCore *lc)
 
void linphone_core_enable_echo_cancellation (LinphoneCore *lc, bool_t val)
 
bool_t linphone_core_echo_cancellation_enabled (LinphoneCore *lc)
 
void linphone_core_mute_mic (LinphoneCore *lc, bool_t val)
 
void linphone_core_send_dtmf (LinphoneCore *lc, char dtmf)
 
void linphone_core_enable_video (LinphoneCore *lc, bool_t vcap_enabled, bool_t display_enabled)
 
bool_t linphone_core_video_enabled (LinphoneCore *lc)
 
void linphone_core_set_video_policy (LinphoneCore *lc, const LinphoneVideoPolicy *policy)
 
const LinphoneVideoPolicylinphone_core_get_video_policy (LinphoneCore *lc)
 
void linphone_core_enable_video_preview (LinphoneCore *lc, bool_t val)
 
bool_t linphone_core_video_preview_enabled (const LinphoneCore *lc)
 
void linphone_core_enable_self_view (LinphoneCore *lc, bool_t val)
 
bool_t linphone_core_self_view_enabled (const LinphoneCore *lc)
 
int linphone_core_set_video_device (LinphoneCore *lc, const char *id)
 
const char * linphone_core_get_video_device (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 long id)
 
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)
 
int linphone_core_get_device_rotation (LinphoneCore *lc)
 
void linphone_core_set_device_rotation (LinphoneCore *lc, int rotation)
 
const MSVideoSizeDef * linphone_core_get_supported_video_sizes (LinphoneCore *lc)
 
void linphone_core_set_preferred_video_size (LinphoneCore *lc, MSVideoSize vsize)
 
void linphone_core_set_preferred_video_size_by_name (LinphoneCore *lc, const char *name)
 
MSVideoSize linphone_core_get_preferred_video_size (LinphoneCore *lc)
 
void linphone_core_play_dtmf (LinphoneCore *lc, char dtmf, int duration_ms)
 
void linphone_core_stop_dtmf (LinphoneCore *lc)
 
void linphone_core_set_mtu (LinphoneCore *lc, int mtu)
 
void linphone_call_enable_echo_cancellation (LinphoneCall *call, bool_t val)
 
bool_t linphone_call_echo_cancellation_enabled (LinphoneCall *lc)
 
void linphone_call_enable_echo_limiter (LinphoneCall *call, bool_t val)
 
bool_t linphone_call_echo_limiter_enabled (const LinphoneCall *call)
 
LinphoneCallParams * linphone_core_create_default_call_parameters (LinphoneCore *lc)
 
PayloadType * linphone_core_find_payload_type (LinphoneCore *lc, const char *type, int rate, int channels)
 
bool_t linphone_core_is_mic_muted (LinphoneCore *lc)
 

Detailed Description

Macro Definition Documentation

#define LINPHONE_FIND_PAYLOAD_IGNORE_RATE   -1

Wildcard value used by linphone_core_find_payload_type to ignore rate in search algorithm

#define LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS   -1

Wildcard value used by linphone_core_find_payload_type to ignore channel in search algorithm

Typedef Documentation

Structure describing policy regarding video streams establishments.

Function Documentation

void linphone_core_enable_adaptive_rate_control ( LinphoneCore lc,
bool_t  enabled 
)

Enable adaptive rate control.

Adaptive rate control consists in using RTCP feedback provided information to dynamically control the output bitrate of the audio and video encoders, so that we can adapt to the network conditions and available bandwidth. Control of the audio encoder is done in case of audio-only call, and control of the video encoder is done for audio & video calls. Adaptive rate control feature is enabled by default.

bool_t linphone_core_adaptive_rate_control_enabled ( const LinphoneCore lc)

Returns whether adaptive rate control is enabled.

See linphone_core_enable_adaptive_rate_control().

void linphone_core_set_download_bandwidth ( LinphoneCore lc,
int  bw 
)

Sets maximum available download bandwidth

This is IP bandwidth, in kbit/s. This information is used signaled to other parties during calls (within SDP messages) so that the remote end can have sufficient knowledge to properly configure its audio & video codec output bitrate to not overflow available bandwidth.

Parameters
lcthe LinphoneCore object
bwthe bandwidth in kbits/s, 0 for infinite
void linphone_core_set_upload_bandwidth ( LinphoneCore lc,
int  bw 
)

Sets maximum available upload bandwidth

This is IP bandwidth, in kbit/s. This information is used by liblinphone together with remote side available bandwidth signaled in SDP messages to properly configure audio & video codec's output bitrate.

Parameters
lcthe LinphoneCore object
bwthe bandwidth in kbits/s, 0 for infinite
int linphone_core_get_download_bandwidth ( const LinphoneCore lc)

Retrieve the maximum available download bandwidth.

This value was set by linphone_core_set_download_bandwidth().

int linphone_core_get_upload_bandwidth ( const LinphoneCore lc)

Retrieve the maximum available upload bandwidth.

This value was set by linphone_core_set_upload_bandwidth().

void linphone_core_set_download_ptime ( LinphoneCore lc,
int  ptime 
)

Set audio packetization time linphone expects to receive from peer. A value of zero means that ptime is not specified.

int linphone_core_get_download_ptime ( LinphoneCore lc)

Get audio packetization time linphone expects to receive from peer. A value of zero means that ptime is not specified.

void linphone_core_set_upload_ptime ( LinphoneCore lc,
int  ptime 
)

Set audio packetization time linphone will send (in absence of requirement from peer) A value of 0 stands for the current codec default packetization time.

int linphone_core_get_upload_ptime ( LinphoneCore lc)

Set audio packetization time linphone will send (in absence of requirement from peer) A value of 0 stands for the current codec default packetization time.

const MSList* linphone_core_get_audio_codecs ( const LinphoneCore lc)

Returns the list of available audio codecs.

This list is unmodifiable. The ->data field of the MSList points a PayloadType structure holding the codec information. It is possible to make copy of the list with ms_list_copy() in order to modify it (such as the order of codecs).

const MSList* linphone_core_get_video_codecs ( const LinphoneCore lc)

Returns the list of available video codecs.

This list is unmodifiable. The ->data field of the MSList points a PayloadType structure holding the codec information. It is possible to make copy of the list with ms_list_copy() in order to modify it (such as the order of codecs).

int linphone_core_set_audio_codecs ( LinphoneCore lc,
MSList *  codecs 
)

Sets the list of audio codecs.

The list is taken by the LinphoneCore thus the application should not free it. This list is made of struct PayloadType describing the codec parameters.

int linphone_core_set_video_codecs ( LinphoneCore lc,
MSList *  codecs 
)

Sets the list of video codecs.

The list is taken by the LinphoneCore thus the application should not free it. This list is made of struct PayloadType describing the codec parameters.

int linphone_core_get_audio_jittcomp ( LinphoneCore lc)

Returns the nominal audio jitter buffer size in milliseconds.

int linphone_core_get_video_jittcomp ( LinphoneCore lc)

Returns the nominal video jitter buffer size in milliseconds.

int linphone_core_get_nortp_timeout ( const LinphoneCore lc)

Returns the value in seconds of the no-rtp timeout.

When no RTP or RTCP packets have been received for a while LinphoneCore will consider the call is broken (remote end crashed or disconnected from the network), and thus will terminate the call. The no-rtp timeout is the duration above which the call is considered broken.

void linphone_core_set_audio_jittcomp ( LinphoneCore lc,
int  value 
)

Sets the nominal audio jitter buffer size in milliseconds.

void linphone_core_set_video_jittcomp ( LinphoneCore lc,
int  value 
)

Sets the nominal video jitter buffer size in milliseconds.

void linphone_core_set_audio_port_range ( LinphoneCore lc,
int  min_port,
int  max_port 
)

Sets the UDP port range from which to randomly select the port used for audio streaming.

void linphone_core_set_video_port_range ( LinphoneCore lc,
int  min_port,
int  max_port 
)

Sets the UDP port range from which to randomly select the port used for video streaming.

void linphone_core_set_nortp_timeout ( LinphoneCore lc,
int  nortp_timeout 
)

Sets the no-rtp timeout value in seconds.

See linphone_core_get_nortp_timeout() for details.

bool_t linphone_core_get_use_info_for_dtmf ( LinphoneCore lc)

Indicates whether SIP INFO is used for sending digits.

void linphone_core_set_use_info_for_dtmf ( LinphoneCore lc,
bool_t  use_info 
)

Sets whether SIP INFO is to be used for sending digits.

bool_t linphone_core_get_use_rfc2833_for_dtmf ( LinphoneCore lc)

Indicates whether RFC2833 is used for sending digits.

void linphone_core_set_use_rfc2833_for_dtmf ( LinphoneCore lc,
bool_t  use_rfc2833 
)

Sets whether RFC2833 is to be used for sending digits.

int linphone_core_get_play_level ( LinphoneCore lc)

Get playback sound level in 0-100 scale.

int linphone_core_get_ring_level ( LinphoneCore lc)

Get ring sound level in 0-100 scale

int linphone_core_get_rec_level ( LinphoneCore lc)

Get sound capture level in 0-100 scale

void linphone_core_set_ring_level ( LinphoneCore lc,
int  level 
)

Set sound ring level in 0-100 scale

void linphone_core_set_mic_gain_db ( LinphoneCore lc,
float  gaindb 
)

Allow to control microphone level: gain in db

float linphone_core_get_mic_gain_db ( LinphoneCore lc)

Get microphone gain in db.

void linphone_core_set_playback_gain_db ( LinphoneCore lc,
float  gaindb 
)

Allow to control play level before entering sound card: gain in db

float linphone_core_get_playback_gain_db ( LinphoneCore lc)

Get playback gain in db before entering sound card.

void linphone_core_set_play_level ( LinphoneCore lc,
int  level 
)

Set sound playback level in 0-100 scale

void linphone_core_set_rec_level ( LinphoneCore lc,
int  level 
)

Set sound capture level in 0-100 scale

bool_t linphone_core_sound_device_can_capture ( LinphoneCore lc,
const char *  devid 
)

Returns true if the specified sound device can capture sound.

Parameters
lcThe LinphoneCore object
devidthe device name as returned by linphone_core_get_sound_devices()
bool_t linphone_core_sound_device_can_playback ( LinphoneCore lc,
const char *  devid 
)

Returns true if the specified sound device can play sound.

Parameters
lcThe LinphoneCore object
devidthe device name as returned by linphone_core_get_sound_devices()
int linphone_core_set_ringer_device ( LinphoneCore lc,
const char *  devid 
)

Sets the sound device used for ringing.

Parameters
lcThe LinphoneCore object
devidthe device name as returned by linphone_core_get_sound_devices()
int linphone_core_set_playback_device ( LinphoneCore lc,
const char *  devid 
)

Sets the sound device used for playback.

Parameters
lcThe LinphoneCore object
devidthe device name as returned by linphone_core_get_sound_devices()
int linphone_core_set_capture_device ( LinphoneCore lc,
const char *  devid 
)

Sets the sound device used for capture.

Parameters
lcThe LinphoneCore object
devidthe device name as returned by linphone_core_get_sound_devices()
const char* linphone_core_get_ringer_device ( LinphoneCore lc)

Returns the name of the currently assigned sound device for ringing.

Parameters
lcThe LinphoneCore object
const char* linphone_core_get_playback_device ( LinphoneCore lc)

Returns the name of the currently assigned sound device for playback.

Parameters
lcThe LinphoneCore object
const char* linphone_core_get_capture_device ( LinphoneCore lc)

Returns the name of the currently assigned sound device for capture.

Parameters
lcThe LinphoneCore object
const char** linphone_core_get_sound_devices ( LinphoneCore lc)

Returns an unmodifiable array of available sound devices.

The array is NULL terminated.

Parameters
lcThe LinphoneCore object
const char** linphone_core_get_video_devices ( const LinphoneCore lc)

Returns an unmodifiable array of available video capture devices.

The array is NULL terminated.

void linphone_core_set_ring ( LinphoneCore lc,
const char *  path 
)

Sets the path to a wav file used for ringing.

Parameters
pathThe file must be a wav 16bit linear. Local ring is disabled if null
lcThe LinphoneCore object
const char* linphone_core_get_ring ( const LinphoneCore lc)

Returns the path to the wav file used for ringing.

Parameters
lcThe LinphoneCore object
void linphone_core_set_ringback ( LinphoneCore lc,
const char *  path 
)

Sets the path to a wav file used for ringing back.

Ringback means the ring that is heard when it's ringing at the remote party. The file must be a wav 16bit linear.

const char* linphone_core_get_ringback ( const LinphoneCore lc)

Returns the path to the wav file used for ringing back.

void linphone_core_enable_echo_cancellation ( LinphoneCore lc,
bool_t  val 
)

Enables or disable echo cancellation. Value is saved an used for subsequent calls

bool_t linphone_core_echo_cancellation_enabled ( LinphoneCore lc)

Returns TRUE if echo cancellation is enabled.

void linphone_core_mute_mic ( LinphoneCore lc,
bool_t  val 
)

Mutes or unmutes the local microphone.

void linphone_core_send_dtmf ( LinphoneCore lc,
char  dtmf 
)

Send the specified dtmf.

This function only works during calls. The dtmf is automatically played to the user.

Parameters
lcThe LinphoneCore object
dtmfThe dtmf name specified as a char, such as '0', '#' etc...
void linphone_core_enable_video ( LinphoneCore lc,
bool_t  vcap_enabled,
bool_t  display_enabled 
)

Enables video globally.

This function does not have any effect during calls. It just indicates LinphoneCore to initiate future calls with video or not. The two boolean parameters indicate in which direction video is enabled. Setting both to false disables video entirely.

Parameters
lcThe LinphoneCore object
vcap_enabledindicates whether video capture is enabled
display_enabledindicates whether video display should be shown
bool_t linphone_core_video_enabled ( LinphoneCore lc)

Returns TRUE if video is enabled, FALSE otherwise.

void linphone_core_set_video_policy ( LinphoneCore lc,
const LinphoneVideoPolicy policy 
)

Sets the default policy for video. This policy defines whether:

  • video shall be initiated by default for outgoing calls
  • video shall be accepter by default for incoming calls
const LinphoneVideoPolicy* linphone_core_get_video_policy ( LinphoneCore lc)

Get the default policy for video. See linphone_core_set_video_policy() for more details.

void linphone_core_enable_video_preview ( LinphoneCore lc,
bool_t  val 
)

Controls video preview enablement.

Video preview refers to the action of displaying the local webcam image to the user while not in call.

bool_t linphone_core_video_preview_enabled ( const LinphoneCore lc)

Returns TRUE if video previewing is enabled.

void linphone_core_enable_self_view ( LinphoneCore lc,
bool_t  val 
)

Enables or disable self view during calls.

Self-view refers to having local webcam image inserted in corner of the video window during calls. This function works at any time, including during calls.

bool_t linphone_core_self_view_enabled ( const LinphoneCore lc)

Returns TRUE if self-view is enabled, FALSE otherwise.

Refer to linphone_core_enable_self_view() for details.

int linphone_core_set_video_device ( LinphoneCore lc,
const char *  id 
)

Sets the active video device.

Parameters
lcThe LinphoneCore object
idthe name of the video device as returned by linphone_core_get_video_devices()
const char* linphone_core_get_video_device ( const LinphoneCore lc)

Returns the name of the currently active video device.

Parameters
lcThe LinphoneCore object
unsigned long linphone_core_get_native_video_window_id ( const LinphoneCore lc)

Returns the native window handle of the video window, casted as an unsigned long.

void linphone_core_set_native_video_window_id ( LinphoneCore lc,
unsigned long  id 
)

Set the native video window id where the video is to be displayed. If not set the core will create its own window.

unsigned long linphone_core_get_native_preview_window_id ( const LinphoneCore lc)

Returns the native window handle of the video preview window, casted as an unsigned long.

void linphone_core_set_native_preview_window_id ( LinphoneCore lc,
unsigned long  id 
)

Set the native window id where the preview video (local camera) is to be displayed. This has to be used in conjonction with linphone_core_use_preview_window(). If not set the core will create its own window.

int linphone_core_get_device_rotation ( LinphoneCore lc)

returns current device orientation

void linphone_core_set_device_rotation ( LinphoneCore lc,
int  rotation 
)

Tells the core the device current orientation. This can be used by capture filters on mobile devices to select between portrait/landscape mode and to produce properly oriented images. The exact meaning of the value in rotation if left to each device specific implementations.

Parameters
lcobject.
rotation. IOS supported values are 0 for UIInterfaceOrientationPortrait and 270 for UIInterfaceOrientationLandscapeRight.
const MSVideoSizeDef* linphone_core_get_supported_video_sizes ( LinphoneCore lc)

Returns the zero terminated table of supported video resolutions.

void linphone_core_set_preferred_video_size ( LinphoneCore lc,
MSVideoSize  vsize 
)

Sets the preferred video size.

This applies only to the stream that is captured and sent to the remote party, since we accept all standard video size on the receive path.

void linphone_core_set_preferred_video_size_by_name ( LinphoneCore lc,
const char *  name 
)

Sets the preferred video size by its name.

This is identical to linphone_core_set_preferred_video_size() except that it takes the name of the video resolution as input. Video resolution names are: qcif, svga, cif, vga, 4cif, svga ...

MSVideoSize linphone_core_get_preferred_video_size ( LinphoneCore lc)

Returns the current preferred video size for sending.

void linphone_core_play_dtmf ( LinphoneCore lc,
char  dtmf,
int  duration_ms 
)

Plays a dtmf sound to the local user.

Parameters
lcLinphoneCore
dtmfDTMF to play ['0'..'16'] | '#' | '#'
duration_msduration in ms, -1 means play until next further call to linphone_core_stop_dtmf()
void linphone_core_stop_dtmf ( LinphoneCore lc)

Stops playing a dtmf started by linphone_core_play_dtmf().

void linphone_core_set_mtu ( LinphoneCore lc,
int  mtu 
)

Sets the maximum transmission unit size in bytes. This information is useful for sending RTP packets. Default value is 1500.

void linphone_call_enable_echo_cancellation ( LinphoneCall call,
bool_t  val 
)

Enables or disable echo cancellation for this call

Parameters
call
val
bool_t linphone_call_echo_cancellation_enabled ( LinphoneCall lc)

Returns TRUE if echo cancellation is enabled.

void linphone_call_enable_echo_limiter ( LinphoneCall call,
bool_t  val 
)

Enables or disable echo limiter for this call

Parameters
call
val
bool_t linphone_call_echo_limiter_enabled ( const LinphoneCall call)

Returns TRUE if echo limiter is enabled.

LinphoneCallParams* linphone_core_create_default_call_parameters ( LinphoneCore lc)

Get default call parameters reflecting current linphone core configuration

Parameters
LinphoneCoreobject
Returns
LinphoneCallParams
PayloadType* linphone_core_find_payload_type ( LinphoneCore lc,
const char *  type,
int  rate,
int  channels 
)

Get payload type from mime type and clock rate

This function searches in audio and video codecs for the given payload type name and clockrate.

Parameters
lcLinphoneCore object
typepayload mime type (I.E SPEEX, PCMU, VP8)
ratecan be LINPHONE_FIND_PAYLOAD_IGNORE_RATE
channelsnumber of channels, can be LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS
Returns
Returns NULL if not found.
bool_t linphone_core_is_mic_muted ( LinphoneCore lc)

return mic state.

Returns whether microphone is muted.