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

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