alaw_ulaw.h | alaw_ulaw.h | |||
---|---|---|---|---|
/* $Id: alaw_ulaw.h 2416 2009-01-05 15:27:02Z nanang $ */ | /* $Id: alaw_ulaw.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 145 | skipping to change at line 145 | |||
*/ | */ | |||
PJ_DECL(unsigned char) pjmedia_ulaw2alaw(unsigned char uval); | PJ_DECL(unsigned char) pjmedia_ulaw2alaw(unsigned char uval); | |||
#endif | #endif | |||
/** | /** | |||
* Encode 16-bit linear PCM data to 8-bit U-Law data. | * Encode 16-bit linear PCM data to 8-bit U-Law data. | |||
* | * | |||
* @param dst Destination buffer for 8-bit U-Law data. | * @param dst Destination buffer for 8-bit U-Law data. | |||
* @param src Source, 16-bit linear PCM data. | * @param src Source, 16-bit linear PCM data. | |||
* @param len Number of samples. | * @param count Number of samples. | |||
*/ | */ | |||
PJ_INLINE(void) pjmedia_ulaw_encode(pj_uint8_t *dst, const pj_int16_t *src, | PJ_INLINE(void) pjmedia_ulaw_encode(pj_uint8_t *dst, const pj_int16_t *src, | |||
pj_size_t len) | pj_size_t count) | |||
{ | { | |||
const pj_int16_t *end = src + len; | const pj_int16_t *end = src + count; | |||
while (src < end) { | while (src < end) { | |||
*dst++ = pjmedia_linear2ulaw(*src++); | *dst++ = pjmedia_linear2ulaw(*src++); | |||
} | } | |||
} | } | |||
/** | /** | |||
* Encode 16-bit linear PCM data to 8-bit A-Law data. | * Encode 16-bit linear PCM data to 8-bit A-Law data. | |||
* | * | |||
* @param dst Destination buffer for 8-bit A-Law data. | * @param dst Destination buffer for 8-bit A-Law data. | |||
* @param src Source, 16-bit linear PCM data. | * @param src Source, 16-bit linear PCM data. | |||
* @param len Number of samples. | * @param count Number of samples. | |||
*/ | */ | |||
PJ_INLINE(void) pjmedia_alaw_encode(pj_uint8_t *dst, const pj_int16_t *src, | PJ_INLINE(void) pjmedia_alaw_encode(pj_uint8_t *dst, const pj_int16_t *src, | |||
pj_size_t len) | pj_size_t count) | |||
{ | { | |||
const pj_int16_t *end = src + len; | const pj_int16_t *end = src + count; | |||
while (src < end) { | while (src < end) { | |||
*dst++ = pjmedia_linear2alaw(*src++); | *dst++ = pjmedia_linear2alaw(*src++); | |||
} | } | |||
} | } | |||
/** | /** | |||
* Decode 8-bit U-Law data to 16-bit linear PCM data. | * Decode 8-bit U-Law data to 16-bit linear PCM data. | |||
* | * | |||
* @param dst Destination buffer for 16-bit PCM data. | * @param dst Destination buffer for 16-bit PCM data. | |||
* @param src Source, 8-bit U-Law data. | * @param src Source, 8-bit U-Law data. | |||
* @param len Number of samples. | * @param len Encoded frame/source length in bytes. | |||
*/ | */ | |||
PJ_INLINE(void) pjmedia_ulaw_decode(pj_int16_t *dst, const pj_uint8_t *src, | PJ_INLINE(void) pjmedia_ulaw_decode(pj_int16_t *dst, const pj_uint8_t *src, | |||
pj_size_t len) | pj_size_t len) | |||
{ | { | |||
const pj_uint8_t *end = src + len; | const pj_uint8_t *end = src + len; | |||
while (src < end) { | while (src < end) { | |||
*dst++ = pjmedia_ulaw2linear(*src++); | *dst++ = pjmedia_ulaw2linear(*src++); | |||
} | } | |||
} | } | |||
/** | /** | |||
* Decode 8-bit A-Law data to 16-bit linear PCM data. | * Decode 8-bit A-Law data to 16-bit linear PCM data. | |||
* | * | |||
* @param dst Destination buffer for 16-bit PCM data. | * @param dst Destination buffer for 16-bit PCM data. | |||
* @param src Source, 8-bit A-Law data. | * @param src Source, 8-bit A-Law data. | |||
* @param len Number of samples. | * @param len Encoded frame/source length in bytes. | |||
*/ | */ | |||
PJ_INLINE(void) pjmedia_alaw_decode(pj_int16_t *dst, const pj_uint8_t *src, | PJ_INLINE(void) pjmedia_alaw_decode(pj_int16_t *dst, const pj_uint8_t *src, | |||
pj_size_t len) | pj_size_t len) | |||
{ | { | |||
const pj_uint8_t *end = src + len; | const pj_uint8_t *end = src + len; | |||
while (src < end) { | while (src < end) { | |||
*dst++ = pjmedia_alaw2linear(*src++); | *dst++ = pjmedia_alaw2linear(*src++); | |||
} | } | |||
} | } | |||
End of changes. 9 change blocks. | ||||
9 lines changed or deleted | 9 lines changed or added | |||
amr_helper.h | amr_helper.h | |||
---|---|---|---|---|
/* $Id: amr_helper.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: amr_helper.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 629 | skipping to change at line 629 | |||
encoder. */ | encoder. */ | |||
} pjmedia_codec_amr_pack_setting; | } pjmedia_codec_amr_pack_setting; | |||
/** | /** | |||
* Get AMR mode based on bitrate. | * Get AMR mode based on bitrate. | |||
* | * | |||
* @param bitrate AMR bitrate. | * @param bitrate AMR bitrate. | |||
* | * | |||
* @return AMR mode. | * @return AMR mode. | |||
*/ | */ | |||
PJ_INLINE(pj_int8_t) pjmedia_codec_amr_get_mode(unsigned bitrate) | PJ_INLINE(pj_int8_t) pjmedia_codec_amr_get_mode(unsigned bitrate) | |||
{ | { | |||
pj_int8_t mode = -1; | pj_int8_t mode = -1; | |||
if(bitrate==4750){ | if(bitrate==4750){ | |||
mode = 0; | mode = 0; | |||
} else if(bitrate==5150){ | } else if(bitrate==5150){ | |||
mode = 1; | mode = 1; | |||
} else if(bitrate==5900){ | } else if(bitrate==5900){ | |||
mode = 2; | mode = 2; | |||
skipping to change at line 675 | skipping to change at line 674 | |||
mode = 6; | mode = 6; | |||
} else if(bitrate==23050){ | } else if(bitrate==23050){ | |||
mode = 7; | mode = 7; | |||
} else if(bitrate==23850){ | } else if(bitrate==23850){ | |||
mode = 8; | mode = 8; | |||
} | } | |||
return mode; | return mode; | |||
} | } | |||
/** | /** | |||
* Get AMR mode based on frame length. | ||||
* | ||||
* @param amrnb Set to PJ_TRUE for AMR-NB domain or PJ_FALSE for | ||||
AMR-WB. | ||||
* @param frame_len The frame length. | ||||
* | ||||
* @return AMR mode. | ||||
*/ | ||||
PJ_INLINE(pj_int8_t) pjmedia_codec_amr_get_mode2(pj_bool_t amrnb, | ||||
unsigned frame_len) | ||||
{ | ||||
int i; | ||||
if (amrnb) { | ||||
for (i = 0; i < 9; ++i) | ||||
if (frame_len == pjmedia_codec_amrnb_framelen[i]) | ||||
return (pj_int8_t)i; | ||||
} else { | ||||
for (i = 0; i < 10; ++i) { | ||||
if (frame_len == pjmedia_codec_amrwb_framelen[i]) | ||||
return (pj_int8_t)i; | ||||
} | ||||
} | ||||
pj_assert(!"Invalid AMR frame length"); | ||||
return -1; | ||||
} | ||||
/** | ||||
* Prepare a frame before pass it to decoder. This function will do: | * Prepare a frame before pass it to decoder. This function will do: | |||
* - reorder AMR bitstream from descending sensitivity order into | * - reorder AMR bitstream from descending sensitivity order into | |||
* encoder bits order. This can be enabled/disabled via param | * encoder bits order. This can be enabled/disabled via param | |||
* 'setting' by setting/resetting field 'reorder'. | * 'setting' by setting/resetting field 'reorder'. | |||
* - align left the start bit (make the start_bit to be 0). | * - align left the start bit (make the start_bit to be 0). | |||
* | * | |||
* @param amr_nb Set PJ_TRUE for AMR-NB and PJ_FALSE for AMR-WB. | * @param amr_nb Set PJ_TRUE for AMR-NB and PJ_FALSE for AMR-WB. | |||
* @param in Input frame. | * @param in Input frame. | |||
* @param setting Settings, see @pjmedia_codec_amr_pack_setting. | * @param setting Settings, see @pjmedia_codec_amr_pack_setting. | |||
* @param out Output frame. | * @param out Output frame. | |||
skipping to change at line 791 | skipping to change at line 819 | |||
if (setting->amr_nb) | if (setting->amr_nb) | |||
FT_ = (pj_uint8_t)((amr_bits[36] << 2) | (amr_bits[37] << 1) | | FT_ = (pj_uint8_t)((amr_bits[36] << 2) | (amr_bits[37] << 1) | | |||
amr_bits[38]); | amr_bits[38]); | |||
else | else | |||
FT_ = (pj_uint8_t)((amr_bits[36] << 3) | (amr_bits[37] << 2) | | FT_ = (pj_uint8_t)((amr_bits[36] << 3) | (amr_bits[37] << 2) | | |||
(amr_bits[38] << 1) | amr_bits[39]); | (amr_bits[38] << 1) | amr_bits[39]); | |||
out_info->mode = FT_; | out_info->mode = FT_; | |||
out->size = 5; | out->size = 5; | |||
PJ_ASSERT_RETURN(out->size <= in->size, PJMEDIA_CODEC_EFRMINLEN); | ||||
pj_bzero(out->buf, out->size); | pj_bzero(out->buf, out->size); | |||
for(i = 0; i < framelenbit_tbl[SID_FT]; ++i) { | for(i = 0; i < framelenbit_tbl[SID_FT]; ++i) { | |||
if (amr_bits[i]) | if (amr_bits[i]) | |||
*w |= (1 << (7-w_bitptr)); | *w |= (1 << (7-w_bitptr)); | |||
if (++w_bitptr == 8) { | if (++w_bitptr == 8) { | |||
++w; | ++w; | |||
w_bitptr = 0; | w_bitptr = 0; | |||
} | } | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 31 lines changed or added | |||
codec.h | codec.h | |||
---|---|---|---|---|
/* $Id: codec.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: codec.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 274 | skipping to change at line 274 | |||
struct { | struct { | |||
unsigned clock_rate; /**< Sampling rate in Hz */ | unsigned clock_rate; /**< Sampling rate in Hz */ | |||
unsigned channel_cnt; /**< Channel count. */ | unsigned channel_cnt; /**< Channel count. */ | |||
pj_uint32_t avg_bps; /**< Average bandwidth in bits/sec */ | pj_uint32_t avg_bps; /**< Average bandwidth in bits/sec */ | |||
pj_uint32_t max_bps; /**< Maximum bandwidth in bits/sec */ | pj_uint32_t max_bps; /**< Maximum bandwidth in bits/sec */ | |||
pj_uint16_t frm_ptime; /**< Decoder frame ptime in msec. */ | pj_uint16_t frm_ptime; /**< Decoder frame ptime in msec. */ | |||
pj_uint16_t enc_ptime; /**< Encoder ptime, or zero if it's | pj_uint16_t enc_ptime; /**< Encoder ptime, or zero if it's | |||
equal to decoder ptime. */ | equal to decoder ptime. */ | |||
pj_uint8_t pcm_bits_per_sample; /**< Bits/sample in the PCM side */ | pj_uint8_t pcm_bits_per_sample; /**< Bits/sample in the PCM side */ | |||
pj_uint8_t pt; /**< Payload type. */ | pj_uint8_t pt; /**< Payload type. */ | |||
pjmedia_format_id fmt_id; /**< Source format, it's format of | ||||
encoder input and decoder | ||||
output. | ||||
*/ | ||||
} info; | } info; | |||
/** | /** | |||
* The "setting" part of codec param describes various settings to be | * The "setting" part of codec param describes various settings to be | |||
* applied to the codec. When the codec param is retrieved from the cod ec | * applied to the codec. When the codec param is retrieved from the cod ec | |||
* or codec factory, the values of these will be filled by the capabili ty | * or codec factory, the values of these will be filled by the capabili ty | |||
* of the codec. Any features that are supported by the codec (e.g. vad | * of the codec. Any features that are supported by the codec (e.g. vad | |||
* or plc) will be turned on, so that application can query which | * or plc) will be turned on, so that application can query which | |||
* capabilities are supported by the codec. Application may change the | * capabilities are supported by the codec. Application may change the | |||
* settings here before instantiating the codec/stream. | * settings here before instantiating the codec/stream. | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
conference.h | conference.h | |||
---|---|---|---|---|
/* $Id: conference.h 2790 2009-06-24 15:26:59Z nanang $ */ | /* $Id: conference.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 46 | skipping to change at line 46 | |||
* conference bridge provides powerful and very efficient mechanism to | * conference bridge provides powerful and very efficient mechanism to | |||
* route the audio flow and mix the audio signal when required. | * route the audio flow and mix the audio signal when required. | |||
* | * | |||
* Some more information about the media flow when conference bridge is | * Some more information about the media flow when conference bridge is | |||
* used is described in http://www.pjsip.org/trac/wiki/media-flow . | * used is described in http://www.pjsip.org/trac/wiki/media-flow . | |||
*/ | */ | |||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
* The conference bridge signature in pjmedia_port_info. | ||||
*/ | ||||
#define PJMEDIA_CONF_BRIDGE_SIGNATURE \ | ||||
PJMEDIA_PORT_SIGNATURE('C', 'O', 'N', 'F') | ||||
/** | ||||
* The audio switchboard signature in pjmedia_port_info. | ||||
*/ | ||||
#define PJMEDIA_CONF_SWITCH_SIGNATURE \ | ||||
PJMEDIA_PORT_SIGNATURE('A', 'S', 'W', 'I') | ||||
/** | ||||
* Opaque type for conference bridge. | * Opaque type for conference bridge. | |||
*/ | */ | |||
typedef struct pjmedia_conf pjmedia_conf; | typedef struct pjmedia_conf pjmedia_conf; | |||
/** | /** | |||
* Conference port info. | * Conference port info. | |||
*/ | */ | |||
typedef struct pjmedia_conf_port_info | typedef struct pjmedia_conf_port_info | |||
{ | { | |||
unsigned slot; /**< Slot number. */ | unsigned slot; /**< Slot number. */ | |||
pj_str_t name; /**< Port name. */ | pj_str_t name; /**< Port name. */ | |||
pjmedia_format format; /**< Format. */ | ||||
pjmedia_port_op tx_setting; /**< Transmit settings. */ | pjmedia_port_op tx_setting; /**< Transmit settings. */ | |||
pjmedia_port_op rx_setting; /**< Receive settings. */ | pjmedia_port_op rx_setting; /**< Receive settings. */ | |||
unsigned listener_cnt; /**< Number of listeners. */ | unsigned listener_cnt; /**< Number of listeners. */ | |||
unsigned *listener_slots; /**< Array of listeners. */ | unsigned *listener_slots; /**< Array of listeners. */ | |||
unsigned transmitter_cnt; /**< Number of transmitter. */ | ||||
unsigned clock_rate; /**< Clock rate of the port. */ | unsigned clock_rate; /**< Clock rate of the port. */ | |||
unsigned channel_count; /**< Number of channels. */ | unsigned channel_count; /**< Number of channels. */ | |||
unsigned samples_per_frame; /**< Samples per frame */ | unsigned samples_per_frame; /**< Samples per frame */ | |||
unsigned bits_per_sample; /**< Bits per sample. */ | unsigned bits_per_sample; /**< Bits per sample. */ | |||
int tx_adj_level; /**< Tx level adjustment . */ | int tx_adj_level; /**< Tx level adjustment . */ | |||
int rx_adj_level; /**< Rx level adjustment . */ | int rx_adj_level; /**< Rx level adjustment . */ | |||
} pjmedia_conf_port_info; | } pjmedia_conf_port_info; | |||
/** | /** | |||
* Conference port options. The values here can be combined in bitmask to | * Conference port options. The values here can be combined in bitmask to | |||
skipping to change at line 218 | skipping to change at line 232 | |||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjmedia_conf_add_port( pjmedia_conf *conf, | PJ_DECL(pj_status_t) pjmedia_conf_add_port( pjmedia_conf *conf, | |||
pj_pool_t *pool, | pj_pool_t *pool, | |||
pjmedia_port *strm_port, | pjmedia_port *strm_port, | |||
const pj_str_t *name, | const pj_str_t *name, | |||
unsigned *p_slot ); | unsigned *p_slot ); | |||
/** | /** | |||
* <i><b>Warning:</b> This API has been deprecated since 1.3 and will be | ||||
* removed in the future release, use #PJMEDIA_SPLITCOMB instead.</i> | ||||
* | ||||
* Create and add a passive media port to the conference bridge. Unlike | * Create and add a passive media port to the conference bridge. Unlike | |||
* "normal" media port that is added with #pjmedia_conf_add_port(), media | * "normal" media port that is added with #pjmedia_conf_add_port(), media | |||
* port created with this function will not have its get_frame() and | * port created with this function will not have its get_frame() and | |||
* put_frame() called by the bridge; instead, application MUST continuosly | * put_frame() called by the bridge; instead, application MUST continuosly | |||
* call these functions to the port, to allow media to flow from/to the | * call these functions to the port, to allow media to flow from/to the | |||
* port. | * port. | |||
* | * | |||
* Upon return of this function, application will be given two objects: | * Upon return of this function, application will be given two objects: | |||
* the slot number of the port in the bridge, and pointer to the media | * the slot number of the port in the bridge, and pointer to the media | |||
* port where application MUST start calling get_frame() and put_frame() | * port where application MUST start calling get_frame() and put_frame() | |||
End of changes. 5 change blocks. | ||||
4 lines changed or deleted | 15 lines changed or added | |||
config.h | config.h | |||
---|---|---|---|---|
/* $Id: config.h 2527 2009-03-23 11:57:55Z bennylp $ */ | /* $Id: config.h 2427 2009-01-22 20:30:32Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
config_site_sample.h | config_site_sample.h | |||
---|---|---|---|---|
//#define PJ_CONFIG_MINIMAL_SIZE | ||||
//#define PJ_CONFIG_MAXIMUM_SPEED | ||||
/* | /* | |||
* This file (config_site_sample.h) contains various configuration | * This file contains several sample settings especially for Windows | |||
* settings that I use for certain settings. | * Mobile and Symbian targets. You can include this file in your | |||
* <pj/config_site.h> file. | ||||
* | ||||
* The Windows Mobile and Symbian settings will be activated | ||||
* automatically if you include this file. | ||||
* | ||||
* In addition, you may specify one of these macros (before including | ||||
* this file) to activate additional settings: | ||||
* | ||||
* #define PJ_CONFIG_NOKIA_APS_DIRECT | ||||
* Use this macro to activate the APS-Direct feature. Please see | ||||
* http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for more | ||||
* info. | ||||
* | ||||
* #define PJ_CONFIG_WIN32_WMME_DIRECT | ||||
* Configuration to activate "APS-Direct" media mode on Windows or | ||||
* Windows Mobile, useful for testing purposes only. | ||||
*/ | */ | |||
/* | /* | |||
* Typical configuration for WinCE target. | * Typical configuration for WinCE target. | |||
*/ | */ | |||
#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 | #if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 | |||
# define PJ_HAS_FLOATING_POINT 0 | ||||
# define PJMEDIA_HAS_G711_PLC 0 | /* | |||
//# define PJMEDIA_HAS_SMALL_FILTER 1 | * PJLIB settings. | |||
//# define PJMEDIA_HAS_LARGE_FILTER 0 | */ | |||
# define PJMEDIA_HAS_L16_CODEC 0 | ||||
/*# define PJMEDIA_HAS_GSM_CODEC 0*/ | ||||
/*# define PJMEDIA_HAS_ILBC_CODEC 0*/ | ||||
/*# define PJMEDIA_HAS_SPEEX_CODEC 0*/ | ||||
# define PJMEDIA_HAS_SPEEX_AEC 0 | ||||
# undef PJMEDIA_RESAMPLE_IMP | ||||
# define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE | ||||
# define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE | ||||
/* Speex default quality settings */ | ||||
# define PJSUA_DEFAULT_CODEC_QUALITY 5 | ||||
# define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | ||||
# define PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER 0 | /* Disable floating point support */ | |||
#endif | #define PJ_HAS_FLOATING_POINT 0 | |||
/* | ||||
* PJMEDIA settings | ||||
*/ | ||||
/* Select codecs to disable */ | ||||
#define PJMEDIA_HAS_L16_CODEC 0 | ||||
#define PJMEDIA_HAS_ILBC_CODEC 0 | ||||
/* We probably need more buffers on WM, so increase the limit */ | ||||
#define PJMEDIA_SOUND_BUFFER_COUNT 32 | ||||
/* Fine tune Speex's default settings for best performance/quality */ | ||||
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | ||||
/* For CPU reason, disable speex AEC and use the echo suppressor. */ | ||||
#define PJMEDIA_HAS_SPEEX_AEC 0 | ||||
/* Shouldn't use resampling for performance reason too. */ | ||||
#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE | ||||
/* Use the lighter WSOLA implementation */ | ||||
#define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE | ||||
/* | ||||
* PJSIP settings. | ||||
*/ | ||||
/* Set maximum number of dialog/transaction/calls to minimum to reduce | ||||
* memory usage | ||||
*/ | ||||
#define PJSIP_MAX_TSX_COUNT 31 | ||||
#define PJSIP_MAX_DIALOG_COUNT 31 | ||||
#define PJSUA_MAX_CALLS 4 | ||||
/* | ||||
* PJSUA settings | ||||
*/ | ||||
/* Default codec (Speex) quality */ | ||||
#define PJSUA_DEFAULT_CODEC_QUALITY 5 | ||||
/* Set maximum number of objects to minimum to reduce memory usage */ | ||||
#define PJSUA_MAX_ACC 4 | ||||
#define PJSUA_MAX_PLAYERS 4 | ||||
#define PJSUA_MAX_RECORDERS 4 | ||||
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX | ||||
_PLAYERS) | ||||
#define PJSUA_MAX_BUDDIES 32 | ||||
#endif /* PJ_WIN32_WINCE */ | ||||
/* | /* | |||
* Typical configuration for Symbian OS target | * Typical configuration for Symbian OS target | |||
*/ | */ | |||
#if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0 | #if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0 | |||
/* We don't want to use float, for now */ | /* | |||
# undef PJ_HAS_FLOATING_POINT | * PJLIB settings. | |||
# define PJ_HAS_FLOATING_POINT 0 | */ | |||
# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_NULL_SOUND | /* Disable floating point support */ | |||
#define PJ_HAS_FLOATING_POINT 0 | ||||
/* Misc PJLIB setting */ | /* Misc PJLIB setting */ | |||
# define PJ_MAXPATH 80 | #define PJ_MAXPATH 80 | |||
/* SRTP has not been ported to Symbian yet */ | /* This is important for Symbian. Symbian lacks vsnprintf(), so | |||
# define PJMEDIA_HAS_SRTP 1 | * if the log buffer is not long enough it's possible that | |||
* large incoming packet will corrupt memory when the log tries | ||||
* to log the packet. | ||||
*/ | ||||
#define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500) | ||||
/* Disable these */ | /* Since we don't have threads, log buffer can use static buffer | |||
# define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE | * rather than stack | |||
# define PJMEDIA_HAS_SPEEX_AEC 0 | */ | |||
# define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE | #define PJ_LOG_USE_STACK_BUFFER 0 | |||
/* Disable all codecs but G.711 and GSM, for now */ | ||||
# define PJMEDIA_HAS_GSM_CODEC 1 | ||||
# define PJMEDIA_HAS_L16_CODEC 0 | ||||
# define PJMEDIA_HAS_ILBC_CODEC 0 | ||||
# define PJMEDIA_HAS_SPEEX_CODEC 1 | ||||
# define PJMEDIA_HAS_G722_CODEC 0 | ||||
/* Need larger sound buffers */ | /* Disable check stack since it increases footprint */ | |||
# define PJMEDIA_SOUND_BUFFER_COUNT 16 | #define PJ_OS_HAS_CHECK_STACK 0 | |||
/* Disable safe module access */ | /* | |||
# define PJSIP_SAFE_MODULE 0 | * PJMEDIA settings | |||
*/ | ||||
# define PJSIP_MAX_PKT_LEN 2000 | /* Disable non-Symbian audio devices */ | |||
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | ||||
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0 | ||||
/* This is important for Symbian. Symbian lacks vsnprintf(), so | /* Select codecs to disable */ | |||
* if the log buffer is not long enough it's possible that | #define PJMEDIA_HAS_L16_CODEC 0 | |||
* large incoming packet will corrupt memory when the log tries | #define PJMEDIA_HAS_ILBC_CODEC 0 | |||
* to log the packet. | #define PJMEDIA_HAS_G722_CODEC 0 | |||
/* Fine tune Speex's default settings for best performance/quality */ | ||||
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | ||||
/* For CPU reason, disable speex AEC and use the echo suppressor. */ | ||||
#define PJMEDIA_HAS_SPEEX_AEC 0 | ||||
/* Shouldn't use resampling for performance reason too. */ | ||||
#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE | ||||
/* Use the lighter WSOLA implementation */ | ||||
#define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE | ||||
/* We probably need more buffers especially if MDA audio backend | ||||
* is used, so increase the limit | ||||
*/ | */ | |||
# define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500) | #define PJMEDIA_SOUND_BUFFER_COUNT 32 | |||
/* Since we don't have threads, log buffer can use static buffer */ | /* | |||
# define PJ_LOG_USE_STACK_BUFFER 0 | * PJSIP settings. | |||
*/ | ||||
/* Disable check stack since it increases footprint */ | /* Disable safe module access, since we don't use multithreading */ | |||
# undef PJ_OS_HAS_CHECK_STACK | #define PJSIP_SAFE_MODULE 0 | |||
# define PJ_OS_HAS_CHECK_STACK 0 | ||||
/* Increase allowable packet size, just in case */ | ||||
#define PJSIP_MAX_PKT_LEN 2000 | ||||
/* Symbian has problem with too many large blocks */ | /* Symbian has problem with too many large blocks */ | |||
# define PJSIP_POOL_LEN_ENDPT 1000 | #define PJSIP_POOL_LEN_ENDPT 1000 | |||
# define PJSIP_POOL_INC_ENDPT 1000 | #define PJSIP_POOL_INC_ENDPT 1000 | |||
# define PJSIP_POOL_RDATA_LEN 2000 | #define PJSIP_POOL_RDATA_LEN 2000 | |||
# define PJSIP_POOL_RDATA_INC 2000 | #define PJSIP_POOL_RDATA_INC 2000 | |||
# define PJSIP_POOL_LEN_TDATA 2000 | #define PJSIP_POOL_LEN_TDATA 2000 | |||
# define PJSIP_POOL_INC_TDATA 512 | #define PJSIP_POOL_INC_TDATA 512 | |||
# define PJSIP_POOL_LEN_UA 2000 | #define PJSIP_POOL_LEN_UA 2000 | |||
# define PJSIP_POOL_INC_UA 1000 | #define PJSIP_POOL_INC_UA 1000 | |||
# define PJSIP_POOL_TSX_LAYER_LEN 256 | #define PJSIP_POOL_TSX_LAYER_LEN 256 | |||
# define PJSIP_POOL_TSX_LAYER_INC 256 | #define PJSIP_POOL_TSX_LAYER_INC 256 | |||
# define PJSIP_POOL_TSX_LEN 512 | #define PJSIP_POOL_TSX_LEN 512 | |||
# define PJSIP_POOL_TSX_INC 128 | #define PJSIP_POOL_TSX_INC 128 | |||
/* | ||||
* PJSUA settings. | ||||
*/ | ||||
/* Default codec quality */ | ||||
#define PJSUA_DEFAULT_CODEC_QUALITY 5 | ||||
/* Set maximum number of dialog/transaction/calls to minimum */ | /* Set maximum number of dialog/transaction/calls to minimum */ | |||
# define PJSIP_MAX_TSX_COUNT 31 | #define PJSIP_MAX_TSX_COUNT 31 | |||
# define PJSIP_MAX_DIALOG_COUNT 31 | #define PJSIP_MAX_DIALOG_COUNT 31 | |||
# define PJSUA_MAX_CALLS 4 | #define PJSUA_MAX_CALLS 4 | |||
/* Other pjsua settings */ | /* Other pjsua settings */ | |||
# define PJSUA_MAX_ACC 4 | #define PJSUA_MAX_ACC 4 | |||
# define PJSUA_MAX_PLAYERS 4 | #define PJSUA_MAX_PLAYERS 4 | |||
# define PJSUA_MAX_RECORDERS 4 | #define PJSUA_MAX_RECORDERS 4 | |||
# define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX | #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX | |||
_PLAYERS) | _PLAYERS) | |||
# define PJSUA_MAX_BUDDIES 32 | #define PJSUA_MAX_BUDDIES 32 | |||
#endif | ||||
/* Speex default quality settings */ | ||||
# define PJSUA_DEFAULT_CODEC_QUALITY 5 | /* | |||
# define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | * Additional configuration to activate APS-Direct feature for | |||
* Nokia S60 target | ||||
* | ||||
* Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct | ||||
*/ | ||||
#ifdef PJ_CONFIG_NOKIA_APS_DIRECT | ||||
/* MUST use switchboard rather than the conference bridge */ | ||||
#define PJMEDIA_CONF_USE_SWITCH_BOARD 1 | ||||
/* Enable APS sound device backend and disable MDA */ | ||||
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0 | ||||
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1 | ||||
/* Enable passthrough codec framework */ | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 | ||||
/* And selectively enable which codecs are supported by the handset */ | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1 | ||||
#endif | ||||
/* | ||||
* Configuration to activate "APS-Direct" media mode on Windows, | ||||
* useful for testing purposes only. | ||||
*/ | ||||
#ifdef PJ_CONFIG_WIN32_WMME_DIRECT | ||||
/* MUST use switchboard rather than the conference bridge */ | ||||
#define PJMEDIA_CONF_USE_SWITCH_BOARD 1 | ||||
/* Only WMME supports the "direct" feature */ | ||||
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | ||||
#define PJMEDIA_AUDIO_DEV_HAS_WMME 1 | ||||
/* Enable passthrough codec framework */ | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 | ||||
/* Only PCMA and PCMU are supported by WMME-direct */ | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0 | ||||
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0 | ||||
#endif | #endif | |||
/* | /* | |||
* Minimum size | * Minimum size | |||
*/ | */ | |||
#ifdef PJ_CONFIG_MINIMAL_SIZE | #ifdef PJ_CONFIG_MINIMAL_SIZE | |||
# undef PJ_OS_HAS_CHECK_STACK | # undef PJ_OS_HAS_CHECK_STACK | |||
# define PJ_OS_HAS_CHECK_STACK 0 | # define PJ_OS_HAS_CHECK_STACK 0 | |||
# define PJ_LOG_MAX_LEVEL 0 | # define PJ_LOG_MAX_LEVEL 0 | |||
End of changes. 20 change blocks. | ||||
82 lines changed or deleted | 206 lines changed or added | |||
endpoint.h | endpoint.h | |||
---|---|---|---|---|
/* $Id: endpoint.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: endpoint.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 39 | skipping to change at line 39 | |||
* @{ | * @{ | |||
* | * | |||
* The media endpoint acts as placeholder for endpoint capabilities. Each | * The media endpoint acts as placeholder for endpoint capabilities. Each | |||
* media endpoint will have a codec manager to manage list of codecs instal led | * media endpoint will have a codec manager to manage list of codecs instal led | |||
* in the endpoint and a sound device factory. | * in the endpoint and a sound device factory. | |||
* | * | |||
* A reference to media endpoint instance is required when application want s | * A reference to media endpoint instance is required when application want s | |||
* to create a media session (#pjmedia_session_create()). | * to create a media session (#pjmedia_session_create()). | |||
*/ | */ | |||
#include <pjmedia/sound.h> | ||||
#include <pjmedia/codec.h> | #include <pjmedia/codec.h> | |||
#include <pjmedia/sdp.h> | #include <pjmedia/sdp.h> | |||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
* Create an instance of media endpoint. | * Create an instance of media endpoint. | |||
* | * | |||
* @param pf Pool factory, which will be used by the media endpoi nt | * @param pf Pool factory, which will be used by the media endpoi nt | |||
* throughout its lifetime. | * throughout its lifetime. | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
errno.h | errno.h | |||
---|---|---|---|---|
/* $Id: errno.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: errno.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 371 | skipping to change at line 371 | |||
*/ | */ | |||
#define PJ_ERRNO_START_USER (PJ_ERRNO_START_SYS + PJ_ERRNO_SPACE_SIZE) | #define PJ_ERRNO_START_USER (PJ_ERRNO_START_SYS + PJ_ERRNO_SPACE_SIZE) | |||
/* | /* | |||
* Below are list of error spaces that have been taken so far: | * Below are list of error spaces that have been taken so far: | |||
* - PJSIP_ERRNO_START (PJ_ERRNO_START_USER) | * - PJSIP_ERRNO_START (PJ_ERRNO_START_USER) | |||
* - PJMEDIA_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE) | * - PJMEDIA_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE) | |||
* - PJSIP_SIMPLE_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*2 ) | * - PJSIP_SIMPLE_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*2 ) | |||
* - PJLIB_UTIL_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*3 ) | * - PJLIB_UTIL_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*3 ) | |||
* - PJNATH_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*4 ) | * - PJNATH_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*4 ) | |||
* - PJMEDIA_AUDIODEV_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SI ZE*5) | ||||
*/ | */ | |||
/* Internal */ | /* Internal */ | |||
void pj_errno_clear_handlers(void); | void pj_errno_clear_handlers(void); | |||
PJ_END_DECL | PJ_END_DECL | |||
#endif /* __PJ_ERRNO_H__ */ | #endif /* __PJ_ERRNO_H__ */ | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
jbuf.h | jbuf.h | |||
---|---|---|---|---|
/* $Id: jbuf.h 2788 2009-06-24 14:46:36Z nanang $ */ | /* $Id: jbuf.h 2394 2008-12-23 17:27:53Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 64 | skipping to change at line 64 | |||
PJMEDIA_JB_ZERO_EMPTY_FRAME = 3 /**< Zero frame is being ret urned | PJMEDIA_JB_ZERO_EMPTY_FRAME = 3 /**< Zero frame is being ret urned | |||
because JB is empty. */ | because JB is empty. */ | |||
}; | }; | |||
/** | /** | |||
* @see pjmedia_jb_frame_type. | * @see pjmedia_jb_frame_type. | |||
*/ | */ | |||
typedef enum pjmedia_jb_frame_type pjmedia_jb_frame_type; | typedef enum pjmedia_jb_frame_type pjmedia_jb_frame_type; | |||
/** | /** | |||
* This structure describes jitter buffer state. | * This structure describes jitter buffer current status. | |||
*/ | */ | |||
struct pjmedia_jb_state | struct pjmedia_jb_state | |||
{ | { | |||
/* Setting */ | ||||
unsigned frame_size; /**< Individual frame size, in bytes. */ | unsigned frame_size; /**< Individual frame size, in bytes. */ | |||
unsigned prefetch; /**< Current prefetch value, in frames */ | ||||
unsigned min_prefetch; /**< Minimum allowed prefetch, in frms. */ | unsigned min_prefetch; /**< Minimum allowed prefetch, in frms. */ | |||
unsigned max_prefetch; /**< Maximum allowed prefetch, in frms. */ | unsigned max_prefetch; /**< Maximum allowed prefetch, in frms. */ | |||
/* Status */ | ||||
unsigned prefetch; /**< Current prefetch value, in frames | ||||
*/ | ||||
unsigned size; /**< Current buffer size, in frames. */ | unsigned size; /**< Current buffer size, in frames. */ | |||
/* Statistic */ | ||||
unsigned avg_delay; /**< Average delay, in ms. */ | unsigned avg_delay; /**< Average delay, in ms. */ | |||
unsigned min_delay; /**< Minimum delay, in ms. */ | unsigned min_delay; /**< Minimum delay, in ms. */ | |||
unsigned max_delay; /**< Maximum delay, in ms. */ | unsigned max_delay; /**< Maximum delay, in ms. */ | |||
unsigned dev_delay; /**< Standard deviation of delay, in ms. | unsigned dev_delay; /**< Standard deviation of delay, in ms. | |||
*/ | */ | |||
unsigned avg_burst; /**< Average burst, in frames. | ||||
*/ | ||||
unsigned lost; /**< Number of lost frames. | ||||
*/ | ||||
unsigned discard; /**< Number of discarded frames. | ||||
*/ | ||||
unsigned empty; /**< Number of empty on GET events. | ||||
*/ | ||||
}; | }; | |||
/** | /** | |||
* @see pjmedia_jb_state | * @see pjmedia_jb_state | |||
*/ | */ | |||
typedef struct pjmedia_jb_state pjmedia_jb_state; | typedef struct pjmedia_jb_state pjmedia_jb_state; | |||
/** | /** | |||
* The constant PJMEDIA_JB_DEFAULT_INIT_DELAY specifies default jitter | * The constant PJMEDIA_JB_DEFAULT_INIT_DELAY specifies default jitter | |||
* buffer prefetch count during jitter buffer creation. | * buffer prefetch count during jitter buffer creation. | |||
End of changes. 7 change blocks. | ||||
19 lines changed or deleted | 5 lines changed or added | |||
m_auto.h | m_auto.h | |||
---|---|---|---|---|
/* pjlib/include/pj/compat/m_auto.h. Generated by configure. */ | /* pjlib/include/pj/compat/m_auto.h. Generated by configure. */ | |||
/* $Id: m_auto.h.in 2528 2009-03-23 12:09:19Z bennylp $ */ | /* $Id: m_auto.h.in 2510 2009-03-13 12:15:43Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
m_auto.h.in | m_auto.h.in | |||
---|---|---|---|---|
/* $Id: m_auto.h.in 2528 2009-03-23 12:09:19Z bennylp $ */ | /* $Id: m_auto.h.in 2510 2009-03-13 12:15:43Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
math.h | math.h | |||
---|---|---|---|---|
/* $Id: math.h 2818 2009-06-25 13:27:02Z bennylp $ */ | /* $Id: math.h 2394 2008-12-23 17:27:53Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 143 | skipping to change at line 143 | |||
stat->min = val; | stat->min = val; | |||
if (stat->max < val) | if (stat->max < val) | |||
stat->max = val; | stat->max = val; | |||
} else { | } else { | |||
stat->min = stat->max = val; | stat->min = stat->max = val; | |||
} | } | |||
#if PJ_HAS_FLOATING_POINT | #if PJ_HAS_FLOATING_POINT | |||
delta = val - stat->fmean_; | delta = val - stat->fmean_; | |||
stat->fmean_ += delta/stat->n; | stat->fmean_ += delta/stat->n; | |||
stat->mean = (int) stat->fmean_; | ||||
/* Return mean value with 'rounding' */ | ||||
stat->mean = (int) (stat->fmean_ + 0.5); | ||||
stat->m2_ += (int)(delta * (val-stat->fmean_)); | stat->m2_ += (int)(delta * (val-stat->fmean_)); | |||
#else | #else | |||
delta = val - stat->mean; | delta = val - stat->mean; | |||
stat->mean += delta/stat->n; | stat->mean += delta/stat->n; | |||
stat->mean_res_ += delta % stat->n; | stat->mean_res_ += delta % stat->n; | |||
if (stat->mean_res_ >= stat->n) { | if (stat->mean_res_ >= stat->n) { | |||
++stat->mean; | ++stat->mean; | |||
stat->mean_res_ -= stat->n; | stat->mean_res_ -= stat->n; | |||
} else if (stat->mean_res_ <= -stat->n) { | } else if (stat->mean_res_ <= -stat->n) { | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 2 lines changed or added | |||
os.h | os.h | |||
---|---|---|---|---|
/* $Id: os.h 2805 2009-06-25 12:29:04Z bennylp $ */ | /* $Id: os.h 2481 2009-03-02 15:48:45Z nanang $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 1251 | skipping to change at line 1251 | |||
* @param stop The end timestamp. | * @param stop The end timestamp. | |||
* | * | |||
* @return Elapsed time in milisecond. | * @return Elapsed time in milisecond. | |||
* | * | |||
* @see pj_elapsed_time(), pj_elapsed_cycle(), pj_elapsed_nanosec() | * @see pj_elapsed_time(), pj_elapsed_cycle(), pj_elapsed_nanosec() | |||
*/ | */ | |||
PJ_DECL(pj_uint32_t) pj_elapsed_msec( const pj_timestamp *start, | PJ_DECL(pj_uint32_t) pj_elapsed_msec( const pj_timestamp *start, | |||
const pj_timestamp *stop ); | const pj_timestamp *stop ); | |||
/** | /** | |||
* Variant of #pj_elapsed_msec() which returns 64bit value. | ||||
*/ | ||||
PJ_DECL(pj_uint64_t) pj_elapsed_msec64(const pj_timestamp *start, | ||||
const pj_timestamp *stop ); | ||||
/** | ||||
* Calculate the elapsed time in 32-bit microseconds. | * Calculate the elapsed time in 32-bit microseconds. | |||
* This function calculates the elapsed time using highest precision | * This function calculates the elapsed time using highest precision | |||
* calculation that is available for current platform, considering | * calculation that is available for current platform, considering | |||
* whether floating point or 64-bit precision arithmetic is available. | * whether floating point or 64-bit precision arithmetic is available. | |||
* For maximum portability, application should prefer to use this function | * For maximum portability, application should prefer to use this function | |||
* rather than calculating the elapsed time by itself. | * rather than calculating the elapsed time by itself. | |||
* | * | |||
* @param start The starting timestamp. | * @param start The starting timestamp. | |||
* @param stop The end timestamp. | * @param stop The end timestamp. | |||
* | * | |||
End of changes. 2 change blocks. | ||||
7 lines changed or deleted | 1 lines changed or added | |||
os_symbian.h | os_symbian.h | |||
---|---|---|---|---|
/* $Id: os_symbian.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: os_symbian.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 115 | skipping to change at line 115 | |||
#ifndef NULL | #ifndef NULL | |||
# define NULL 0 | # define NULL 0 | |||
#endif | #endif | |||
/* Doesn't seem to allow more than this */ | /* Doesn't seem to allow more than this */ | |||
#define PJ_IOQUEUE_MAX_HANDLES 8 | #define PJ_IOQUEUE_MAX_HANDLES 8 | |||
/* | /* | |||
* Override features. | * Override features. | |||
*/ | */ | |||
#define PJ_HAS_FLOATING_POINT 1 | #define PJ_HAS_FLOATING_POINT 0 | |||
#define PJ_HAS_MALLOC 0 | #define PJ_HAS_MALLOC 0 | |||
#define PJ_HAS_SEMAPHORE 1 | #define PJ_HAS_SEMAPHORE 1 | |||
#define PJ_HAS_EVENT_OBJ 0 | #define PJ_HAS_EVENT_OBJ 0 | |||
#define PJ_HAS_HIGH_RES_TIMER 1 | #define PJ_HAS_HIGH_RES_TIMER 1 | |||
#define PJ_OS_HAS_CHECK_STACK 0 | #define PJ_OS_HAS_CHECK_STACK 0 | |||
#define PJ_TERM_HAS_COLOR 0 | #define PJ_TERM_HAS_COLOR 0 | |||
#define PJ_NATIVE_STRING_IS_UNICODE 0 | #define PJ_NATIVE_STRING_IS_UNICODE 0 | |||
#define PJ_NATIVE_ERR_POSITIVE 0 | #define PJ_NATIVE_ERR_POSITIVE 0 | |||
#define PJ_ATOMIC_VALUE_TYPE int | #define PJ_ATOMIC_VALUE_TYPE int | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
pjmedia-codec.h | pjmedia-codec.h | |||
---|---|---|---|---|
/* $Id: pjmedia-codec.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: pjmedia-codec.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 34 | skipping to change at line 34 | |||
* @file pjmedia-codec.h | * @file pjmedia-codec.h | |||
* @brief Include all codecs API in PJMEDIA-CODEC | * @brief Include all codecs API in PJMEDIA-CODEC | |||
*/ | */ | |||
#include <pjmedia-codec/l16.h> | #include <pjmedia-codec/l16.h> | |||
#include <pjmedia-codec/gsm.h> | #include <pjmedia-codec/gsm.h> | |||
#include <pjmedia-codec/speex.h> | #include <pjmedia-codec/speex.h> | |||
#include <pjmedia-codec/ilbc.h> | #include <pjmedia-codec/ilbc.h> | |||
#include <pjmedia-codec/g722.h> | #include <pjmedia-codec/g722.h> | |||
#include <pjmedia-codec/ipp_codecs.h> | #include <pjmedia-codec/ipp_codecs.h> | |||
#include <pjmedia-codec/passthrough.h> | ||||
#endif /* __PJMEDIA_CODEC_PJMEDIA_CODEC_H__ */ | #endif /* __PJMEDIA_CODEC_PJMEDIA_CODEC_H__ */ | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
pjsua.h | pjsua.h | |||
---|---|---|---|---|
/* $Id: pjsua.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: pjsua.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 4068 | skipping to change at line 4068 | |||
unsigned ec_options; | unsigned ec_options; | |||
/** | /** | |||
* Echo canceller tail length, in miliseconds. | * Echo canceller tail length, in miliseconds. | |||
* | * | |||
* Default: PJSUA_DEFAULT_EC_TAIL_LEN | * Default: PJSUA_DEFAULT_EC_TAIL_LEN | |||
*/ | */ | |||
unsigned ec_tail_len; | unsigned ec_tail_len; | |||
/** | /** | |||
* Audio capture buffer length, in milliseconds. | ||||
* | ||||
* Default: PJMEDIA_SND_DEFAULT_REC_LATENCY | ||||
*/ | ||||
unsigned snd_rec_latency; | ||||
/** | ||||
* Audio playback buffer length, in milliseconds. | ||||
* | ||||
* Default: PJMEDIA_SND_DEFAULT_PLAY_LATENCY | ||||
*/ | ||||
unsigned snd_play_latency; | ||||
/** | ||||
* Jitter buffer initial prefetch delay in msec. The value must be | * Jitter buffer initial prefetch delay in msec. The value must be | |||
* between jb_min_pre and jb_max_pre below. | * between jb_min_pre and jb_max_pre below. | |||
* | * | |||
* Default: -1 (to use default stream settings, currently 150 msec) | * Default: -1 (to use default stream settings, currently 150 msec) | |||
*/ | */ | |||
int jb_init; | int jb_init; | |||
/** | /** | |||
* Jitter buffer minimum prefetch delay in msec. | * Jitter buffer minimum prefetch delay in msec. | |||
* | * | |||
skipping to change at line 4139 | skipping to change at line 4153 | |||
*/ | */ | |||
pj_turn_tp_type turn_conn_type; | pj_turn_tp_type turn_conn_type; | |||
/** | /** | |||
* Specify the credential to authenticate with the TURN server. | * Specify the credential to authenticate with the TURN server. | |||
*/ | */ | |||
pj_stun_auth_cred turn_auth_cred; | pj_stun_auth_cred turn_auth_cred; | |||
/** | /** | |||
* Specify idle time of sound device before it is automatically closed, | * Specify idle time of sound device before it is automatically closed, | |||
* in seconds. | * in seconds. Use value -1 to disable the auto-close feature of sound | |||
* device | ||||
* | * | |||
* Default : -1 (Disable the auto-close feature of sound device) | * Default : 1 | |||
*/ | */ | |||
int snd_auto_close_time; | int snd_auto_close_time; | |||
}; | }; | |||
/** | /** | |||
* Use this function to initialize media config. | * Use this function to initialize media config. | |||
* | * | |||
* @param cfg The media config to be initialized. | * @param cfg The media config to be initialized. | |||
* | * | |||
* \par Python: | * \par Python: | |||
skipping to change at line 4630 | skipping to change at line 4645 | |||
status = py_pjsua.recorder_destroy(id) | status = py_pjsua.recorder_destroy(id) | |||
* \endcode | * \endcode | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsua_recorder_destroy(pjsua_recorder_id id); | PJ_DECL(pj_status_t) pjsua_recorder_destroy(pjsua_recorder_id id); | |||
/************************************************************************** *** | /************************************************************************** *** | |||
* Sound devices. | * Sound devices. | |||
*/ | */ | |||
/** | /** | |||
* Enum all sound devices installed in the system. | * Enum all audio devices installed in the system. | |||
* | ||||
* @param info Array of info to be initialized. | ||||
* @param count On input, specifies max elements in the arra | ||||
y. | ||||
* On return, it contains actual number of elements | ||||
* that have been initialized. | ||||
* | ||||
* @return PJ_SUCCESS on success, or the appropriate error code | ||||
. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjsua_enum_aud_devs(pjmedia_aud_dev_info info[], | ||||
unsigned *count); | ||||
/** | ||||
* Enum all sound devices installed in the system (old API). | ||||
* | * | |||
* @param info Array of info to be initialized. | * @param info Array of info to be initialized. | |||
* @param count On input, specifies max elements in the arra y. | * @param count On input, specifies max elements in the arra y. | |||
* On return, it contains actual number of elements | * On return, it contains actual number of elements | |||
* that have been initialized. | * that have been initialized. | |||
* | * | |||
* @return PJ_SUCCESS on success, or the appropriate error code . | * @return PJ_SUCCESS on success, or the appropriate error code . | |||
* | * | |||
* | * | |||
* \par Python: | * \par Python: | |||
skipping to change at line 4716 | skipping to change at line 4744 | |||
* @return The port interface of the conference bridge, | * @return The port interface of the conference bridge, | |||
* so that application can connect this to it's own | * so that application can connect this to it's own | |||
* sound device or master port. | * sound device or master port. | |||
* | * | |||
* \par Python: | * \par Python: | |||
* Not applicable (for now). | * Not applicable (for now). | |||
*/ | */ | |||
PJ_DECL(pjmedia_port*) pjsua_set_no_snd_dev(void); | PJ_DECL(pjmedia_port*) pjsua_set_no_snd_dev(void); | |||
/** | /** | |||
* Configure the echo canceller tail length of the sound port. | * Change the echo cancellation settings. | |||
* | ||||
* The behavior of this function depends on whether the sound device is | ||||
* currently active, and if it is, whether device or software AEC is | ||||
* being used. | ||||
* | ||||
* If the sound device is currently active, and if the device supports AEC, | ||||
* this function will forward the change request to the device and it will | ||||
* be up to the device on whether support the request. If software AEC is | ||||
* being used (the software EC will be used if the device does not support | ||||
* AEC), this function will change the software EC settings. In all cases, | ||||
* the setting will be saved for future opening of the sound device. | ||||
* | ||||
* If the sound device is not currently active, this will only change the | ||||
* default AEC settings and the setting will be applied next time the | ||||
* sound device is opened. | ||||
* | * | |||
* @param tail_ms The tail length, in miliseconds. Set to zero to | * @param tail_ms The tail length, in miliseconds. Set to zero to | |||
* disable AEC. | * disable AEC. | |||
* @param options Options to be passed to pjmedia_echo_create(). | * @param options Options to be passed to pjmedia_echo_create(). | |||
* Normally the value should be zero. | * Normally the value should be zero. | |||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
* | * | |||
* \par Python: | * \par Python: | |||
* \code | * \code | |||
skipping to change at line 4747 | skipping to change at line 4790 | |||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
* | * | |||
* \par Python: | * \par Python: | |||
* \code | * \code | |||
tail_ms = py_pjsua.get_ec_tail() | tail_ms = py_pjsua.get_ec_tail() | |||
* \endcode | * \endcode | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsua_get_ec_tail(unsigned *p_tail_ms); | PJ_DECL(pj_status_t) pjsua_get_ec_tail(unsigned *p_tail_ms); | |||
/** | ||||
* Check whether the sound device is currently active. The sound device | ||||
* may be inactive if the application has set the auto close feature to | ||||
* non-zero (the snd_auto_close_time setting in #pjsua_media_config), or | ||||
* if null sound device or no sound device has been configured via the | ||||
* #pjsua_set_no_snd_dev() function. | ||||
*/ | ||||
PJ_DECL(pj_bool_t) pjsua_snd_is_active(void); | ||||
/** | ||||
* Configure sound device setting to the sound device being used. If sound | ||||
* device is currently active, the function will forward the setting to the | ||||
* sound device instance to be applied immediately, if it supports it. | ||||
* | ||||
* The setting will be saved for future opening of the sound device, if the | ||||
* "keep" argument is set to non-zero. If the sound device is currently | ||||
* inactive, and the "keep" argument is false, this function will return | ||||
* error. | ||||
* | ||||
* Note that in case the setting is kept for future use, it will be applied | ||||
* to any devices, even when application has changed the sound device to be | ||||
* used. | ||||
* | ||||
* Note also that the echo cancellation setting should be set with | ||||
* #pjsua_set_ec() API instead. | ||||
* | ||||
* See also #pjmedia_aud_stream_set_cap() for more information about settin | ||||
g | ||||
* an audio device capability. | ||||
* | ||||
* @param cap The sound device setting to change. | ||||
* @param pval Pointer to value. Please see #pjmedia_aud_dev_cap | ||||
* documentation about the type of value to be | ||||
* supplied for each setting. | ||||
* @param keep Specify whether the setting is to be kept for future | ||||
* use. | ||||
* | ||||
* @return PJ_SUCCESS on success or the appropriate error code. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjsua_snd_set_setting(pjmedia_aud_dev_cap cap, | ||||
const void *pval, | ||||
pj_bool_t keep); | ||||
/** | ||||
* Retrieve a sound device setting. If sound device is currently active, | ||||
* the function will forward the request to the sound device. If sound devi | ||||
ce | ||||
* is currently inactive, and if application had previously set the setting | ||||
* and mark the setting as kept, then that setting will be returned. | ||||
* Otherwise, this function will return error. | ||||
* | ||||
* Note that echo cancellation settings should be retrieved with | ||||
* #pjsua_get_ec_tail() API instead. | ||||
* | ||||
* @param cap The sound device setting to retrieve. | ||||
* @param pval Pointer to receive the value. | ||||
* Please see #pjmedia_aud_dev_cap documentation about | ||||
* the type of value to be supplied for each setting. | ||||
* | ||||
* @return PJ_SUCCESS on success or the appropriate error code. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjsua_snd_get_setting(pjmedia_aud_dev_cap cap, | ||||
void *pval); | ||||
/************************************************************************** *** | /************************************************************************** *** | |||
* Codecs. | * Codecs. | |||
*/ | */ | |||
/** | /** | |||
* Enum all supported codecs in the system. | * Enum all supported codecs in the system. | |||
* | * | |||
* @param id Array of ID to be initialized. | * @param id Array of ID to be initialized. | |||
* @param count On input, specifies max elements in the arra y. | * @param count On input, specifies max elements in the arra y. | |||
* On return, it contains actual number of elements | * On return, it contains actual number of elements | |||
End of changes. 7 change blocks. | ||||
5 lines changed or deleted | 114 lines changed or added | |||
pjsua_internal.h | pjsua_internal.h | |||
---|---|---|---|---|
/* $Id: pjsua_internal.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: pjsua_internal.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 268 | skipping to change at line 268 | |||
pjsua_buddy buddy[PJSUA_MAX_BUDDIES]; /**< Buddy array . */ | pjsua_buddy buddy[PJSUA_MAX_BUDDIES]; /**< Buddy array . */ | |||
/* Presence: */ | /* Presence: */ | |||
pj_timer_entry pres_timer;/**< Presence refresh timer. */ | pj_timer_entry pres_timer;/**< Presence refresh timer. */ | |||
/* Media: */ | /* Media: */ | |||
pjsua_media_config media_cfg; /**< Media config. */ | pjsua_media_config media_cfg; /**< Media config. */ | |||
pjmedia_endpt *med_endpt; /**< Media endpoint. */ | pjmedia_endpt *med_endpt; /**< Media endpoint. */ | |||
pjsua_conf_setting mconf_cfg; /**< Additionan conf. bridge. param */ | pjsua_conf_setting mconf_cfg; /**< Additionan conf. bridge. param */ | |||
pjmedia_conf *mconf; /**< Conference bridge. */ | pjmedia_conf *mconf; /**< Conference bridge. */ | |||
int cap_dev; /**< Capture device ID. | pj_bool_t is_mswitch;/**< Are we using audio switchboard | |||
*/ | (a.k.a APS-Direct) */ | |||
int play_dev; /**< Playback device ID. | ||||
*/ | /* Sound device */ | |||
pjmedia_aud_dev_index cap_dev; /**< Capture device ID. */ | ||||
pjmedia_aud_dev_index play_dev; /**< Playback device ID. */ | ||||
pj_uint32_t aud_svmask;/**< Which settings to save | ||||
*/ | ||||
pjmedia_aud_param aud_param; /**< User settings to sound dev */ | ||||
pj_bool_t aud_open_cnt;/**< How many # device is opened */ | ||||
pj_bool_t no_snd; /**< No sound (app will manage it) */ | pj_bool_t no_snd; /**< No sound (app will manage it) */ | |||
pj_pool_t *snd_pool; /**< Sound's private pool. */ | pj_pool_t *snd_pool; /**< Sound's private pool. */ | |||
pjmedia_snd_port *snd_port; /**< Sound port. */ | pjmedia_snd_port *snd_port; /**< Sound port. */ | |||
pj_timer_entry snd_idle_timer;/**< Sound device idle timer. */ | pj_timer_entry snd_idle_timer;/**< Sound device idle timer. */ | |||
pjmedia_master_port *null_snd; /**< Master port for null sound. */ | pjmedia_master_port *null_snd; /**< Master port for null sound. */ | |||
pjmedia_port *null_port; /**< Null port. */ | pjmedia_port *null_port; /**< Null port. */ | |||
/* File players: */ | /* File players: */ | |||
unsigned player_cnt;/**< Number of file players. */ | unsigned player_cnt;/**< Number of file players. */ | |||
pjsua_file_data player[PJSUA_MAX_PLAYERS];/**< Array of players.*/ | pjsua_file_data player[PJSUA_MAX_PLAYERS];/**< Array of players.*/ | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 11 lines changed or added | |||
port.h | port.h | |||
---|---|---|---|---|
/* $Id: port.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: port.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 28 | skipping to change at line 28 | |||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | |||
*/ | */ | |||
#ifndef __PJMEDIA_PORT_H__ | #ifndef __PJMEDIA_PORT_H__ | |||
#define __PJMEDIA_PORT_H__ | #define __PJMEDIA_PORT_H__ | |||
/** | /** | |||
* @file port.h | * @file port.h | |||
* @brief Port interface declaration | * @brief Port interface declaration | |||
*/ | */ | |||
#include <pjmedia/types.h> | #include <pjmedia/types.h> | |||
#include <pj/assert.h> | ||||
#include <pj/os.h> | #include <pj/os.h> | |||
/** | /** | |||
@addtogroup PJMEDIA_PORT Media Ports Framework | @addtogroup PJMEDIA_PORT Media Ports Framework | |||
@{ | @{ | |||
@section media_port_intro Media Port Concepts | @section media_port_intro Media Port Concepts | |||
@subsection The Media Port | @subsection The Media Port | |||
A media port (represented with pjmedia_port "class") provides a generic | A media port (represented with pjmedia_port "class") provides a generic | |||
skipping to change at line 207 | skipping to change at line 208 | |||
* Port info. | * Port info. | |||
*/ | */ | |||
typedef struct pjmedia_port_info | typedef struct pjmedia_port_info | |||
{ | { | |||
pj_str_t name; /**< Port name. */ | pj_str_t name; /**< Port name. */ | |||
pj_uint32_t signature; /**< Port signature. */ | pj_uint32_t signature; /**< Port signature. */ | |||
pjmedia_type type; /**< Media type. */ | pjmedia_type type; /**< Media type. */ | |||
pj_bool_t has_info; /**< Has info? */ | pj_bool_t has_info; /**< Has info? */ | |||
pj_bool_t need_info; /**< Need info on connect? */ | pj_bool_t need_info; /**< Need info on connect? */ | |||
unsigned pt; /**< Payload type (can be dynamic). */ | unsigned pt; /**< Payload type (can be dynamic). */ | |||
pjmedia_format format; /**< Format. */ | ||||
pj_str_t encoding_name; /**< Encoding name. */ | pj_str_t encoding_name; /**< Encoding name. */ | |||
unsigned clock_rate; /**< Sampling rate. */ | unsigned clock_rate; /**< Sampling rate. */ | |||
unsigned channel_count; /**< Number of channels. */ | unsigned channel_count; /**< Number of channels. */ | |||
unsigned bits_per_sample; /**< Bits/sample */ | unsigned bits_per_sample; /**< Bits/sample */ | |||
unsigned samples_per_frame; /**< No of samples per frame. */ | unsigned samples_per_frame; /**< No of samples per frame. */ | |||
unsigned bytes_per_frame; /**< No of samples per frame. */ | unsigned bytes_per_frame; /**< No of samples per frame. */ | |||
} pjmedia_port_info; | } pjmedia_port_info; | |||
/** | /** | |||
* Types of media frame. | ||||
*/ | ||||
typedef enum pjmedia_frame_type | ||||
{ | ||||
PJMEDIA_FRAME_TYPE_NONE, /**< No frame. */ | ||||
PJMEDIA_FRAME_TYPE_AUDIO /**< Normal audio frame. */ | ||||
} pjmedia_frame_type; | ||||
/** | ||||
* This structure describes a media frame. | ||||
*/ | ||||
typedef struct pjmedia_frame | ||||
{ | ||||
pjmedia_frame_type type; /**< Frame type. | ||||
*/ | ||||
void *buf; /**< Pointer to buffer. | ||||
*/ | ||||
pj_size_t size; /**< Frame size in bytes. | ||||
*/ | ||||
pj_timestamp timestamp; /**< Frame timestamp. | ||||
*/ | ||||
pj_uint32_t bit_info; /**< Bit info of the frame, samp | ||||
le case: | ||||
a frame may not exactly start and e | ||||
nd | ||||
at the octet boundary, so this fiel | ||||
d | ||||
may be used for specifying start & | ||||
end bit offset. | ||||
*/ | ||||
} pjmedia_frame; | ||||
/** | ||||
* Port interface. | * Port interface. | |||
*/ | */ | |||
typedef struct pjmedia_port | typedef struct pjmedia_port | |||
{ | { | |||
pjmedia_port_info info; /**< Port information. */ | pjmedia_port_info info; /**< Port information. */ | |||
/** Port data can be used by the port creator to attach arbitrary | /** Port data can be used by the port creator to attach arbitrary | |||
* value to be associated with the port. | * value to be associated with the port. | |||
*/ | */ | |||
struct port_data { | struct port_data { | |||
End of changes. 4 change blocks. | ||||
35 lines changed or deleted | 3 lines changed or added | |||
sip_inv.h | sip_inv.h | |||
---|---|---|---|---|
/* $Id: sip_inv.h 2799 2009-06-25 10:58:13Z bennylp $ */ | /* $Id: sip_inv.h 2394 2008-12-23 17:27:53Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 638 | skipping to change at line 638 | |||
* | * | |||
* @return PJ_SUCCESS if local answer can be accepted by | * @return PJ_SUCCESS if local answer can be accepted by | |||
* SDP negotiator. | * SDP negotiator. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_inv_set_sdp_answer(pjsip_inv_session *inv, | PJ_DECL(pj_status_t) pjsip_inv_set_sdp_answer(pjsip_inv_session *inv, | |||
const pjmedia_sdp_session *sdp ); | const pjmedia_sdp_session *sdp ); | |||
/** | /** | |||
* Create a SIP message to initiate invite session termination. Depending o n | * Create a SIP message to initiate invite session termination. Depending o n | |||
* the state of the session, this function may return CANCEL request, | * the state of the session, this function may return CANCEL request, | |||
* a non-2xx final response, a BYE request, or even no request. | * a non-2xx final response, or a BYE request. If the session has not answe | |||
* | red | |||
* For UAS, if the session has not answered the incoming INVITE, this funct | * the incoming INVITE, this function creates the non-2xx final response wi | |||
ion | th | |||
* creates the non-2xx final response with the specified status code in | * the specified status code in st_code and optional status text in st_text | |||
* \a st_code and optional status text in \a st_text. | . | |||
* | ||||
* For UAC, if the original INVITE has not been answered with a final | ||||
* response, the behavior depends on whether provisional response has been | ||||
* received. If provisional response has been received, this function will | ||||
* create CANCEL request. If no provisional response has been received, the | ||||
* function will not create CANCEL request (the function will return | ||||
* PJ_SUCCESS but the \a p_tdata will contain NULL) because we cannot send | ||||
* CANCEL before receiving provisional response. If then a provisional | ||||
* response is received, the invite session will send CANCEL automatically. | ||||
* | ||||
* For both UAC and UAS, if the INVITE session has been answered with final | ||||
* response, a BYE request will be created. | ||||
* | * | |||
* @param inv The invite session. | * @param inv The invite session. | |||
* @param st_code Status code to be used for terminating the session. | * @param st_code Status code to be used for terminating the session. | |||
* @param st_text Optional status text. | * @param st_text Optional status text. | |||
* @param p_tdata Pointer to receive the message to be created. Note | * @param p_tdata Pointer to receive the message to be created. | |||
* that it's possible to receive NULL here while the | ||||
* function returns PJ_SUCCESS, see the description. | ||||
* | * | |||
* @return PJ_SUCCESS if termination is initiated. | * @return PJ_SUCCESS if termination message can be created. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, | PJ_DECL(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, | |||
int st_code, | int st_code, | |||
const pj_str_t *st_text, | const pj_str_t *st_text, | |||
pjsip_tx_data **p_tdata ); | pjsip_tx_data **p_tdata ); | |||
/** | /** | |||
* Create a re-INVITE request. | * Create a re-INVITE request. | |||
* | * | |||
* @param inv The invite session. | * @param inv The invite session. | |||
End of changes. 4 change blocks. | ||||
23 lines changed or deleted | 9 lines changed or added | |||
sip_parser.h | sip_parser.h | |||
---|---|---|---|---|
/* $Id: sip_parser.h 2538 2009-03-23 13:14:26Z bennylp $ */ | /* $Id: sip_parser.h 2522 2009-03-18 18:24:40Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
sip_transaction.h | sip_transaction.h | |||
---|---|---|---|---|
/* $Id: sip_transaction.h 2798 2009-06-25 10:48:08Z bennylp $ */ | /* $Id: sip_transaction.h 2394 2008-12-23 17:27:53Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 326 | skipping to change at line 326 | |||
int code ); | int code ); | |||
/** | /** | |||
* Cease retransmission on the UAC transaction. The UAC transaction is | * Cease retransmission on the UAC transaction. The UAC transaction is | |||
* still considered running, and it will complete when either final | * still considered running, and it will complete when either final | |||
* response is received or the transaction times out. | * response is received or the transaction times out. | |||
* | * | |||
* This operation normally is used for INVITE transaction only, when | * This operation normally is used for INVITE transaction only, when | |||
* the transaction is cancelled before any provisional response has been | * the transaction is cancelled before any provisional response has been | |||
* received. | * received. | |||
* | ||||
* @param tsx The transaction. | ||||
* | ||||
* @return PJ_SUCCESS or the appropriate error code. | ||||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_tsx_stop_retransmit(pjsip_transaction *tsx); | PJ_DECL(pj_status_t) pjsip_tsx_stop_retransmit(pjsip_transaction *tsx); | |||
/** | /** | |||
* Start a timer to terminate transaction after the specified time | ||||
* has elapsed. This function is only valid for INVITE transaction, | ||||
* and only before final response is received for the INVITE transaction. | ||||
* It is normally called after the UAC has sent CANCEL for this | ||||
* INVITE transaction. | ||||
* | ||||
* The purpose of this function is to terminate the transaction if UAS | ||||
* does not send final response to this INVITE transaction even after | ||||
* it sends 200/OK to CANCEL (for example when the UAS complies to RFC | ||||
* 2543). | ||||
* | ||||
* Once this timer is set, the transaction will be terminated either when | ||||
* a final response is received or the timer expires. | ||||
* | ||||
* @param tsx The transaction. | ||||
* @param millisec Timeout value in milliseconds. | ||||
* | ||||
* @return PJ_SUCCESS or the appropriate error code. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjsip_tsx_set_timeout(pjsip_transaction *tsx, | ||||
unsigned millisec); | ||||
/** | ||||
* Get the transaction instance in the incoming message. If the message | * Get the transaction instance in the incoming message. If the message | |||
* has a corresponding transaction, this function will return non NULL | * has a corresponding transaction, this function will return non NULL | |||
* value. | * value. | |||
* | * | |||
* @param rdata The incoming message buffer. | * @param rdata The incoming message buffer. | |||
* | * | |||
* @return The transaction instance associated with this message, | * @return The transaction instance associated with this message, | |||
* or NULL if the message doesn't match any transactions. | * or NULL if the message doesn't match any transactions. | |||
*/ | */ | |||
PJ_DECL(pjsip_transaction*) pjsip_rdata_get_tsx( pjsip_rx_data *rdata ); | PJ_DECL(pjsip_transaction*) pjsip_rdata_get_tsx( pjsip_rx_data *rdata ); | |||
End of changes. 3 change blocks. | ||||
28 lines changed or deleted | 1 lines changed or added | |||
sound.h | sound.h | |||
---|---|---|---|---|
/* $Id: sound.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: sound.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
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 US A | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | |||
*/ | */ | |||
#ifndef __PJMEDIA_SOUND_H__ | #ifndef __PJMEDIA_SOUND_H__ | |||
#define __PJMEDIA_SOUND_H__ | #define __PJMEDIA_SOUND_H__ | |||
/** | /** | |||
* @file sound.h | * @file sound.h | |||
* @brief Sound player and recorder device framework. | * @brief Legacy sound device API | |||
*/ | */ | |||
#include <pjmedia-audiodev/audiodev.h> | ||||
#include <pjmedia/types.h> | #include <pjmedia/types.h> | |||
#include <pj/pool.h> | ||||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
* @defgroup PJMED_SND Portable Sound Hardware Abstraction | * @defgroup PJMED_SND Portable Sound Hardware Abstraction | |||
* @ingroup PJMED_SND_PORT | * @ingroup PJMED_SND_PORT | |||
* @brief PJMEDIA abstraction for sound device hardware | * @brief PJMEDIA abstraction for sound device hardware | |||
* @{ | * @{ | |||
* | * | |||
* <strong>Warning: this sound device API has been deprecated | ||||
* and replaced by PJMEDIA Audio Device API. Please see | ||||
* http://trac.pjsip.org/repos/wiki/Audio_Dev_API for more | ||||
* information.</strong> | ||||
* | ||||
* This section describes lower level abstraction for sound device | * This section describes lower level abstraction for sound device | |||
* hardware. Application normally uses the higher layer @ref | * hardware. Application normally uses the higher layer @ref | |||
* PJMED_SND_PORT abstraction since it works seamlessly with | * PJMED_SND_PORT abstraction since it works seamlessly with | |||
* @ref PJMEDIA_PORT. | * @ref PJMEDIA_PORT. | |||
* | * | |||
* The sound hardware abstraction basically runs <b>asychronously</b>, | * The sound hardware abstraction basically runs <b>asychronously</b>, | |||
* and application must register callbacks to be called to receive/ | * and application must register callbacks to be called to receive/ | |||
* supply audio frames from/to the sound hardware. | * supply audio frames from/to the sound hardware. | |||
* | * | |||
* A full duplex sound stream (created with #pjmedia_snd_open()) | * A full duplex sound stream (created with #pjmedia_snd_open()) | |||
skipping to change at line 63 | skipping to change at line 68 | |||
* | * | |||
* Half duplex sound stream (created with #pjmedia_snd_open_rec() or | * Half duplex sound stream (created with #pjmedia_snd_open_rec() or | |||
* #pjmedia_snd_open_player()) will only need one of the callback to | * #pjmedia_snd_open_player()) will only need one of the callback to | |||
* be specified. | * be specified. | |||
* | * | |||
* After sound stream is created, application need to call | * After sound stream is created, application need to call | |||
* #pjmedia_snd_stream_start() to start capturing/playing back media | * #pjmedia_snd_stream_start() to start capturing/playing back media | |||
* frames from/to the sound device. | * frames from/to the sound device. | |||
*/ | */ | |||
/** Opaque data type for audio stream. */ | /** Opaque declaration for pjmedia_snd_stream. */ | |||
typedef struct pjmedia_snd_stream pjmedia_snd_stream; | typedef struct pjmedia_snd_stream pjmedia_snd_stream; | |||
/** | /** | |||
* Device information structure returned by #pjmedia_snd_get_dev_info. | * Device information structure returned by #pjmedia_snd_get_dev_info. | |||
*/ | */ | |||
typedef struct pjmedia_snd_dev_info | typedef struct pjmedia_snd_dev_info | |||
{ | { | |||
char name[64]; /**< Device name. */ | char name[64]; /**< Device name. */ | |||
unsigned input_count; /**< Max number of input channels. */ | unsigned input_count; /**< Max number of input channels. */ | |||
unsigned output_count; /**< Max number of output channels. */ | unsigned output_count; /**< Max number of output channels. */ | |||
End of changes. 6 change blocks. | ||||
4 lines changed or deleted | 9 lines changed or added | |||
sound_port.h | sound_port.h | |||
---|---|---|---|---|
/* $Id: sound_port.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: sound_port.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 27 | skipping to change at line 27 | |||
* 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 US A | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | |||
*/ | */ | |||
#ifndef __PJMEDIA_SOUND_PORT_H__ | #ifndef __PJMEDIA_SOUND_PORT_H__ | |||
#define __PJMEDIA_SOUND_PORT_H__ | #define __PJMEDIA_SOUND_PORT_H__ | |||
/** | /** | |||
* @file sound_port.h | * @file sound_port.h | |||
* @brief Media port connection abstraction to sound device. | * @brief Media port connection abstraction to sound device. | |||
*/ | */ | |||
#include <pjmedia/sound.h> | #include <pjmedia-audiodev/audiodev.h> | |||
#include <pjmedia/port.h> | #include <pjmedia/port.h> | |||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
* @defgroup PJMED_SND_PORT Sound Device Port | * @defgroup PJMED_SND_PORT Sound Device Port | |||
* @ingroup PJMEDIA_PORT_CLOCK | * @ingroup PJMEDIA_PORT_CLOCK | |||
* @brief Media Port Connection Abstraction to the Sound Device | * @brief Media Port Connection Abstraction to the Sound Device | |||
@{ | @{ | |||
skipping to change at line 163 | skipping to change at line 163 | |||
PJ_DECL(pj_status_t) pjmedia_snd_port_create_player(pj_pool_t *pool, | PJ_DECL(pj_status_t) pjmedia_snd_port_create_player(pj_pool_t *pool, | |||
int index, | int index, | |||
unsigned clock_rate, | unsigned clock_rate, | |||
unsigned channel_count, | unsigned channel_count, | |||
unsigned samples_per_fra me, | unsigned samples_per_fra me, | |||
unsigned bits_per_sample , | unsigned bits_per_sample , | |||
unsigned options, | unsigned options, | |||
pjmedia_snd_port **p_por t); | pjmedia_snd_port **p_por t); | |||
/** | /** | |||
* Create sound device port according to the specified parameters. | ||||
* | ||||
* @param pool Pool to allocate sound port structure. | ||||
* @param prm Sound device settings. | ||||
* @param p_port Pointer to receive the sound device port instanc | ||||
e. | ||||
* | ||||
* @return PJ_SUCCESS on success, or the appropriate error | ||||
* code. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjmedia_snd_port_create2(pj_pool_t *pool, | ||||
const pjmedia_aud_param *prm, | ||||
pjmedia_snd_port **p_port); | ||||
/** | ||||
* Destroy sound device port. | * Destroy sound device port. | |||
* | * | |||
* @param snd_port The sound device port. | * @param snd_port The sound device port. | |||
* | * | |||
* @return PJ_SUCCESS on success, or the appropriate error | * @return PJ_SUCCESS on success, or the appropriate error | |||
* code. | * code. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjmedia_snd_port_destroy(pjmedia_snd_port *snd_port); | PJ_DECL(pj_status_t) pjmedia_snd_port_destroy(pjmedia_snd_port *snd_port); | |||
/** | /** | |||
* Retrieve the sound stream associated by this sound device port. | * Retrieve the sound stream associated by this sound device port. | |||
* | * | |||
* @param snd_port The sound device port. | * @param snd_port The sound device port. | |||
* | * | |||
* @return The sound stream instance. | * @return The sound stream instance. | |||
*/ | */ | |||
PJ_DECL(pjmedia_snd_stream*) pjmedia_snd_port_get_snd_stream( | PJ_DECL(pjmedia_aud_stream*) pjmedia_snd_port_get_snd_stream( | |||
pjmedia_snd_port *snd_port); | pjmedia_snd_port *snd_port); | |||
/** | /** | |||
* Configure the echo cancellation tail length. By default, echo canceller | * Change the echo cancellation settings. The echo cancellation settings | |||
* is enabled in the sound device with the default tail length. After the | * should have been specified when this sound port was created, by setting | |||
* sound port is created, application can query the current echo canceller | * the appropriate fields in the pjmedia_aud_param, because not all sound | |||
* tail length by calling #pjmedia_snd_port_get_ec_tail. | * device implementation supports changing the EC setting once the device | |||
* | * has been opened. | |||
* Note that you should only change the EC settings when the sound port | * | |||
* is not connected to any downstream ports, otherwise race condition may | * The behavior of this function depends on whether device or software AEC | |||
* occur. | * is being used. If the device supports AEC, this function will forward | |||
* the change request to the device and it will be up to the device whether | ||||
* to support the request. If software AEC is being used (the software EC | ||||
* will be used if the device does not support AEC), this function will | ||||
* change the software EC settings. | ||||
* | * | |||
* @param snd_port The sound device port. | * @param snd_port The sound device port. | |||
* @param pool Pool to re-create the echo canceller if necessar y. | * @param pool Pool to re-create the echo canceller if necessar y. | |||
* @param tail_ms Maximum echo tail length to be supported, in | * @param tail_ms Maximum echo tail length to be supported, in | |||
* miliseconds. If zero is specified, the EC would | * miliseconds. If zero is specified, the EC would | |||
* be disabled. | * be disabled. | |||
* @param options The options to be passed to #pjmedia_echo_create (). | * @param options The options to be passed to #pjmedia_echo_create (). | |||
* This is only used if software EC is being used. | ||||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjmedia_snd_port_set_ec( pjmedia_snd_port *snd_port, | PJ_DECL(pj_status_t) pjmedia_snd_port_set_ec( pjmedia_snd_port *snd_port, | |||
pj_pool_t *pool, | pj_pool_t *pool, | |||
unsigned tail_ms, | unsigned tail_ms, | |||
unsigned options); | unsigned options); | |||
/** | /** | |||
* Get current echo canceller tail length, in miliseconds. The tail length | * Get current echo canceller tail length, in miliseconds. The tail length | |||
End of changes. 6 change blocks. | ||||
11 lines changed or deleted | 31 lines changed or added | |||
stream.h | stream.h | |||
---|---|---|---|---|
/* $Id: stream.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: stream.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 28 | skipping to change at line 28 | |||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | |||
*/ | */ | |||
#ifndef __PJMEDIA_STREAM_H__ | #ifndef __PJMEDIA_STREAM_H__ | |||
#define __PJMEDIA_STREAM_H__ | #define __PJMEDIA_STREAM_H__ | |||
/** | /** | |||
* @file stream.h | * @file stream.h | |||
* @brief Media Stream. | * @brief Media Stream. | |||
*/ | */ | |||
#include <pjmedia/sound.h> | ||||
#include <pjmedia/codec.h> | #include <pjmedia/codec.h> | |||
#include <pjmedia/endpoint.h> | #include <pjmedia/endpoint.h> | |||
#include <pjmedia/port.h> | #include <pjmedia/port.h> | |||
#include <pjmedia/rtcp.h> | #include <pjmedia/rtcp.h> | |||
#include <pjmedia/transport.h> | #include <pjmedia/transport.h> | |||
#include <pj/sock.h> | #include <pj/sock.h> | |||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
string_i.h | string_i.h | |||
---|---|---|---|---|
/* $Id: string_i.h 2819 2009-06-25 13:29:52Z bennylp $ */ | /* $Id: string_i.h 2394 2008-12-23 17:27:53Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 35 | skipping to change at line 35 | |||
pj_str_t dst; | pj_str_t dst; | |||
dst.ptr = str; | dst.ptr = str; | |||
dst.slen = str ? pj_ansi_strlen(str) : 0; | dst.slen = str ? pj_ansi_strlen(str) : 0; | |||
return dst; | return dst; | |||
} | } | |||
PJ_IDEF(pj_str_t*) pj_strdup(pj_pool_t *pool, | PJ_IDEF(pj_str_t*) pj_strdup(pj_pool_t *pool, | |||
pj_str_t *dst, | pj_str_t *dst, | |||
const pj_str_t *src) | const pj_str_t *src) | |||
{ | { | |||
/* Without this, destination will be corrupted */ | ||||
if (dst == src) | ||||
return dst; | ||||
if (src->slen) { | if (src->slen) { | |||
dst->ptr = (char*)pj_pool_alloc(pool, src->slen); | dst->ptr = (char*)pj_pool_alloc(pool, src->slen); | |||
pj_memcpy(dst->ptr, src->ptr, src->slen); | pj_memcpy(dst->ptr, src->ptr, src->slen); | |||
} | } | |||
dst->slen = src->slen; | dst->slen = src->slen; | |||
return dst; | return dst; | |||
} | } | |||
PJ_IDEF(pj_str_t*) pj_strdup_with_null( pj_pool_t *pool, | PJ_IDEF(pj_str_t*) pj_strdup_with_null( pj_pool_t *pool, | |||
pj_str_t *dst, | pj_str_t *dst, | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 1 lines changed or added | |||
stun_sock.h | stun_sock.h | |||
---|---|---|---|---|
/* $Id: stun_sock.h 2531 2009-03-23 13:02:53Z bennylp $ */ | /* $Id: stun_sock.h 2484 2009-03-04 12:56:32Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
symbian_sound_aps.h | symbian_sound_aps.h | |||
---|---|---|---|---|
/* $Id: symbian_sound_aps.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: symbian_sound_aps.h 2506 2009-03-12 18:11:37Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 33 | skipping to change at line 33 | |||
/** | /** | |||
* @file symbian_sound_aps.h | * @file symbian_sound_aps.h | |||
* @brief Sound device wrapper using Audio Proxy Server on | * @brief Sound device wrapper using Audio Proxy Server on | |||
* Symbian S60 3rd edition. | * Symbian S60 3rd edition. | |||
*/ | */ | |||
#include <pjmedia/types.h> | #include <pjmedia/types.h> | |||
PJ_BEGIN_DECL | PJ_BEGIN_DECL | |||
/** | /** | |||
* Activate/deactivate loudspeaker, when loudspeaker is inactive, audio | * Set audio routing for APS sound device. | |||
* will be routed to earpiece. | ||||
* | * | |||
* @param stream The sound device stream, the stream should be starte d | * @param stream The sound device stream, the stream should be starte d | |||
* before calling this function. This param can be NULL | * before calling this function. | |||
* to set the behaviour of next opened stream. | * @param route Audio routing to be set. | |||
* @param active Specify PJ_TRUE to activate loudspeaker, and PJ_FALS | ||||
E | ||||
* otherwise. | ||||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjmedia_snd_aps_activate_loudspeaker( | PJ_DECL(pj_status_t) pjmedia_snd_aps_set_route( pjmedia_snd_stream *stream, | |||
pjmedia_snd_stream *stream, | pjmedia_snd_route route); | |||
pj_bool_t active); | ||||
PJ_END_DECL | PJ_END_DECL | |||
#endif /* __PJMEDIA_SYMBIAN_SOUND_APS_H__ */ | #endif /* __PJMEDIA_SYMBIAN_SOUND_APS_H__ */ | |||
End of changes. 4 change blocks. | ||||
11 lines changed or deleted | 6 lines changed or added | |||
timer.h | timer.h | |||
---|---|---|---|---|
/* $Id: timer.h 2527 2009-03-23 11:57:55Z bennylp $ */ | /* $Id: timer.h 2512 2009-03-13 15:49:06Z bennylp $ */ | |||
/* | /* | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU General Public License for more details. | * GNU General Public License for more details. | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||