activesock.h   activesock.h 
/* $Id: activesock.h 3299 2010-08-27 06:46:29Z ming $ */ /* $Id: activesock.h 3350 2010-10-20 09:54:45Z 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 300 skipping to change at line 300
* Close the active socket. This will unregister the socket from the * Close the active socket. This will unregister the socket from the
* ioqueue and ultimately close the socket. * ioqueue and ultimately close the socket.
* *
* @param asock The active socket. * @param asock The active socket.
* *
* @return PJ_SUCCESS if the operation has been successful, * @return PJ_SUCCESS if the operation has been successful,
* or the appropriate error code on failure. * or the appropriate error code on failure.
*/ */
PJ_DECL(pj_status_t) pj_activesock_close(pj_activesock_t *asock); PJ_DECL(pj_status_t) pj_activesock_close(pj_activesock_t *asock);
#if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \ #if (defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \
PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0 PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0) || \
defined(DOXYGEN)
/** /**
* Set iPhone OS background mode setting. Setting to 1 will enable TCP * Set iPhone OS background mode setting. Setting to 1 will enable TCP
* active socket to receive incoming data when application is in the * active socket to receive incoming data when application is in the
* background. Setting to 0 will disable it. Default value of this * background. Setting to 0 will disable it. Default value of this
* setting is PJ_ACTIVESOCK_TCP_IPHONE_OS_BG. * setting is PJ_ACTIVESOCK_TCP_IPHONE_OS_BG.
* *
* This API is only available if PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT
* is set to non-zero.
*
* @param asock The active socket. * @param asock The active socket.
* @param val The value of background mode setting. * @param val The value of background mode setting.
* *
*/ */
PJ_DECL(void) pj_activesock_set_iphone_os_bg(pj_activesock_t *asock, PJ_DECL(void) pj_activesock_set_iphone_os_bg(pj_activesock_t *asock,
int val); int val);
/**
* Enable/disable support for iPhone OS background mode. This setting
* will apply globally and will affect any active sockets created
* afterwards, if you want to change the setting for a particular
* active socket, use #pj_activesock_set_iphone_os_bg() instead.
* By default, this setting is enabled.
*
* This API is only available if PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT
* is set to non-zero.
*
* @param val The value of global background mode setting.
*
*/
PJ_DECL(void) pj_activesock_enable_iphone_os_bg(pj_bool_t val);
#endif #endif
/** /**
* Associate arbitrary data with the active socket. Application may * Associate arbitrary data with the active socket. Application may
* inspect this data in the callbacks and associate it with higher * inspect this data in the callbacks and associate it with higher
* level processing. * level processing.
* *
* @param asock The active socket. * @param asock The active socket.
* @param user_data The user data to be associated with the active * @param user_data The user data to be associated with the active
* socket. * socket.
 End of changes. 4 change blocks. 
3 lines changed or deleted 22 lines changed or added


 amr_helper.h   amr_helper.h 
/* $Id: amr_helper.h 2875 2009-08-13 15:57:26Z bennylp $ */ /* $Id: amr_helper.h 3327 2010-09-30 04:23:27Z 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 596 skipping to change at line 596
*/ */
const pj_uint16_t pjmedia_codec_amrwb_framelenbits[10] = const pj_uint16_t pjmedia_codec_amrwb_framelenbits[10] =
{132, 177, 253, 285, 317, 365, 397, 461, 477, 40}; {132, 177, 253, 285, 317, 365, 397, 461, 477, 40};
/** /**
* Constant of AMR-WB bitrates. * Constant of AMR-WB bitrates.
*/ */
const pj_uint16_t pjmedia_codec_amrwb_bitrates[9] = const pj_uint16_t pjmedia_codec_amrwb_bitrates[9] =
{6600, 8850, 12650, 14250, 15850, 18250, 19850, 23050, 23850}; {6600, 8850, 12650, 14250, 15850, 18250, 19850, 23050, 23850};
/** /**
* This structure describes AMR frame info, to be fitted into @pjmedia_fram e * This structure describes AMR frame info, to be fitted into #pjmedia_fram e
* bit info. * bit info.
*/ */
#pragma pack(1) #pragma pack(1)
typedef struct pjmedia_codec_amr_bit_info { typedef struct pjmedia_codec_amr_bit_info {
pj_uint8_t frame_type; /**< AMR frame type. */ pj_uint8_t frame_type; /**< AMR frame type. */
pj_int8_t mode; /**< AMR mode. */ pj_int8_t mode; /**< AMR mode. */
pj_uint8_t start_bit; /**< Frame start bit. */ pj_uint8_t start_bit; /**< Frame start bit. */
pj_uint8_t good_quality:1; /**< Flag if frame is good/degraded. */ pj_uint8_t good_quality:1; /**< Flag if frame is good/degraded. */
} pjmedia_codec_amr_bit_info; } pjmedia_codec_amr_bit_info;
#pragma pack() #pragma pack()
skipping to change at line 709 skipping to change at line 709
return -1; 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 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.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_INLINE(pj_status_t) pjmedia_codec_amr_predecode( PJ_INLINE(pj_status_t) pjmedia_codec_amr_predecode(
const pjmedia_frame *in, const pjmedia_frame *in,
const pjmedia_codec_amr_pack_setting *setting, const pjmedia_codec_amr_pack_setting *setting,
pjmedia_frame *out) pjmedia_frame *out)
{ {
pj_int8_t amr_bits[477 + 7] = {0}; pj_int8_t amr_bits[477 + 7] = {0};
skipping to change at line 848 skipping to change at line 847
out_info->start_bit = 0; out_info->start_bit = 0;
return PJ_SUCCESS; return PJ_SUCCESS;
} }
/** /**
* Pack encoded AMR frame(s) into an RTP payload. * Pack encoded AMR frame(s) into an RTP payload.
* *
* @param frames AMR frames to be packed. * @param frames AMR frames to be packed.
* @param nframes Number of frames to be packed. * @param nframes Number of frames to be packed.
* @param setting Settings, see @pjmedia_codec_amr_pack_setting. * @param setting Settings, see #pjmedia_codec_amr_pack_setting.
* @param pkt Payload. * @param pkt Payload.
* @param pkt_size Payload size, as input this specifies payload maximum s ize, * @param pkt_size Payload size, as input this specifies payload maximum s ize,
* as output this specifies payload packed size. * as output this specifies payload packed size.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_INLINE (pj_status_t) pjmedia_codec_amr_pack( PJ_INLINE (pj_status_t) pjmedia_codec_amr_pack(
const pjmedia_frame frames[], const pjmedia_frame frames[],
unsigned nframes, unsigned nframes,
const pjmedia_codec_amr_pack_setting *setting, const pjmedia_codec_amr_pack_setting *setting,
skipping to change at line 1064 skipping to change at line 1063
return PJ_SUCCESS; return PJ_SUCCESS;
} }
/** /**
* Parse AMR payload into frames. * Parse AMR payload into frames.
* *
* @param pkt Payload. * @param pkt Payload.
* @param pkt_size Payload size. * @param pkt_size Payload size.
* @param ts Base timestamp. * @param ts Base timestamp.
* @param setting Settings, see @pjmedia_codec_amr_pack_setting. * @param setting Settings, see #pjmedia_codec_amr_pack_setting.
* @param frames Frames parsed. * @param frames Frames parsed.
* @param nframes Number of frames parsed. * @param nframes Number of frames parsed.
* @param cmr Change Mode Request message for local encoder. * @param cmr Change Mode Request message for local encoder.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_INLINE(pj_status_t) pjmedia_codec_amr_parse( PJ_INLINE(pj_status_t) pjmedia_codec_amr_parse(
void *pkt, void *pkt,
pj_size_t pkt_size, pj_size_t pkt_size,
const pj_timestamp *ts, const pj_timestamp *ts,
 End of changes. 6 change blocks. 
6 lines changed or deleted 5 lines changed or added


 audiodev.h   audiodev.h 
/* $Id: audiodev.h 3174 2010-05-17 12:51:06Z ming $ */ /* $Id: audiodev.h 3327 2010-09-30 04:23:27Z 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 449 skipping to change at line 449
*/ */
PJ_DECL(const char*) pjmedia_aud_dev_cap_name(pjmedia_aud_dev_cap cap, PJ_DECL(const char*) pjmedia_aud_dev_cap_name(pjmedia_aud_dev_cap cap,
const char **p_desc); const char **p_desc);
/** /**
* Set a capability field value in #pjmedia_aud_param structure. This will * Set a capability field value in #pjmedia_aud_param structure. This will
* also set the flags field for the specified capability in the structure. * also set the flags field for the specified capability in the structure.
* *
* @param param The structure. * @param param The structure.
* @param cap The audio capability which value is to be set. * @param cap The audio capability which value is to be set.
* @param value Pointer to value. Please see the type of val ue to * @param pval Pointer to value. Please see the type of value to
* be supplied in the pjmedia_aud_dev_cap documentation . * be supplied in the pjmedia_aud_dev_cap documentation .
* *
* @return PJ_SUCCESS on successful operation or the appropriat e * @return PJ_SUCCESS on successful operation or the appropriat e
* error code. * error code.
*/ */
PJ_DECL(pj_status_t) pjmedia_aud_param_set_cap(pjmedia_aud_param *param, PJ_DECL(pj_status_t) pjmedia_aud_param_set_cap(pjmedia_aud_param *param,
pjmedia_aud_dev_cap cap, pjmedia_aud_dev_cap cap,
const void *pval); const void *pval);
/** /**
* Get a capability field value from #pjmedia_aud_param structure. This * Get a capability field value from #pjmedia_aud_param structure. This
* function will return PJMEDIA_EAUD_INVCAP error if the flag for that * function will return PJMEDIA_EAUD_INVCAP error if the flag for that
* capability is not set in the flags field in the structure. * capability is not set in the flags field in the structure.
* *
* @param param The structure. * @param param The structure.
* @param cap The audio capability which value is to be retrieved. * @param cap The audio capability which value is to be retrieved.
* @param value Pointer to value. Please see the type of val ue to * @param pval Pointer to value. Please see the type of value to
* be supplied in the pjmedia_aud_dev_cap documentation . * be supplied in the pjmedia_aud_dev_cap documentation .
* *
* @return PJ_SUCCESS on successful operation or the appropriat e * @return PJ_SUCCESS on successful operation or the appropriat e
* error code. * error code.
*/ */
PJ_DECL(pj_status_t) pjmedia_aud_param_get_cap(const pjmedia_aud_param *par am, PJ_DECL(pj_status_t) pjmedia_aud_param_get_cap(const pjmedia_aud_param *par am,
pjmedia_aud_dev_cap cap, pjmedia_aud_dev_cap cap,
void *pval); void *pval);
/** /**
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 conference.h   conference.h 
/* $Id: conference.h 2728 2009-06-01 13:56:09Z nanang $ */ /* $Id: conference.h 3327 2010-09-30 04:23:27Z 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 233 skipping to change at line 233
* @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 * <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> * removed in the future release, use @ref 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
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 config.h   config.h 
/* $Id: config.h 3182 2010-05-19 06:07:40Z bennylp $ */ /* $Id: config.h 3316 2010-09-22 13:11:11Z ming $ */
/* /*
* 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 498 skipping to change at line 498
* Libraries sometimes needs to make copy of an address to stack buffer; * Libraries sometimes needs to make copy of an address to stack buffer;
* the value here affects the stack usage. * the value here affects the stack usage.
* *
* Default: 128 * Default: 128
*/ */
#ifndef PJ_MAX_HOSTNAME #ifndef PJ_MAX_HOSTNAME
# define PJ_MAX_HOSTNAME (128) # define PJ_MAX_HOSTNAME (128)
#endif #endif
/** /**
* Maximum consecutive identical error for accept() operation before
* activesock stops calling the next ioqueue accept.
*
* Default: 50
*/
#ifndef PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR
# define PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR 50
#endif
/**
* Constants for declaring the maximum handles that can be supported by * Constants for declaring the maximum handles that can be supported by
* a single IOQ framework. This constant might not be relevant to the * a single IOQ framework. This constant might not be relevant to the
* underlying I/O queue impelementation, but still, developers should be * underlying I/O queue impelementation, but still, developers should be
* aware of this constant, to make sure that the program will not break whe n * aware of this constant, to make sure that the program will not break whe n
* the underlying implementation changes. * the underlying implementation changes.
*/ */
#ifndef PJ_IOQUEUE_MAX_HANDLES #ifndef PJ_IOQUEUE_MAX_HANDLES
# define PJ_IOQUEUE_MAX_HANDLES (64) # define PJ_IOQUEUE_MAX_HANDLES (64)
#endif #endif
 End of changes. 2 change blocks. 
1 lines changed or deleted 11 lines changed or added


 config_site_sample.h   config_site_sample.h 
skipping to change at line 370 skipping to change at line 370
# 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
# define PJ_ENABLE_EXTRA_CHECK 0 # define PJ_ENABLE_EXTRA_CHECK 0
# define PJ_HAS_ERROR_STRING 0 # define PJ_HAS_ERROR_STRING 0
# undef PJ_IOQUEUE_MAX_HANDLES # undef PJ_IOQUEUE_MAX_HANDLES
/* Putting max handles to lower than 32 will make pj_fd_set_t size smaller /* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
* than native fdset_t and will trigger assertion on sock_select.c. * than native fdset_t and will trigger assertion on sock_select.c.
*/ */
# define PJ_IOQUEUE_MAX_HANDLES 32 # define PJ_IOQUEUE_MAX_HANDLES 32
# define PJ_CRC32_HAS_TABLES 0
# define PJSIP_MAX_TSX_COUNT 15 # define PJSIP_MAX_TSX_COUNT 15
# define PJSIP_MAX_DIALOG_COUNT 15 # define PJSIP_MAX_DIALOG_COUNT 15
# define PJSIP_UDP_SO_SNDBUF_SIZE 4000 # define PJSIP_UDP_SO_SNDBUF_SIZE 4000
# define PJSIP_UDP_SO_RCVBUF_SIZE 4000 # define PJSIP_UDP_SO_RCVBUF_SIZE 4000
# define PJMEDIA_HAS_LARGE_FILTER 0 # define PJMEDIA_HAS_ALAW_ULAW_TABLE 0
# define PJMEDIA_HAS_SMALL_FILTER 0
#elif defined(PJ_CONFIG_MAXIMUM_SPEED) #elif defined(PJ_CONFIG_MAXIMUM_SPEED)
# define PJ_SCANNER_USE_BITWISE 0 # define PJ_SCANNER_USE_BITWISE 0
# 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 3 # define PJ_LOG_MAX_LEVEL 3
# define PJ_ENABLE_EXTRA_CHECK 0 # define PJ_ENABLE_EXTRA_CHECK 0
# define PJ_IOQUEUE_MAX_HANDLES 5000 # define PJ_IOQUEUE_MAX_HANDLES 5000
# define PJSIP_MAX_TSX_COUNT ((640*1024)-1) # define PJSIP_MAX_TSX_COUNT ((640*1024)-1)
# define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1) # define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1)
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 delaybuf.h   delaybuf.h 
/* $Id: delaybuf.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: delaybuf.h 3327 2010-09-30 04:23:27Z 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 81 skipping to change at line 81
* from. * from.
* @param name Optional name for the buffer for log * @param name Optional name for the buffer for log
* identification. * identification.
* @param clock_rate Number of samples processed per second. * @param clock_rate Number of samples processed per second.
* @param samples_per_frame Number of samples per frame. * @param samples_per_frame Number of samples per frame.
* @param channel_count Number of channel per frame. * @param channel_count Number of channel per frame.
* @param max_delay Maximum number of delay to be accommodated, * @param max_delay Maximum number of delay to be accommodated,
* in ms, if this value is negative or less than * in ms, if this value is negative or less than
* one frame time, default maximum delay used is * one frame time, default maximum delay used is
* 400 ms. * 400 ms.
* @param option Option flags, must be zero for now. * @param options Option flags, must be zero for now.
* @param p_b Pointer to receive the delay buffer instance. * @param p_b Pointer to receive the delay buffer instance.
* *
* @return PJ_SUCCESS if the delay buffer has been * @return PJ_SUCCESS if the delay buffer has been
* created successfully, otherwise the appropriate * created successfully, otherwise the appropriate
* error will be returned. * error will be returned.
*/ */
PJ_DECL(pj_status_t) pjmedia_delay_buf_create(pj_pool_t *pool, PJ_DECL(pj_status_t) pjmedia_delay_buf_create(pj_pool_t *pool,
const char *name, const char *name,
unsigned clock_rate, unsigned clock_rate,
unsigned samples_per_frame, unsigned samples_per_frame,
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 http_client.h   http_client.h 
/* $Id: http_client.h 3227 2010-06-29 13:43:05Z ming $ */ /* $Id: http_client.h 3321 2010-09-27 08:35:08Z bennylp $ */
/* /*
* Copyright (C) 2008-2010 Teluu Inc. (http://www.teluu.com) * Copyright (C) 2008-2010 Teluu Inc. (http://www.teluu.com)
* *
* 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
skipping to change at line 52 skipping to change at line 52
*/ */
typedef struct pj_http_req pj_http_req; typedef struct pj_http_req pj_http_req;
/** /**
* Defines the maximum number of elements in a pj_http_headers * Defines the maximum number of elements in a pj_http_headers
* structure. * structure.
*/ */
#define PJ_HTTP_HEADER_SIZE 32 #define PJ_HTTP_HEADER_SIZE 32
/** /**
* HTTP header representation.
*/
typedef struct pj_http_header_elmt
{
pj_str_t name; /**< Header name */
pj_str_t value; /**< Header value */
} pj_http_header_elmt;
/**
* This structure describes http request/response headers. * This structure describes http request/response headers.
* Application should call #pj_http_headers_add_elmt() to * Application should call #pj_http_headers_add_elmt() to
* add a header field. * add a header field.
*/ */
typedef struct pj_http_headers typedef struct pj_http_headers
{ {
unsigned count; /**< Number of header fields */ /**< Number of header fields */
struct pj_http_header_elmt unsigned count;
{
pj_str_t name; /** Header elements/fields */
pj_str_t value; pj_http_header_elmt header[PJ_HTTP_HEADER_SIZE];
} header[PJ_HTTP_HEADER_SIZE]; /**< Header elements/fields */
} pj_http_headers; } pj_http_headers;
/** /**
* Structure to save HTTP authentication credential.
*/
typedef struct pj_http_auth_cred
{
/**
* Specify specific authentication schemes to be responded. Valid value
s
* are "basic" and "digest". If this field is not set, any authenticati
on
* schemes will be responded.
*
* Default is empty.
*/
pj_str_t scheme;
/**
* Specify specific authentication realm to be responded. If this field
* is set, only 401/407 response with matching realm will be responded.
* If this field is not set, any realms will be responded.
*
* Default is empty.
*/
pj_str_t realm;
/**
* Specify authentication username.
*
* Default is empty.
*/
pj_str_t username;
/**
* The type of password in \a data field. Currently only 0 is
* supported, meaning the \a data contains plain-text password.
*
* Default is 0.
*/
unsigned data_type;
/**
* Specify authentication password. The encoding of the password depend
s
* on the value of \a data_type field above.
*
* Default is empty.
*/
pj_str_t data;
} pj_http_auth_cred;
/**
* Parameters that can be given during http request creation. Application * Parameters that can be given during http request creation. Application
* must initialize this structure with #pj_http_req_param_default(). * must initialize this structure with #pj_http_req_param_default().
*/ */
typedef struct pj_http_req_param typedef struct pj_http_req_param
{ {
/** /**
* The address family of the URL. * The address family of the URL.
* Default is pj_AF_INET(). * Default is pj_AF_INET().
*/ */
int addr_family; int addr_family;
skipping to change at line 128 skipping to change at line 184
* *
* Default is empty. * Default is empty.
*/ */
struct pj_http_reqdata struct pj_http_reqdata
{ {
void *data; /**< Request body data */ void *data; /**< Request body data */
pj_size_t size; /**< Request body size */ pj_size_t size; /**< Request body size */
pj_size_t total_size; /**< If total_size > 0, data */ pj_size_t total_size; /**< If total_size > 0, data */
/**< will be provided later */ /**< will be provided later */
} reqdata; } reqdata;
/**
* Authentication credential needed to respond to 401/407 response.
*/
pj_http_auth_cred auth_cred;
} pj_http_req_param; } pj_http_req_param;
/** /**
* HTTP authentication challenge, parsed from WWW-Authenticate header.
*/
typedef struct pj_http_auth_chal
{
pj_str_t scheme; /**< Auth scheme. */
pj_str_t realm; /**< Realm for the challenge. */
pj_str_t domain; /**< Domain. */
pj_str_t nonce; /**< Nonce challenge. */
pj_str_t opaque; /**< Opaque value. */
int stale; /**< Stale parameter. */
pj_str_t algorithm; /**< Algorithm parameter. */
pj_str_t qop; /**< Quality of protection. */
} pj_http_auth_chal;
/**
* This structure describes HTTP response. * This structure describes HTTP response.
*/ */
typedef struct pj_http_resp typedef struct pj_http_resp
{ {
pj_str_t version; /**< HTTP version of the server */ pj_str_t version; /**< HTTP version of the server */
pj_uint16_t status_code; /**< Status code of the request */ pj_uint16_t status_code; /**< Status code of the request */
pj_str_t reason; /**< Reason phrase */ pj_str_t reason; /**< Reason phrase */
pj_http_headers headers; /**< Response headers */ pj_http_headers headers; /**< Response headers */
/** pj_http_auth_chal auth_chal; /**< Parsed WWW-Authenticate header, if
* The value of content-length header field. -1 if not any. */
* specified. pj_int32_t content_length; /**< The value of content-length header
*/ field. -1 if not specified. */
pj_int32_t content_length;
void *data; /**< Data received */ void *data; /**< Data received */
pj_size_t size; /**< Data size */ pj_size_t size; /**< Data size */
} pj_http_resp; } pj_http_resp;
/** /**
* This structure describes HTTP URL. * This structure describes HTTP URL.
*/ */
typedef struct pj_http_url typedef struct pj_http_url
{ {
pj_str_t username; /**< Username part */
pj_str_t passwd; /**< Password part */
pj_str_t protocol; /**< Protocol used */ pj_str_t protocol; /**< Protocol used */
pj_str_t host; /**< Host name */ pj_str_t host; /**< Host name */
pj_uint16_t port; /**< Port number */ pj_uint16_t port; /**< Port number */
pj_str_t path; /**< Path */ pj_str_t path; /**< Path */
} pj_http_url; } pj_http_url;
/** /**
* This structure describes the callbacks to be called by the HTTP request. * This structure describes the callbacks to be called by the HTTP request.
*/ */
typedef struct pj_http_req_callback typedef struct pj_http_req_callback
 End of changes. 8 change blocks. 
12 lines changed or deleted 93 lines changed or added


 pjsua_internal.h   pjsua_internal.h 
/* $Id: pjsua_internal.h 3216 2010-06-22 06:02:13Z bennylp $ */ /* $Id: pjsua_internal.h 3349 2010-10-20 05:31:08Z 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
pjsip_inv_session *inv; /**< The invite session. */ pjsip_inv_session *inv; /**< The invite session. */
void *user_data; /**< User/application data. */ void *user_data; /**< User/application data. */
pjsip_status_code last_code; /**< Last status code seen. */ pjsip_status_code last_code; /**< Last status code seen. */
pj_str_t last_text; /**< Last status text seen. */ pj_str_t last_text; /**< Last status text seen. */
pj_time_val start_time;/**< First INVITE sent/received. */ pj_time_val start_time;/**< First INVITE sent/received. */
pj_time_val res_time; /**< First response sent/receive d. */ pj_time_val res_time; /**< First response sent/receive d. */
pj_time_val conn_time; /**< Connected/confirmed time. */ pj_time_val conn_time; /**< Connected/confirmed time. */
pj_time_val dis_time; /**< Disconnect time. */ pj_time_val dis_time; /**< Disconnect time. */
pjsua_acc_id acc_id; /**< Account index being used. */ pjsua_acc_id acc_id; /**< Account index being used. */
int secure_level;/**< Signaling security level. */ int secure_level;/**< Signaling security level. */
pjsua_call_hold_type call_hold_type; /**< How to do call hold. */
pj_bool_t local_hold;/**< Flag for call-hold by local. */ pj_bool_t local_hold;/**< Flag for call-hold by local. */
pjsua_call_media_status media_st;/**< Media state. */ pjsua_call_media_status media_st;/**< Media state. */
pjmedia_dir media_dir; /**< Media direction. */ pjmedia_dir media_dir; /**< Media direction. */
pjmedia_session *session; /**< The media session. */ pjmedia_session *session; /**< The media session. */
int audio_idx; /**< Index of m=audio in SDP. */ int audio_idx; /**< Index of m=audio in SDP. */
pj_uint32_t ssrc; /**< RTP SSRC */ pj_uint32_t ssrc; /**< RTP SSRC */
pj_uint32_t rtp_tx_ts; /**< Initial RTP timestamp for s ender. */ pj_uint32_t rtp_tx_ts; /**< Initial RTP timestamp for s ender. */
pj_uint16_t rtp_tx_seq;/**< Initial RTP sequence for se nder. */ pj_uint16_t rtp_tx_seq;/**< Initial RTP sequence for se nder. */
pj_uint8_t rtp_tx_seq_ts_set; pj_uint8_t rtp_tx_seq_ts_set;
/**< Bitmask flags if initial RTP sequen ce /**< Bitmask flags if initial RTP sequen ce
skipping to change at line 95 skipping to change at line 96
pj_sockaddr med_rtp_addr; /**< Current RTP source addre ss pj_sockaddr med_rtp_addr; /**< Current RTP source addre ss
(used to update ICE default (used to update ICE default
address) */ address) */
pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint. */ pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint. */
pjmedia_srtp_use rem_srtp_use; /**< Remote's SRTP usage policy. */ pjmedia_srtp_use rem_srtp_use; /**< Remote's SRTP usage policy. */
char last_text_buf_[128]; /**< Buffer for last_text. */ char last_text_buf_[128]; /**< Buffer for last_text. */
struct { struct {
pj_timer_entry reinv_timer;/**< Reinvite retry timer. */ pj_timer_entry reinv_timer;/**< Reinvite retry timer. */
pjmedia_sdp_session *new_sdp;/**< The new SDP offer. pj_uint32_t sdp_ver; /**< SDP version of the bad answer
*/ */
int retry_cnt; /**< Retry count.
*/
} lock_codec; /**< Data for codec locking when answer } lock_codec; /**< Data for codec locking when answer
contains multiple codecs. */ contains multiple codecs. */
} pjsua_call; } pjsua_call;
/** /**
* Server presence subscription list head. * Server presence subscription list head.
*/ */
struct pjsua_srv_pres struct pjsua_srv_pres
{ {
 End of changes. 3 change blocks. 
3 lines changed or deleted 6 lines changed or added


 port.h   port.h 
/* $Id: port.h 3292 2010-08-24 10:45:01Z nanang $ */ /* $Id: port.h 3327 2010-09-30 04:23:27Z 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
#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
and extensible framework for implementing media terminations. A media and extensible framework for implementing media elements. Media element
itself could be a media source, sink, or processing element. A media
port interface basically has the following properties: port interface basically has the following properties:
- media port information (pjmedia_port_info) to describe the - media port information (pjmedia_port_info) to describe the
media port properties (sampling rate, number of channels, etc.), media port properties (sampling rate, number of channels, etc.),
- pointer to function to acquire frames from the port (<tt>get_frame() - optional pointer to function to acquire frames from the port (the
</tt> interface), which will be called by #pjmedia_port_get_frame() <tt>get_frame() </tt> interface), which will be called by
public API, and #pjmedia_port_get_frame() public API, and
- pointer to function to store frames to the port (<tt>put_frame()</tt> - optional pointer to function to store frames to the port (the
interface) which will be called by #pjmedia_port_put_frame() public <tt>put_frame()</tt> interface) which will be called by
API. #pjmedia_port_put_frame() public API.
Media ports are passive "objects". Applications (or other PJMEDIA The <tt>get_frame()</tt> and <tt>put_frame()</tt> interface of course
components) must actively calls #pjmedia_port_get_frame() or would only need to be implemented if the media port emits and/or takes
#pjmedia_port_put_frame() from/to the media port in order to retrieve/ media frames respectively.
store media frames.
Media ports are passive "objects". By default, there is no worker thread
to run the media flow. Applications (or other PJMEDIA
components, as explained in @ref PJMEDIA_PORT_CLOCK) must actively call
#pjmedia_port_get_frame() or #pjmedia_port_put_frame() from/to the media
port in order to retrieve/store media frames.
Some media ports (such as @ref PJMEDIA_CONF and @ref PJMEDIA_RESAMPLE_POR T) Some media ports (such as @ref PJMEDIA_CONF and @ref PJMEDIA_RESAMPLE_POR T)
may be interconnected with each other, while some may be interconnected with (or encapsulate) other port, to perform the
combined task of the ports, while some
others represent the ultimate source/sink termination for the media. others represent the ultimate source/sink termination for the media.
Interconnection means the upstream media port will call <tt>get_frame()</
tt>
and <tt>put_frame()</tt> to its downstream media port. For this to happen
,
the media ports need to have the same format, where format is defined as
combination of sample format, clock rate, channel count, bits per sample,
and samples per frame for audio media.
@subsection port_clock_ex1 Example: Manual Resampling @subsection port_clock_ex1 Example: Manual Resampling
For example, suppose application wants to convert the sampling rate For example, suppose application wants to convert the sampling rate
of one WAV file to another. In this case, application would create and of one WAV file to another. In this case, application would create and
arrange media ports connection as follows: arrange media ports connection as follows:
\image html sample-manual-resampling.jpg \image html sample-manual-resampling.jpg
Application would setup the media ports using the following pseudo- Application would setup the media ports using the following pseudo-
 End of changes. 5 change blocks. 
14 lines changed or deleted 28 lines changed or added


 presence.h   presence.h 
/* $Id: presence.h 2762 2009-06-15 16:03:40Z bennylp $ */ /* $Id: presence.h 3337 2010-10-12 11:35:55Z 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 304 skipping to change at line 304
/** /**
* This is a utility function to parse PIDF body into PJSIP presence status . * This is a utility function to parse PIDF body into PJSIP presence status .
* *
* @param rdata The incoming SIP message containing the PIDF body. * @param rdata The incoming SIP message containing the PIDF body.
* @param pool Pool to allocate memory to copy the strings into * @param pool Pool to allocate memory to copy the strings into
* the presence status structure. * the presence status structure.
* @param status The presence status to be initialized. * @param status The presence status to be initialized.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*
* @see pjsip_pres_parse_pidf2()
*/ */
PJ_DECL(pj_status_t) pjsip_pres_parse_pidf(pjsip_rx_data *rdata, PJ_DECL(pj_status_t) pjsip_pres_parse_pidf(pjsip_rx_data *rdata,
pj_pool_t *pool, pj_pool_t *pool,
pjsip_pres_status *status); pjsip_pres_status *status);
/** /**
* This is a utility function to parse PIDF body into PJSIP presence status
.
*
* @param body Text body, with one extra space at the end to place
* NULL character temporarily during parsing.
* @param body_len Length of the body, not including the NULL terminati
on
* character.
* @param pool Pool to allocate memory to copy the strings into
* the presence status structure.
* @param status The presence status to be initialized.
*
* @return PJ_SUCCESS on success.
*
* @see pjsip_pres_parse_pidf()
*/
PJ_DECL(pj_status_t) pjsip_pres_parse_pidf2(char *body, unsigned body_len,
pj_pool_t *pool,
pjsip_pres_status *status);
/**
* This is a utility function to parse X-PIDF body into PJSIP presence stat us. * This is a utility function to parse X-PIDF body into PJSIP presence stat us.
* *
* @param rdata The incoming SIP message containing the X-PI DF body. * @param rdata The incoming SIP message containing the X-PI DF body.
* @param pool Pool to allocate memory to copy the strings into * @param pool Pool to allocate memory to copy the strings into
* the presence status structure. * the presence status structure.
* @param status The presence status to be initialized. * @param status The presence status to be initialized.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*
* @see pjsip_pres_parse_xpidf2()
*/ */
PJ_DECL(pj_status_t) pjsip_pres_parse_xpidf(pjsip_rx_data *rdata, PJ_DECL(pj_status_t) pjsip_pres_parse_xpidf(pjsip_rx_data *rdata,
pj_pool_t *pool, pj_pool_t *pool,
pjsip_pres_status *status); pjsip_pres_status *status);
/** /**
* This is a utility function to parse X-PIDF body into PJSIP presence stat
us.
*
* @param body Text body, with one extra space at the end to place
* NULL character temporarily during parsing.
* @param body_len Length of the body, not including the NULL terminati
on
* character.
* @param pool Pool to allocate memory to copy the strings into
* the presence status structure.
* @param status The presence status to be initialized.
*
* @return PJ_SUCCESS on success.
*
* @see pjsip_pres_parse_xpidf()
*/
PJ_DECL(pj_status_t) pjsip_pres_parse_xpidf2(char *body, unsigned body_len,
pj_pool_t *pool,
pjsip_pres_status *status);
/**
* @} * @}
*/ */
PJ_END_DECL PJ_END_DECL
#endif /* __PJSIP_SIMPLE_PRESENCE_H__ */ #endif /* __PJSIP_SIMPLE_PRESENCE_H__ */
 End of changes. 5 change blocks. 
1 lines changed or deleted 47 lines changed or added


 rtcp_xr.h   rtcp_xr.h 
/* $Id: rtcp_xr.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: rtcp_xr.h 3327 2010-09-30 04:23:27Z 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 390 skipping to change at line 390
* Private APIs: * Private APIs:
*/ */
/** /**
* This function is called internally by RTCP session when RTCP XR is enabl ed * This function is called internally by RTCP session when RTCP XR is enabl ed
* to initialize the RTCP XR session. * to initialize the RTCP XR session.
* *
* @param session RTCP XR session. * @param session RTCP XR session.
* @param r_session RTCP session. * @param r_session RTCP session.
* @param gmin Gmin value (defined in RFC 3611), set to 0 for default (16). * @param gmin Gmin value (defined in RFC 3611), set to 0 for default (16).
* @param ptime Packet time.
* @param frames_per_packet * @param frames_per_packet
Number of frames per packet. Number of frames per packet.
*/ */
void pjmedia_rtcp_xr_init( pjmedia_rtcp_xr_session *session, void pjmedia_rtcp_xr_init( pjmedia_rtcp_xr_session *session,
struct pjmedia_rtcp_session *r_session, struct pjmedia_rtcp_session *r_session,
pj_uint8_t gmin, pj_uint8_t gmin,
unsigned frames_per_packet); unsigned frames_per_packet);
/** /**
* This function is called internally by RTCP session to destroy * This function is called internally by RTCP session to destroy
skipping to change at line 416 skipping to change at line 415
/** /**
* This function is called internally by RTCP session when it receives * This function is called internally by RTCP session when it receives
* incoming RTCP XR packets. * incoming RTCP XR packets.
* *
* @param session RTCP XR session. * @param session RTCP XR session.
* @param rtcp_pkt The received RTCP XR packet. * @param rtcp_pkt The received RTCP XR packet.
* @param size Size of the incoming packet. * @param size Size of the incoming packet.
*/ */
void pjmedia_rtcp_xr_rx_rtcp_xr( pjmedia_rtcp_xr_session *session, void pjmedia_rtcp_xr_rx_rtcp_xr( pjmedia_rtcp_xr_session *session,
const void *rtcp_xr_pkt, const void *rtcp_pkt,
pj_size_t size); pj_size_t size);
/** /**
* This function is called internally by RTCP session whenever an RTP packe t * This function is called internally by RTCP session whenever an RTP packe t
* is received or lost to let the RTCP XR session update its statistics. * is received or lost to let the RTCP XR session update its statistics.
* Data passed to this function is a result of analyzation by RTCP and the * Data passed to this function is a result of analyzation by RTCP and the
* jitter buffer. Whenever some info is available, the value should be zero * jitter buffer. Whenever some info is available, the value should be zero
* or more (no negative info), otherwise if info is not available the info * or more (no negative info), otherwise if info is not available the info
* should be -1 so no update will be done for this info in the RTCP XR sess ion. * should be -1 so no update will be done for this info in the RTCP XR sess ion.
* *
 End of changes. 3 change blocks. 
3 lines changed or deleted 2 lines changed or added


 sdp.h   sdp.h 
/* $Id: sdp.h 3198 2010-06-04 13:41:34Z nanang $ */ /* $Id: sdp.h 3327 2010-09-30 04:23:27Z 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 497 skipping to change at line 497
* *
* @return PJ_SUCCESS when both media transports are compatible, * @return PJ_SUCCESS when both media transports are compatible,
* otherwise returns PJMEDIA_SDP_ETPORTNOTEQUAL. * otherwise returns PJMEDIA_SDP_ETPORTNOTEQUAL.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_transport_cmp(const pj_str_t *t1, PJ_DECL(pj_status_t) pjmedia_sdp_transport_cmp(const pj_str_t *t1,
const pj_str_t *t2); const pj_str_t *t2);
/** /**
* Deactivate SDP media. * Deactivate SDP media.
* *
* @param pool Memory pool to allocate memory from.
* @param m The SDP media to deactivate. * @param m The SDP media to deactivate.
* *
* @return PJ_SUCCESS when SDP media successfully deactivated, * @return PJ_SUCCESS when SDP media successfully deactivated,
* otherwise appropriate status code returned. * otherwise appropriate status code returned.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_media_deactivate(pj_pool_t *pool, PJ_DECL(pj_status_t) pjmedia_sdp_media_deactivate(pj_pool_t *pool,
pjmedia_sdp_media *m); pjmedia_sdp_media *m);
/** /**
* Clone SDP media description and deactivate the new SDP media. * Clone SDP media description and deactivate the new SDP media.
* *
* @param pool Memory pool to allocate memory for the clone.
* @param rhs The SDP media to clone. * @param rhs The SDP media to clone.
* *
* @return New media descrption with deactivated indication. * @return New media descrption with deactivated indication.
*/ */
PJ_DECL(pjmedia_sdp_media*) pjmedia_sdp_media_clone_deactivate( PJ_DECL(pjmedia_sdp_media*) pjmedia_sdp_media_clone_deactivate(
pj_pool_t *pool, pj_pool_t *pool,
const pjmedia_sdp_media *rhs ); const pjmedia_sdp_media *rhs );
/* ************************************************************************ ** /* ************************************************************************ **
* SDP SESSION DESCRIPTION * SDP SESSION DESCRIPTION
skipping to change at line 638 skipping to change at line 640
unsigned option); unsigned option);
/** /**
* Add new attribute to the session descriptor. * Add new attribute to the session descriptor.
* *
* @param s The SDP session description. * @param s The SDP session description.
* @param attr Attribute to add. * @param attr Attribute to add.
* *
* @return PJ_SUCCESS or the appropriate error code. * @return PJ_SUCCESS or the appropriate error code.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_session_add_attr(pjmedia_sdp_session *m, PJ_DECL(pj_status_t) pjmedia_sdp_session_add_attr(pjmedia_sdp_session *s,
pjmedia_sdp_attr *attr); pjmedia_sdp_attr *attr);
PJ_END_DECL PJ_END_DECL
/** /**
* @} * @}
*/ */
#endif /* __PJMEDIA_SDP_H__ */ #endif /* __PJMEDIA_SDP_H__ */
 End of changes. 4 change blocks. 
2 lines changed or deleted 4 lines changed or added


 sip_config.h   sip_config.h 
/* $Id: sip_config.h 3182 2010-05-19 06:07:40Z bennylp $ */ /* $Id: sip_config.h 3329 2010-10-01 00:24:23Z 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 71 skipping to change at line 71
PJ_BEGIN_DECL PJ_BEGIN_DECL
/** /**
* This structure describes PJSIP run-time configurations/settings. * This structure describes PJSIP run-time configurations/settings.
* Application may use #pjsip_cfg() function to modify the settings * Application may use #pjsip_cfg() function to modify the settings
* before creating the stack. * before creating the stack.
*/ */
typedef struct pjsip_cfg_t typedef struct pjsip_cfg_t
{ {
/** Global settings. */
struct {
/**
* Specify port number should be allowed to appear in To and From
* header. Note that RFC 3261 disallow this, see Table 1 in section
* 19.1.1 of the RFC. Default is PJSIP_ALLOW_PORT_IN_FROMTO_HDR.
*/
pj_bool_t allow_port_in_fromto_hdr;
} endpt;
/** Transaction layer settings. */ /** Transaction layer settings. */
struct { struct {
/** Maximum number of transactions. The value is initialized with /** Maximum number of transactions. The value is initialized with
* PJSIP_MAX_TSX_COUNT * PJSIP_MAX_TSX_COUNT
*/ */
unsigned max_count; unsigned max_count;
/* Timeout values: */ /* Timeout values: */
skipping to change at line 349 skipping to change at line 360
* break certain applications). So normally it's disabled, unless * break certain applications). So normally it's disabled, unless
* when benchmarking (to show off big performance). * when benchmarking (to show off big performance).
* *
* Default: 0 * Default: 0
*/ */
#ifndef PJSIP_UNESCAPE_IN_PLACE #ifndef PJSIP_UNESCAPE_IN_PLACE
# define PJSIP_UNESCAPE_IN_PLACE 0 # define PJSIP_UNESCAPE_IN_PLACE 0
#endif #endif
/** /**
* Specify port number should be allowed to appear in To and From
* header. Note that RFC 3261 disallow this, see Table 1 in section
* 19.1.1 of the RFC. This setting can also be altered at run-time
* via pjsip_cfg setting, see pjsip_cfg_t.allow_port_in_fromto_hdr
* field.
*
* Default: 0
*/
#ifndef PJSIP_ALLOW_PORT_IN_FROMTO_HDR
# define PJSIP_ALLOW_PORT_IN_FROMTO_HDR 0
#endif
/**
* This macro controls maximum numbers of ioqueue events to be processed * This macro controls maximum numbers of ioqueue events to be processed
* in a single pjsip_endpt_handle_events() poll. When PJSIP detects that * in a single pjsip_endpt_handle_events() poll. When PJSIP detects that
* there are probably more events available from the network and total * there are probably more events available from the network and total
* events so far is less than this value, PJSIP will call pj_ioqueue_poll() * events so far is less than this value, PJSIP will call pj_ioqueue_poll()
* again to get more events. * again to get more events.
* *
* Value 1 works best for ioqueue with select() back-end, while for IOCP it is * Value 1 works best for ioqueue with select() back-end, while for IOCP it is
* probably best to set this value equal to PJSIP_MAX_TIMED_OUT_ENTRIES * probably best to set this value equal to PJSIP_MAX_TIMED_OUT_ENTRIES
* since IOCP only processes one event at a time. * since IOCP only processes one event at a time.
* *
 End of changes. 3 change blocks. 
1 lines changed or deleted 25 lines changed or added


 sip_errno.h   sip_errno.h 
/* $Id: sip_errno.h 3110 2010-02-25 11:58:19Z nanang $ */ /* $Id: sip_errno.h 3323 2010-09-28 07:43:18Z 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 98 skipping to change at line 98
/** /**
* @hideinitializer * @hideinitializer
* SIP stack is shutting down. * SIP stack is shutting down.
*/ */
#define PJSIP_ESHUTDOWN (PJSIP_ERRNO_START_PJSIP + 3) /* 1 71003 */ #define PJSIP_ESHUTDOWN (PJSIP_ERRNO_START_PJSIP + 3) /* 1 71003 */
/** /**
* @hideinitializer * @hideinitializer
* SIP object is not initialized. * SIP object is not initialized.
*/ */
#define PJSIP_ENOTINITIALIZED (PJSIP_ERRNO_START_PJSIP + 4) /* 171004 */ #define PJSIP_ENOTINITIALIZED (PJSIP_ERRNO_START_PJSIP + 4) /* 171004 */
/**
* @hideinitializer
* Missing route set (for tel: URI)
*/
#define PJSIP_ENOROUTESET (PJSIP_ERRNO_START_PJSIP + 5) /* 171005 */
/************************************************************ /************************************************************
* MESSAGING ERRORS * MESSAGING ERRORS
***********************************************************/ ***********************************************************/
/** /**
* @hideinitializer * @hideinitializer
* General invalid message error (e.g. syntax error) * General invalid message error (e.g. syntax error)
*/ */
#define PJSIP_EINVALIDMSG (PJSIP_ERRNO_START_PJSIP + 20) /* 171020 */ #define PJSIP_EINVALIDMSG (PJSIP_ERRNO_START_PJSIP + 20) /* 171020 */
/** /**
 End of changes. 2 change blocks. 
1 lines changed or deleted 6 lines changed or added


 sip_msg.h   sip_msg.h 
/* $Id: sip_msg.h 3241 2010-08-01 09:24:58Z bennylp $ */ /* $Id: sip_msg.h 3340 2010-10-13 09:41: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 537 skipping to change at line 537
*/ */
PJ_DECL(void) pjsip_media_type_init2(pjsip_media_type *mt, PJ_DECL(void) pjsip_media_type_init2(pjsip_media_type *mt,
char *type, char *type,
char *subtype); char *subtype);
/** /**
* Compare two media types. * Compare two media types.
* *
* @param mt1 The first media type. * @param mt1 The first media type.
* @param mt2 The second media type. * @param mt2 The second media type.
* @param cmp_param Specify how to compare the media type parameters:
* - 0: do not compare parameters
* - 1: compare parameters but ignore parameters that
* only appear in one of the media type.
* - 2: compare the parameters.
* *
* @return Zero if both media types are equal, -1 if mt1 < mt2, * @return Zero if both media types are equal, -1 if mt1 < mt2,
* 1 if mt1 > mt2. * 1 if mt1 > mt2.
*/ */
PJ_DECL(int) pjsip_media_type_cmp(const pjsip_media_type *mt1, PJ_DECL(int) pjsip_media_type_cmp(const pjsip_media_type *mt1,
const pjsip_media_type *mt2); const pjsip_media_type *mt2,
int cmp_param);
/** /**
* Copy SIP media type to another. * Copy SIP media type to another.
* *
* @param pool Pool to duplicate strings. * @param pool Pool to duplicate strings.
* @param dst Destination structure. * @param dst Destination structure.
* @param src Source structure. * @param src Source structure.
*/ */
PJ_DECL(void) pjsip_media_type_cp(pj_pool_t *pool, PJ_DECL(void) pjsip_media_type_cp(pj_pool_t *pool,
pjsip_media_type *dst, pjsip_media_type *dst,
 End of changes. 3 change blocks. 
2 lines changed or deleted 8 lines changed or added


 sip_transaction.h   sip_transaction.h 
/* $Id: sip_transaction.h 3138 2010-04-14 06:57:35Z nanang $ */ /* $Id: sip_transaction.h 3311 2010-09-15 07:42:14Z 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 88 skipping to change at line 88
*/ */
struct pjsip_transaction struct pjsip_transaction
{ {
/* /*
* Administrivia * Administrivia
*/ */
pj_pool_t *pool; /**< Pool owned by the tsx. */ pj_pool_t *pool; /**< Pool owned by the tsx. */
pjsip_module *tsx_user; /**< Transaction user. */ pjsip_module *tsx_user; /**< Transaction user. */
pjsip_endpoint *endpt; /**< Endpoint instance. */ pjsip_endpoint *endpt; /**< Endpoint instance. */
pj_mutex_t *mutex; /**< Mutex for this tsx. */ pj_mutex_t *mutex; /**< Mutex for this tsx. */
pj_mutex_t *mutex_b; /**< Second mutex to avoid
deadlock. It is used to
protect timer.
*/
/* /*
* Transaction identification. * Transaction identification.
*/ */
char obj_name[PJ_MAX_OBJ_NAME]; /**< Log info. */ char obj_name[PJ_MAX_OBJ_NAME]; /**< Log info. */
pjsip_role_e role; /**< Role (UAS or UAC) */ pjsip_role_e role; /**< Role (UAS or UAC) */
pjsip_method method; /**< The method. */ pjsip_method method; /**< The method. */
pj_int32_t cseq; /**< The CSeq */ pj_int32_t cseq; /**< The CSeq */
pj_str_t transaction_key;/**< Hash table key. */ pj_str_t transaction_key;/**< Hash table key. */
pj_uint32_t hashed_key; /**< Key's hashed va lue. */ pj_uint32_t hashed_key; /**< Key's hashed va lue. */
 End of changes. 2 change blocks. 
1 lines changed or deleted 5 lines changed or added


 stereo.h   stereo.h 
/* $Id: stereo.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: stereo.h 3327 2010-09-30 04:23:27Z 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
for (i=1; i<=channel_count; ++i) for (i=1; i<=channel_count; ++i)
multi[samples_per_frame-i] = *src; multi[samples_per_frame-i] = *src;
samples_per_frame -= channel_count; samples_per_frame -= channel_count;
--src; --src;
} }
return PJ_SUCCESS; return PJ_SUCCESS;
} }
/** /**
* Options for channel converter port. The @pjmedia_stereo_options is also * Options for channel converter port. The #pjmedia_stereo_options is also
* valid for this port options. * valid for this port options.
*/ */
enum pjmedia_stereo_port_options typedef enum pjmedia_stereo_port_options
{ {
/** /**
* Specifies whether this port should not destroy downstream port when * Specifies whether this port should not destroy downstream port when
* this port is destroyed. * this port is destroyed.
*/ */
PJMEDIA_STEREO_DONT_DESTROY_DN = 4 PJMEDIA_STEREO_DONT_DESTROY_DN = 4
}; } pjmedia_stereo_port_options;
/** /**
* Create a mono-multi channel converter port. This creates a converter ses sion, * Create a mono-multi channel converter port. This creates a converter ses sion,
* which will adjust the samples of audio frame to a different channel coun t * which will adjust the samples of audio frame to a different channel coun t
* when the port's get_frame() and put_frame() is called. * when the port's get_frame() and put_frame() is called.
* *
* When the port's get_frame() is called, this port will get a frame from * When the port's get_frame() is called, this port will get a frame from
* the downstream port and convert the frame to the target channel count be fore * the downstream port and convert the frame to the target channel count be fore
* returning it to the caller. * returning it to the caller.
* *
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added


 stream.h   stream.h 
/* $Id: stream.h 3237 2010-07-15 10:18:59Z nanang $ */ /* $Id: stream.h 3327 2010-09-30 04:23:27Z 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 128 skipping to change at line 128
and/or timestamp for sender are set . and/or timestamp for sender are set .
bit 0/LSB : sequence flag bit 0/LSB : sequence flag
bit 1 : timestamp flag */ bit 1 : timestamp flag */
int jb_init; /**< Jitter buffer init delay in msec. int jb_init; /**< Jitter buffer init delay in msec.
(-1 for default). */ (-1 for default). */
int jb_min_pre; /**< Jitter buffer minimum prefe tch int jb_min_pre; /**< Jitter buffer minimum prefe tch
delay in msec (-1 for default). */ delay in msec (-1 for default). */
int jb_max_pre; /**< Jitter buffer maximum prefe tch int jb_max_pre; /**< Jitter buffer maximum prefe tch
delay in msec (-1 for default). */ delay in msec (-1 for default). */
int jb_max; /**< Jitter buffer max delay in msec. */ int jb_max; /**< Jitter buffer max delay in msec. */
#if defined(PJMEDIA_STREAM_ENABLE_KA) && PJMEDIA_STREAM_ENABLE_KA!=0
pj_bool_t use_ka; /**< Stream keep-alive and NAT hole punc
h
(see #PJMEDIA_STREAM_ENABLE_KA)
is enabled?
*/
#endif
}; };
/** /**
* @see pjmedia_stream_info. * @see pjmedia_stream_info.
*/ */
typedef struct pjmedia_stream_info pjmedia_stream_info; typedef struct pjmedia_stream_info pjmedia_stream_info;
/** /**
* Create a media stream based on the specified parameter. After the stream * Create a media stream based on the specified parameter. After the stream
* has been created, application normally would want to get the media port * has been created, application normally would want to get the media port
 End of changes. 2 change blocks. 
1 lines changed or deleted 9 lines changed or added


 transport_ice.h   transport_ice.h 
/* $Id: transport_ice.h 2945 2009-10-14 13:13:18Z bennylp $ */ /* $Id: transport_ice.h 3327 2010-09-30 04:23:27Z 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 156 skipping to change at line 156
* @return PJ_SUCCESS on success, or the appropriate error code . * @return PJ_SUCCESS on success, or the appropriate error code .
*/ */
PJ_DECL(pj_status_t) pjmedia_ice_create(pjmedia_endpt *endpt, PJ_DECL(pj_status_t) pjmedia_ice_create(pjmedia_endpt *endpt,
const char *name, const char *name,
unsigned comp_cnt, unsigned comp_cnt,
const pj_ice_strans_cfg *cfg, const pj_ice_strans_cfg *cfg,
const pjmedia_ice_cb *cb, const pjmedia_ice_cb *cb,
pjmedia_transport **p_tp); pjmedia_transport **p_tp);
/** /**
* The same as @pjmedia_ice_create with additional \a options param. * The same as #pjmedia_ice_create() with additional \a options param.
* *
* @param endpt The media endpoint. * @param endpt The media endpoint.
* @param name Optional name to identify this ICE media transport * @param name Optional name to identify this ICE media transport
* for logging purposes. * for logging purposes.
* @param comp_cnt Number of components to be created. * @param comp_cnt Number of components to be created.
* @param cfg Pointer to configuration settings. * @param cfg Pointer to configuration settings.
* @param cb Optional structure containing ICE specific callbacks . * @param cb Optional structure containing ICE specific callbacks .
* @param options Options, see #pjmedia_transport_ice_options. * @param options Options, see #pjmedia_transport_ice_options.
* @param p_tp Pointer to receive the media transport instance. * @param p_tp Pointer to receive the media transport instance.
* *
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 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/