| account.hpp | | account.hpp | |
|
| /* $Id: account.hpp 4889 2014-08-18 09:09:18Z bennylp $ */ | | /* $Id: account.hpp 4957 2014-11-04 08:00:15Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2013 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2013 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 84 | | skipping to change at line 84 | |
| * default interval will be used (PJSUA_REG_INTERVAL, 300 seconds). | | * default interval will be used (PJSUA_REG_INTERVAL, 300 seconds). | |
| */ | | */ | |
| unsigned timeoutSec; | | unsigned timeoutSec; | |
| | | | |
| /** | | /** | |
| * Specify interval of auto registration retry upon registration failur
e | | * Specify interval of auto registration retry upon registration failur
e | |
| * (including caused by transport problem), in second. Set to 0 to | | * (including caused by transport problem), in second. Set to 0 to | |
| * disable auto re-registration. Note that if the registration retry | | * disable auto re-registration. Note that if the registration retry | |
| * occurs because of transport failure, the first retry will be done | | * occurs because of transport failure, the first retry will be done | |
| * after \a firstRetryIntervalSec seconds instead. Also note that | | * after \a firstRetryIntervalSec seconds instead. Also note that | |
|
| * the interval will be randomized slightly by approximately +/- ten | | * the interval will be randomized slightly by some seconds (specified | |
| * seconds to avoid all clients re-registering at the same time. | | * in \a reg_retry_random_interval) to avoid all clients re-registering | |
| | | * at the same time. | |
| * | | * | |
|
| * See also \a firstRetryIntervalSec setting. | | * See also \a firstRetryIntervalSec and \a randomRetryIntervalSec | |
| | | * settings. | |
| * | | * | |
| * Default: PJSUA_REG_RETRY_INTERVAL | | * Default: PJSUA_REG_RETRY_INTERVAL | |
| */ | | */ | |
| unsigned retryIntervalSec; | | unsigned retryIntervalSec; | |
| | | | |
| /** | | /** | |
| * This specifies the interval for the first registration retry. The | | * This specifies the interval for the first registration retry. The | |
| * registration retry is explained in \a retryIntervalSec. Note that | | * registration retry is explained in \a retryIntervalSec. Note that | |
|
| * the value here will also be randomized by +/- ten seconds. | | * the value here will also be randomized by some seconds (specified | |
| | | * in \a reg_retry_random_interval) to avoid all clients re-registering | |
| | | * at the same time. | |
| | | * | |
| | | * See also \a retryIntervalSec and \a randomRetryIntervalSec settings. | |
| * | | * | |
| * Default: 0 | | * Default: 0 | |
| */ | | */ | |
| unsigned firstRetryIntervalSec; | | unsigned firstRetryIntervalSec; | |
| | | | |
| /** | | /** | |
|
| | | * This specifies maximum randomized value to be added/substracted | |
| | | * to/from the registration retry interval specified in \a | |
| | | * reg_retry_interval and \a reg_first_retry_interval, in second. | |
| | | * This is useful to avoid all clients re-registering at the same time. | |
| | | * For example, if the registration retry interval is set to 100 second | |
| | | s | |
| | | * and this is set to 10 seconds, the actual registration retry interva | |
| | | l | |
| | | * will be in the range of 90 to 110 seconds. | |
| | | * | |
| | | * See also \a retryIntervalSec and \a firstRetryIntervalSec settings. | |
| | | * | |
| | | * Default: 10 | |
| | | */ | |
| | | unsigned randomRetryIntervalSec; | |
| | | | |
| | | /** | |
| * Specify the number of seconds to refresh the client registration | | * Specify the number of seconds to refresh the client registration | |
| * before the registration expires. | | * before the registration expires. | |
| * | | * | |
| * Default: PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH, 5 seconds | | * Default: PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH, 5 seconds | |
| */ | | */ | |
| unsigned delayBeforeRefreshSec; | | unsigned delayBeforeRefreshSec; | |
| | | | |
| /** | | /** | |
| * Specify whether calls of the configured account should be dropped | | * Specify whether calls of the configured account should be dropped | |
| * after registration failure and an attempt of re-registration has | | * after registration failure and an attempt of re-registration has | |
| | | | |
| skipping to change at line 125 | | skipping to change at line 146 | |
| * Default: FALSE (disabled) | | * Default: FALSE (disabled) | |
| */ | | */ | |
| bool dropCallsOnFail; | | bool dropCallsOnFail; | |
| | | | |
| /** | | /** | |
| * Specify the maximum time to wait for unregistration requests to | | * Specify the maximum time to wait for unregistration requests to | |
| * complete during library shutdown sequence. | | * complete during library shutdown sequence. | |
| * | | * | |
| * Default: PJSUA_UNREG_TIMEOUT | | * Default: PJSUA_UNREG_TIMEOUT | |
| */ | | */ | |
|
| unsigned unregWaitSec; | | unsigned unregWaitMsec; | |
| | | | |
| /** | | /** | |
| * Specify how the registration uses the outbound and account proxy | | * Specify how the registration uses the outbound and account proxy | |
| * settings. This controls if and what Route headers will appear in | | * settings. This controls if and what Route headers will appear in | |
| * the REGISTER request of this account. The value is bitmask combinati
on | | * the REGISTER request of this account. The value is bitmask combinati
on | |
| * of PJSUA_REG_USE_OUTBOUND_PROXY and PJSUA_REG_USE_ACC_PROXY bits. | | * of PJSUA_REG_USE_OUTBOUND_PROXY and PJSUA_REG_USE_ACC_PROXY bits. | |
| * If the value is set to 0, the REGISTER request will not use any prox
y | | * If the value is set to 0, the REGISTER request will not use any prox
y | |
| * (i.e. it will not have any Route headers). | | * (i.e. it will not have any Route headers). | |
| * | | * | |
| * Default: 3 (PJSUA_REG_USE_OUTBOUND_PROXY | PJSUA_REG_USE_ACC_PROXY) | | * Default: 3 (PJSUA_REG_USE_OUTBOUND_PROXY | PJSUA_REG_USE_ACC_PROXY) | |
| | | | |
End of changes. 6 change blocks. |
| 6 lines changed or deleted | | 29 lines changed or added | |
|
| amr_helper.h | | amr_helper.h | |
|
| /* $Id: amr_helper.h 3841 2011-10-24 09:28:13Z ming $ */ | | /* $Id: amr_helper.h 4932 2014-09-29 10:26:08Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 1142 | | skipping to change at line 1142 | |
| TOC = (pj_uint8_t)((*r++ & 0x03) << 4); | | TOC = (pj_uint8_t)((*r++ & 0x03) << 4); | |
| TOC |= *r >> 4; | | TOC |= *r >> 4; | |
| r_bitptr = 4; | | r_bitptr = 4; | |
| } | | } | |
| | | | |
| F = (pj_uint8_t)(TOC >> 5); | | F = (pj_uint8_t)(TOC >> 5); | |
| FT = (pj_uint8_t)((TOC >> 1) & 0x0F); | | FT = (pj_uint8_t)((TOC >> 1) & 0x0F); | |
| Q = (pj_uint8_t)(TOC & 1); | | Q = (pj_uint8_t)(TOC & 1); | |
| | | | |
| if (FT > SID_FT && FT < 14) { | | if (FT > SID_FT && FT < 14) { | |
|
| pj_assert(!"Invalid AMR frametype, stream may be corrupted!"); | | /* Discard the whole packet (RFC4867 4.3.2) */ | |
| | | //pj_assert(!"Invalid AMR frametype, stream may be corrupted!"); | |
| | | cnt = 0; | |
| | | PJ_LOG(4, ("AMR parser", "Invalid AMR frametype, stream may be " | |
| | | "corrupted!")); | |
| break; | | break; | |
| } | | } | |
| | | | |
| if (setting->octet_aligned) { | | if (setting->octet_aligned) { | |
| ++r; | | ++r; | |
| r_bitptr = 0; | | r_bitptr = 0; | |
| } | | } | |
| | | | |
| /* Set frame attributes */ | | /* Set frame attributes */ | |
| info = (pjmedia_codec_amr_bit_info*) &frames[cnt].bit_info; | | info = (pjmedia_codec_amr_bit_info*) &frames[cnt].bit_info; | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 6 lines changed or added | |
|
| call.hpp | | call.hpp | |
|
| /* $Id: call.hpp 4780 2014-03-06 01:02:26Z ming $ */ | | /* $Id: call.hpp 4996 2015-03-18 08:25:24Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2012-2013 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2012-2013 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 89 | | skipping to change at line 89 | |
| */ | | */ | |
| MathStat(); | | MathStat(); | |
| | | | |
| /** | | /** | |
| * Convert from pjsip | | * Convert from pjsip | |
| */ | | */ | |
| void fromPj(const pj_math_stat &prm); | | void fromPj(const pj_math_stat &prm); | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * Types of loss detected. | |
| | | */ | |
| | | struct LossType | |
| | | { | |
| | | unsigned burst; /**< Burst/sequential packet lost detected | |
| | | */ | |
| | | unsigned random; /**< Random packet lost detected. | |
| | | */ | |
| | | }; | |
| | | | |
| | | /** | |
| * Unidirectional RTP stream statistics. | | * Unidirectional RTP stream statistics. | |
| */ | | */ | |
| struct RtcpStreamStat | | struct RtcpStreamStat | |
| { | | { | |
| TimeVal update; /**< Time of last update.
*/ | | TimeVal update; /**< Time of last update.
*/ | |
| unsigned updateCount;/**< Number of updates (to calculate avg)
*/ | | unsigned updateCount;/**< Number of updates (to calculate avg)
*/ | |
| unsigned pkt; /**< Total number of packets
*/ | | unsigned pkt; /**< Total number of packets
*/ | |
| unsigned bytes; /**< Total number of payload/bytes
*/ | | unsigned bytes; /**< Total number of payload/bytes
*/ | |
| unsigned discard; /**< Total number of discarded packets.
*/ | | unsigned discard; /**< Total number of discarded packets.
*/ | |
| unsigned loss; /**< Total number of packets lost
*/ | | unsigned loss; /**< Total number of packets lost
*/ | |
| unsigned reorder; /**< Total number of out of order packets
*/ | | unsigned reorder; /**< Total number of out of order packets
*/ | |
| unsigned dup; /**< Total number of duplicates packets
*/ | | unsigned dup; /**< Total number of duplicates packets
*/ | |
| | | | |
| MathStat lossPeriodUsec; /**< Loss period statistics
*/ | | MathStat lossPeriodUsec; /**< Loss period statistics
*/ | |
| | | | |
|
| struct { | | LossType lossType; /**< Types of loss detected. | |
| unsigned burst; /**< Burst/sequential packet lost detected | | */ | |
| */ | | | |
| unsigned random; /**< Random packet lost detected. | | | |
| */ | | | |
| } lossType; /**< Types of loss detected. | | | |
| */ | | | |
| | | | |
| MathStat jitterUsec; /**< Jitter statistics
*/ | | MathStat jitterUsec; /**< Jitter statistics
*/ | |
| | | | |
| public: | | public: | |
| /** | | /** | |
| * Convert from pjsip | | * Convert from pjsip | |
| */ | | */ | |
| void fromPj(const pjmedia_rtcp_stream_stat &prm); | | void fromPj(const pjmedia_rtcp_stream_stat &prm); | |
| }; | | }; | |
| | | | |
| | | | |
| skipping to change at line 240 | | skipping to change at line 246 | |
| /** | | /** | |
| * This structure describes a media format changed event. | | * This structure describes a media format changed event. | |
| */ | | */ | |
| struct MediaFmtChangedEvent | | struct MediaFmtChangedEvent | |
| { | | { | |
| unsigned newWidth; /**< The new width. */ | | unsigned newWidth; /**< The new width. */ | |
| unsigned newHeight; /**< The new height. */ | | unsigned newHeight; /**< The new height. */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * Media event data. | |
| | | */ | |
| | | typedef union MediaEventData { | |
| | | /** | |
| | | * Media format changed event data. | |
| | | */ | |
| | | MediaFmtChangedEvent fmtChanged; | |
| | | | |
| | | /** | |
| | | * Pointer to storage to user event data, if it's outside | |
| | | * this struct | |
| | | */ | |
| | | GenericData ptr; | |
| | | | |
| | | } MediaEventData; | |
| | | | |
| | | /** | |
| * This structure describes a media event. It corresponds to the | | * This structure describes a media event. It corresponds to the | |
| * pjmedia_event structure. | | * pjmedia_event structure. | |
| */ | | */ | |
| struct MediaEvent | | struct MediaEvent | |
| { | | { | |
| /** | | /** | |
| * The event type. | | * The event type. | |
| */ | | */ | |
| pjmedia_event_type type; | | pjmedia_event_type type; | |
| | | | |
| /** | | /** | |
| * Additional data/parameters about the event. The type of data | | * Additional data/parameters about the event. The type of data | |
| * will be specific to the event type being reported. | | * will be specific to the event type being reported. | |
| */ | | */ | |
|
| union { | | MediaEventData data; | |
| /** | | | |
| * Media format changed event data. | | | |
| */ | | | |
| MediaFmtChangedEvent fmtChanged; | | | |
| | | | |
| /** | | | |
| * Pointer to storage to user event data, if it's outside | | | |
| * this struct | | | |
| */ | | | |
| GenericData ptr; | | | |
| } data; | | | |
| | | | |
| /** | | /** | |
| * Pointer to original pjmedia_event. Only valid when the struct | | * Pointer to original pjmedia_event. Only valid when the struct | |
| * is converted from PJSIP's pjmedia_event. | | * is converted from PJSIP's pjmedia_event. | |
| */ | | */ | |
| void *pjMediaEvent; | | void *pjMediaEvent; | |
| | | | |
| public: | | public: | |
| /** | | /** | |
| * Convert from pjsip | | * Convert from pjsip | |
| | | | |
| skipping to change at line 404 | | skipping to change at line 416 | |
| */ | | */ | |
| int audioConfSlot; | | int audioConfSlot; | |
| | | | |
| /** | | /** | |
| * The window id for incoming video, if any, or | | * The window id for incoming video, if any, or | |
| * PJSUA_INVALID_ID. Only valid if the media type is video. | | * PJSUA_INVALID_ID. Only valid if the media type is video. | |
| */ | | */ | |
| pjsua_vid_win_id videoIncomingWindowId; | | pjsua_vid_win_id videoIncomingWindowId; | |
| | | | |
| /** | | /** | |
|
| | | * The video window instance for incoming video. Only valid if | |
| | | * videoIncomingWindowId is not PJSUA_INVALID_ID and | |
| | | * the media type is video. | |
| | | */ | |
| | | VideoWindow videoWindow; | |
| | | | |
| | | /** | |
| * The video capture device for outgoing transmission, if any, | | * The video capture device for outgoing transmission, if any, | |
| * or PJMEDIA_VID_INVALID_DEV. Only valid if the media type is video. | | * or PJMEDIA_VID_INVALID_DEV. Only valid if the media type is video. | |
| */ | | */ | |
| pjmedia_vid_dev_index videoCapDev; | | pjmedia_vid_dev_index videoCapDev; | |
| | | | |
| public: | | public: | |
| /** | | /** | |
| * Default constructor | | * Default constructor | |
| */ | | */ | |
| CallMediaInfo(); | | CallMediaInfo(); | |
| | | | |
End of changes. 6 change blocks. |
| 20 lines changed or deleted | | 39 lines changed or added | |
|
| config.h | | config.h | |
|
| /* $Id: config.h 4913 2014-09-03 08:39:58Z nanang $ */ | | /* $Id: config.h 5062 2015-04-13 02:45:03Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 659 | | skipping to change at line 659 | |
| * set to value lower than FD_SETSIZE. | | * set to value lower than FD_SETSIZE. | |
| */ | | */ | |
| #if PJ_FD_SETSIZE_SETABLE | | #if PJ_FD_SETSIZE_SETABLE | |
| /* Only override FD_SETSIZE if the value has not been set */ | | /* Only override FD_SETSIZE if the value has not been set */ | |
| # ifndef FD_SETSIZE | | # ifndef FD_SETSIZE | |
| # define FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES | | # define FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES | |
| # endif | | # endif | |
| #else | | #else | |
| /* When FD_SETSIZE is not changeable, check if PJ_IOQUEUE_MAX_HANDLES | | /* When FD_SETSIZE is not changeable, check if PJ_IOQUEUE_MAX_HANDLES | |
| * is lower than FD_SETSIZE value. | | * is lower than FD_SETSIZE value. | |
|
| | | * | |
| | | * Update: Not all ioqueue backends require this (such as epoll), so | |
| | | * this check will be done on the ioqueue implementation itself, such a | |
| | | s | |
| | | * ioqueue select. | |
| */ | | */ | |
|
| | | /* | |
| # ifdef FD_SETSIZE | | # ifdef FD_SETSIZE | |
| # if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE | | # if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE | |
| # error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE" | | # error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE" | |
| # endif | | # endif | |
| # endif | | # endif | |
|
| | | */ | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Specify whether #pj_enum_ip_interface() function should exclude | | * Specify whether #pj_enum_ip_interface() function should exclude | |
| * loopback interfaces. | | * loopback interfaces. | |
| * | | * | |
| * Default: 1 | | * Default: 1 | |
| */ | | */ | |
| #ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF | | #ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF | |
| # define PJ_IP_HELPER_IGNORE_LOOPBACK_IF 1 | | # define PJ_IP_HELPER_IGNORE_LOOPBACK_IF 1 | |
| | | | |
| skipping to change at line 1151 | | skipping to change at line 1157 | |
| #if !defined(PJ_THREAD_ALLOCATE_STACK) | | #if !defined(PJ_THREAD_ALLOCATE_STACK) | |
| # error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h" | | # error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h" | |
| #endif | | #endif | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /** PJLIB version major number. */ | | /** PJLIB version major number. */ | |
| #define PJ_VERSION_NUM_MAJOR 2 | | #define PJ_VERSION_NUM_MAJOR 2 | |
| | | | |
| /** PJLIB version minor number. */ | | /** PJLIB version minor number. */ | |
|
| #define PJ_VERSION_NUM_MINOR 3 | | #define PJ_VERSION_NUM_MINOR 4 | |
| | | | |
| /** PJLIB version revision number. */ | | /** PJLIB version revision number. */ | |
| #define PJ_VERSION_NUM_REV 0 | | #define PJ_VERSION_NUM_REV 0 | |
| | | | |
| /** | | /** | |
| * Extra suffix for the version (e.g. "-trunk"), or empty for | | * Extra suffix for the version (e.g. "-trunk"), or empty for | |
| * web release version. | | * web release version. | |
| */ | | */ | |
| #define PJ_VERSION_NUM_EXTRA "" | | #define PJ_VERSION_NUM_EXTRA "" | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 2 lines changed or deleted | | 9 lines changed or added | |
|
| config_site_sample.h | | config_site_sample.h | |
| | | | |
| skipping to change at line 318 | | skipping to change at line 318 | |
| /* We have our own native CoreAudio backend */ | | /* We have our own native CoreAudio backend */ | |
| #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | | #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | |
| #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 | | #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 | |
| #define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1 | | #define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1 | |
| | | | |
| /* The CoreAudio backend has built-in echo canceller! */ | | /* The CoreAudio backend has built-in echo canceller! */ | |
| #define PJMEDIA_HAS_SPEEX_AEC 0 | | #define PJMEDIA_HAS_SPEEX_AEC 0 | |
| | | | |
| /* Disable some codecs */ | | /* Disable some codecs */ | |
| #define PJMEDIA_HAS_L16_CODEC 0 | | #define PJMEDIA_HAS_L16_CODEC 0 | |
|
| #define PJMEDIA_HAS_G722_CODEC 0 | | //#define PJMEDIA_HAS_G722_CODEC 0 | |
| | | | |
| /* Use the built-in CoreAudio's iLBC codec (yay!) */ | | /* Use the built-in CoreAudio's iLBC codec (yay!) */ | |
| #define PJMEDIA_HAS_ILBC_CODEC 1 | | #define PJMEDIA_HAS_ILBC_CODEC 1 | |
| #define PJMEDIA_ILBC_CODEC_USE_COREAUDIO 1 | | #define PJMEDIA_ILBC_CODEC_USE_COREAUDIO 1 | |
| | | | |
| /* Fine tune Speex's default settings for best performance/quality */ | | /* Fine tune Speex's default settings for best performance/quality */ | |
| #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | | #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | |
| | | | |
| /* | | /* | |
| * PJSIP settings. | | * PJSIP settings. | |
| | | | |
| skipping to change at line 384 | | skipping to change at line 384 | |
| */ | | */ | |
| | | | |
| /* We have our own OpenSL ES backend */ | | /* We have our own OpenSL ES backend */ | |
| #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | | #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 | |
| #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 | | #define PJMEDIA_AUDIO_DEV_HAS_WMME 0 | |
| #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0 | | #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0 | |
| #define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 1 | | #define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 1 | |
| | | | |
| /* Disable some codecs */ | | /* Disable some codecs */ | |
| #define PJMEDIA_HAS_L16_CODEC 0 | | #define PJMEDIA_HAS_L16_CODEC 0 | |
|
| #define PJMEDIA_HAS_G722_CODEC 0 | | //#define PJMEDIA_HAS_G722_CODEC 0 | |
| | | | |
| /* Fine tune Speex's default settings for best performance/quality */ | | /* Fine tune Speex's default settings for best performance/quality */ | |
| #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | | #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 | |
| | | | |
| /* | | /* | |
| * PJSIP settings. | | * PJSIP settings. | |
| */ | | */ | |
| | | | |
| /* Increase allowable packet size, just in case */ | | /* Increase allowable packet size, just in case */ | |
| //#define PJSIP_MAX_PKT_LEN 2000 | | //#define PJSIP_MAX_PKT_LEN 2000 | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| format.h | | format.h | |
|
| /* $Id: format.h 4785 2014-03-10 09:01:18Z nanang $ */ | | /* $Id: format.h 4994 2015-03-17 04:02:44Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 179 | | skipping to change at line 179 | |
| | | | |
| /** | | /** | |
| * This is planar 4:2:0/12bpp YUV format, similar to I420 or IYUV but | | * This is planar 4:2:0/12bpp YUV format, similar to I420 or IYUV but | |
| * the U (Cb) and V (Cr) planes order is switched, i.e: the second plan
e | | * the U (Cb) and V (Cr) planes order is switched, i.e: the second plan
e | |
| * contains the V (Cb) samples and the third plane contains the V (Cr) | | * contains the V (Cb) samples and the third plane contains the V (Cr) | |
| * samples. | | * samples. | |
| */ | | */ | |
| PJMEDIA_FORMAT_YV12 = PJMEDIA_FORMAT_PACK('Y', 'V', '1', '2'
), | | PJMEDIA_FORMAT_YV12 = PJMEDIA_FORMAT_PACK('Y', 'V', '1', '2'
), | |
| | | | |
| /** | | /** | |
|
| | | * This is planar 4:2:0/12bpp YUV format, the data can be treated as | |
| | | * two planes of color components, where the first plane contains | |
| | | * only the Y samples, the second plane contains interleaved | |
| | | * V (Cr) - U (Cb) samples. | |
| | | */ | |
| | | PJMEDIA_FORMAT_NV21 = PJMEDIA_FORMAT_PACK('N', 'V', '2', '1' | |
| | | ), | |
| | | | |
| | | /** | |
| * This is planar 4:2:2/16bpp YUV format, the data can be treated as | | * This is planar 4:2:2/16bpp YUV format, the data can be treated as | |
| * three planes of color components, where the first plane contains | | * three planes of color components, where the first plane contains | |
| * only the Y samples, the second plane contains only the U (Cb) sample
s, | | * only the Y samples, the second plane contains only the U (Cb) sample
s, | |
| * and the third plane contains only the V (Cr) sample. | | * and the third plane contains only the V (Cr) sample. | |
| */ | | */ | |
| PJMEDIA_FORMAT_I422 = PJMEDIA_FORMAT_PACK('I', '4', '2', '2'
), | | PJMEDIA_FORMAT_I422 = PJMEDIA_FORMAT_PACK('I', '4', '2', '2'
), | |
| | | | |
| /** | | /** | |
| * The JPEG version of planar 4:2:0/12bpp YUV format. | | * The JPEG version of planar 4:2:0/12bpp YUV format. | |
| */ | | */ | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 10 lines changed or added | |
|
| g7221.h | | g7221.h | |
|
| /* $Id: g7221.h 3553 2011-05-05 06:14:19Z nanang $ */ | | /* $Id: g7221.h 5058 2015-04-09 08:15:48Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 79 | | skipping to change at line 79 | |
| * - for 7kHz audio bandwidth (16kHz sampling rate): 24kbps and 32kbps, | | * - for 7kHz audio bandwidth (16kHz sampling rate): 24kbps and 32kbps, | |
| * - for 14kHz audio bandwidth (32kHz sampling rate): 24kbps, 32kbps, and | | * - for 14kHz audio bandwidth (32kHz sampling rate): 24kbps, 32kbps, and | |
| * 48kbps. | | * 48kbps. | |
| * | | * | |
| * The usage of non-standard bitrates must follow these requirements: | | * The usage of non-standard bitrates must follow these requirements: | |
| * - for 7kHz audio bandwidth (16kHz sampling rate): 16000 to 32000 bps, | | * - for 7kHz audio bandwidth (16kHz sampling rate): 16000 to 32000 bps, | |
| * multiplication of 400 | | * multiplication of 400 | |
| * - for 14kHz audio bandwidth (32kHz sampling rate): 24000 to 48000 bps, | | * - for 14kHz audio bandwidth (32kHz sampling rate): 24000 to 48000 bps, | |
| * multiplication of 400 | | * multiplication of 400 | |
| * | | * | |
|
| | | * The bitrate is set via <tt>param.setting.dec_fmtp</tt>, if it does not | |
| | | * contain bitrate info, the codec will check <tt>param.info.avg_bps</tt>. | |
| | | * | |
| * \note | | * \note | |
| * Currently only up to two non-standard modes can be enabled. | | * Currently only up to two non-standard modes can be enabled. | |
| * | | * | |
| * \remark | | * \remark | |
| * There is a flaw in the codec manager as currently it could not | | * There is a flaw in the codec manager as currently it could not | |
| * differentiate G.722.1 codecs by bitrates, hence invoking | | * differentiate G.722.1 codecs by bitrates, hence invoking | |
| * #pjmedia_codec_mgr_set_default_param() may only affect a G.722.1 codec | | * #pjmedia_codec_mgr_set_default_param() may only affect a G.722.1 codec | |
| * with the highest priority (or first index found in codec enumeration | | * with the highest priority (or first index found in codec enumeration | |
| * when they have same priority) and invoking | | * when they have same priority) and invoking | |
| * #pjmedia_codec_mgr_set_codec_priority() will set priority of all G.722.1 | | * #pjmedia_codec_mgr_set_codec_priority() will set priority of all G.722.1 | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 4 lines changed or added | |
|
| lock.h | | lock.h | |
|
| /* $Id: lock.h 4359 2013-02-21 11:18:36Z bennylp $ */ | | /* $Id: lock.h 4992 2015-03-06 06:09:22Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 212 | | skipping to change at line 212 | |
| * @param cfg Optional configuration. | | * @param cfg Optional configuration. | |
| * @param p_grp_lock Pointer to receive the newly created group lock. | | * @param p_grp_lock Pointer to receive the newly created group lock. | |
| * | | * | |
| * @return PJ_SUCCESS or the appropriate error code. | | * @return PJ_SUCCESS or the appropriate error code. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_grp_lock_create(pj_pool_t *pool, | | PJ_DECL(pj_status_t) pj_grp_lock_create(pj_pool_t *pool, | |
| const pj_grp_lock_config *cfg, | | const pj_grp_lock_config *cfg, | |
| pj_grp_lock_t **p_grp_lock); | | pj_grp_lock_t **p_grp_lock); | |
| | | | |
| /** | | /** | |
|
| | | * Create a group lock object, with the specified destructor handler, to be | |
| | | * called by the group lock when it is about to be destroyed. Initially the | |
| | | * group lock will have reference counter of one. | |
| | | * | |
| | | * @param pool The group lock only uses the pool parameter to get | |
| | | * the pool factory, from which it will create its own | |
| | | * pool. | |
| | | * @param cfg Optional configuration. | |
| | | * @param member A pointer to be passed to the handler. | |
| | | * @param handler The destroy handler. | |
| | | * @param p_grp_lock Pointer to receive the newly created group lock. | |
| | | * | |
| | | * @return PJ_SUCCESS or the appropriate error code. | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pj_grp_lock_create_w_handler(pj_pool_t *pool, | |
| | | const pj_grp_lock_config * | |
| | | cfg, | |
| | | void *member, | |
| | | void (*handler)(void *mem | |
| | | ber), | |
| | | pj_grp_lock_t **p_grp_lock | |
| | | ); | |
| | | | |
| | | /** | |
| * Forcibly destroy the group lock, ignoring the reference counter value. | | * Forcibly destroy the group lock, ignoring the reference counter value. | |
| * | | * | |
| * @param grp_lock The group lock. | | * @param grp_lock The group lock. | |
| * | | * | |
| * @return PJ_SUCCESS or the appropriate error code. | | * @return PJ_SUCCESS or the appropriate error code. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_grp_lock_destroy( pj_grp_lock_t *grp_lock); | | PJ_DECL(pj_status_t) pj_grp_lock_destroy( pj_grp_lock_t *grp_lock); | |
| | | | |
| /** | | /** | |
| * Move the contents of the old lock to the new lock and destroy the | | * Move the contents of the old lock to the new lock and destroy the | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 25 lines changed or added | |
|
| media.hpp | | media.hpp | |
|
| /* $Id: media.hpp 4845 2014-05-19 05:51:10Z bennylp $ */ | | /* $Id: media.hpp 4996 2015-03-18 08:25:24Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2013 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2013 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 1327 | | skipping to change at line 1327 | |
| */ | | */ | |
| ~AudDevManager(); | | ~AudDevManager(); | |
| | | | |
| void clearAudioDevList(); | | void clearAudioDevList(); | |
| int getActiveDev(bool is_capture) const throw(Error); | | int getActiveDev(bool is_capture) const throw(Error); | |
| | | | |
| friend class Endpoint; | | friend class Endpoint; | |
| }; | | }; | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
|
| | | * Video media | |
| | | */ | |
| | | | |
| | | /** | |
| | | * Representation of media coordinate. | |
| | | */ | |
| | | struct MediaCoordinate | |
| | | { | |
| | | int x; /**< X position of the coordinate */ | |
| | | int y; /**< Y position of the coordinate */ | |
| | | }; | |
| | | | |
| | | /** | |
| | | * Representation of media size. | |
| | | */ | |
| | | struct MediaSize | |
| | | { | |
| | | unsigned w; /**< The width. */ | |
| | | unsigned h; /**< The height. */ | |
| | | }; | |
| | | | |
| | | /** | |
| | | * Window handle. | |
| | | */ | |
| | | typedef struct WindowHandle { | |
| | | void *window; /**< Window */ | |
| | | void *display; /**< Display */ | |
| | | } WindowHandle; | |
| | | | |
| | | /** | |
| | | * Video window handle. | |
| | | */ | |
| | | struct VideoWindowHandle | |
| | | { | |
| | | /** | |
| | | * The window handle type. | |
| | | */ | |
| | | pjmedia_vid_dev_hwnd_type type; | |
| | | | |
| | | /** | |
| | | * The window handle. | |
| | | */ | |
| | | WindowHandle handle; | |
| | | }; | |
| | | | |
| | | /** | |
| | | * This structure describes video window info. | |
| | | */ | |
| | | typedef struct VideoWindowInfo | |
| | | { | |
| | | /** | |
| | | * Flag to indicate whether this window is a native window, | |
| | | * such as created by built-in preview device. If this field is | |
| | | * true, only the video window handle field of this | |
| | | * structure is valid. | |
| | | */ | |
| | | bool isNative; | |
| | | | |
| | | /** | |
| | | * Video window handle. | |
| | | */ | |
| | | VideoWindowHandle winHandle; | |
| | | | |
| | | /** | |
| | | * Renderer device ID. | |
| | | */ | |
| | | int renderDeviceId; | |
| | | | |
| | | /** | |
| | | * Window show status. The window is hidden if false. | |
| | | */ | |
| | | bool show; | |
| | | | |
| | | /** | |
| | | * Window position. | |
| | | */ | |
| | | MediaCoordinate pos; | |
| | | | |
| | | /** | |
| | | * Window size. | |
| | | */ | |
| | | MediaSize size; | |
| | | | |
| | | } VideoWindowInfo; | |
| | | | |
| | | /** | |
| | | * Video window. | |
| | | */ | |
| | | class VideoWindow | |
| | | { | |
| | | public: | |
| | | /** | |
| | | * Constructor | |
| | | */ | |
| | | VideoWindow(int win_id); | |
| | | | |
| | | /** | |
| | | * Get window info. | |
| | | * | |
| | | * @return video window info. | |
| | | */ | |
| | | VideoWindowInfo getInfo() const throw(Error); | |
| | | | |
| | | /** | |
| | | * Show or hide window. This operation is not valid for native windows | |
| | | * (VideoWindowInfo.isNative=true), on which native windowing API | |
| | | * must be used instead. | |
| | | * | |
| | | * @param show Set to true to show the window, false to | |
| | | * hide the window. | |
| | | * | |
| | | */ | |
| | | void Show(bool show) throw(Error); | |
| | | | |
| | | /** | |
| | | * Set video window position. This operation is not valid for native wi | |
| | | ndows | |
| | | * (VideoWindowInfo.isNative=true), on which native windowing API | |
| | | * must be used instead. | |
| | | * | |
| | | * @param pos The window position. | |
| | | * | |
| | | */ | |
| | | void setPos(const MediaCoordinate &pos) throw(Error); | |
| | | | |
| | | /** | |
| | | * Resize window. This operation is not valid for native windows | |
| | | * (VideoWindowInfo.isNative=true), on which native windowing API | |
| | | * must be used instead. | |
| | | * | |
| | | * @param size The new window size. | |
| | | * | |
| | | */ | |
| | | void setSize(const MediaSize &size) throw(Error); | |
| | | | |
| | | /** | |
| | | * Rotate the video window. This function will change the video orienta | |
| | | tion | |
| | | * and also possibly the video window size (width and height get swappe | |
| | | d). | |
| | | * This operation is not valid for native windows (VideoWindowInfo.isNa | |
| | | tive | |
| | | * =true), on which native windowing API must be used instead. | |
| | | * | |
| | | * @param angle The rotation angle in degrees, must be | |
| | | * multiple of 90. | |
| | | * Specify positive value for clockwise rotatio | |
| | | n or | |
| | | * negative value for counter-clockwise rotatio | |
| | | n. | |
| | | */ | |
| | | void rotate(int angle) throw(Error); | |
| | | | |
| | | /** | |
| | | * Set output window. This operation is valid only when the underlying | |
| | | * video device supports PJMEDIA_VIDEO_DEV_CAP_OUTPUT_WINDOW capability | |
| | | AND | |
| | | * allows the output window to be changed on-the-fly, otherwise Error w | |
| | | ill | |
| | | * be thrown. Currently it is only supported on Android. | |
| | | * | |
| | | * @param win The new output window. | |
| | | */ | |
| | | void setWindow(const VideoWindowHandle &win) throw(Error); | |
| | | | |
| | | private: | |
| | | pjsua_vid_win_id winId; | |
| | | }; | |
| | | | |
| | | /************************************************************************* | |
| * Codec management | | * Codec management | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * This structure describes codec information. | | * This structure describes codec information. | |
| */ | | */ | |
| struct CodecInfo | | struct CodecInfo | |
| { | | { | |
| /** | | /** | |
| * Codec unique identification. | | * Codec unique identification. | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 171 lines changed or added | |
|
| opengl_dev.h | | opengl_dev.h | |
|
| /* $Id: opengl_dev.h 4821 2014-04-22 05:04:43Z ming $ */ | | /* $Id: opengl_dev.h 4925 2014-09-22 07:03:25Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2013-2014 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2013-2014 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 43 | | skipping to change at line 43 | |
| pjmedia_vid_dev_param *param, | | pjmedia_vid_dev_param *param, | |
| const pjmedia_vid_dev_cb *cb, | | const pjmedia_vid_dev_cb *cb, | |
| void *user_data, | | void *user_data, | |
| pjmedia_vid_dev_stream **p_vid_str
m); | | pjmedia_vid_dev_stream **p_vid_str
m); | |
| | | | |
| /**************************************************************************
**/ | | /**************************************************************************
**/ | |
| /* OpenGL buffers opaque structure. */ | | /* OpenGL buffers opaque structure. */ | |
| typedef struct gl_buffers gl_buffers; | | typedef struct gl_buffers gl_buffers; | |
| | | | |
| /* Create OpenGL buffers. */ | | /* Create OpenGL buffers. */ | |
|
| void pjmedia_vid_dev_opengl_create_buffers(pj_pool_t *pool, | | void pjmedia_vid_dev_opengl_create_buffers(pj_pool_t *pool, pj_bool_
t direct, | |
| gl_buffers **glb); | | gl_buffers **glb); | |
| /* Initialize OpenGL buffers. */ | | /* Initialize OpenGL buffers. */ | |
| pj_status_t pjmedia_vid_dev_opengl_init_buffers(gl_buffers *glb); | | pj_status_t pjmedia_vid_dev_opengl_init_buffers(gl_buffers *glb); | |
| /* Render a texture. */ | | /* Render a texture. */ | |
|
| pj_status_t pjmedia_vid_dev_opengl_draw(gl_buffers *glb, | | pj_status_t pjmedia_vid_dev_opengl_draw(gl_buffers *glb,unsigned int width, | |
| unsigned int texture, | | unsigned int height, void *pixels); | |
| unsigned int name); | | | |
| /* Destroy OpenGL buffers. */ | | /* Destroy OpenGL buffers. */ | |
| void pjmedia_vid_dev_opengl_destroy_buffers(gl_buffers *glb); | | void pjmedia_vid_dev_opengl_destroy_buffers(gl_buffers *glb); | |
| | | | |
| #endif /* PJMEDIA_VIDEODEV_OPENGL_DEV_H__ */ | | #endif /* PJMEDIA_VIDEODEV_OPENGL_DEV_H__ */ | |
| | | | |
End of changes. 3 change blocks. |
| 5 lines changed or deleted | | 4 lines changed or added | |
|
| os.h | | os.h | |
|
| /* $Id: os.h 4760 2014-02-24 08:49:40Z nanang $ */ | | /* $Id: os.h 5012 2015-03-22 07:50:28Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 306 | | skipping to change at line 306 | |
| | | | |
| /** | | /** | |
| * Get the current thread. | | * Get the current thread. | |
| * | | * | |
| * @return Thread handle of current thread. | | * @return Thread handle of current thread. | |
| */ | | */ | |
| PJ_DECL(pj_thread_t*) pj_thread_this(void); | | PJ_DECL(pj_thread_t*) pj_thread_this(void); | |
| | | | |
| /** | | /** | |
| * Join thread, and block the caller thread until the specified thread exit
s. | | * Join thread, and block the caller thread until the specified thread exit
s. | |
|
| | | * If it is called from within the thread itself, it will return immediatel | |
| | | y | |
| | | * with failure status. | |
| * If the specified thread has already been dead, or it does not exist, | | * If the specified thread has already been dead, or it does not exist, | |
|
| * the function will return immediately with successfull status. | | * the function will return immediately with successful status. | |
| * | | * | |
| * @param thread The thread handle. | | * @param thread The thread handle. | |
| * | | * | |
| * @return PJ_SUCCESS on success. | | * @return PJ_SUCCESS on success. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_thread_join(pj_thread_t *thread); | | PJ_DECL(pj_status_t) pj_thread_join(pj_thread_t *thread); | |
| | | | |
| /** | | /** | |
| * Destroy thread and release resources allocated for the thread. | | * Destroy thread and release resources allocated for the thread. | |
| * However, the memory allocated for the pj_thread_t itself will only be re
leased | | * However, the memory allocated for the pj_thread_t itself will only be re
leased | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 5 lines changed or added | |
|
| pjsua_internal.h | | pjsua_internal.h | |
|
| /* $Id: pjsua_internal.h 4750 2014-02-19 04:11:43Z bennylp $ */ | | /* $Id: pjsua_internal.h 4986 2015-03-02 09:43:20Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 | |
| int secure_level;/**< Signaling security level.
*/ | | int secure_level;/**< Signaling security level.
*/ | |
| pjsua_call_hold_type call_hold_type; /**< How to do call hold.
*/ | | 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.
*/ | |
| void *hold_msg; /**< Outgoing hold tx_data.
*/ | | void *hold_msg; /**< Outgoing hold tx_data.
*/ | |
| | | | |
| unsigned med_cnt; /**< Number of media in SDP.
*/ | | unsigned med_cnt; /**< Number of media in SDP.
*/ | |
| pjsua_call_media media[PJSUA_MAX_CALL_MEDIA]; /**< Array of media
*/ | | pjsua_call_media media[PJSUA_MAX_CALL_MEDIA]; /**< Array of media
*/ | |
| unsigned med_prov_cnt;/**< Number of provisional media.
*/ | | unsigned med_prov_cnt;/**< Number of provisional media.
*/ | |
| pjsua_call_media media_prov[PJSUA_MAX_CALL_MEDIA]; | | pjsua_call_media media_prov[PJSUA_MAX_CALL_MEDIA]; | |
| /**< Array of provisional media.
*/ | | /**< Array of provisional media.
*/ | |
|
| | | pj_bool_t med_update_success; | |
| | | /**< Is media update successful? | |
| | | */ | |
| | | pj_bool_t hanging_up;/**< Is call in the process of hangup? | |
| | | */ | |
| | | | |
| int audio_idx; /**< First active audio media.
*/ | | int audio_idx; /**< First active audio media.
*/ | |
| pj_mutex_t *med_ch_mutex;/**< Media channel callback's mutex.
*/ | | pj_mutex_t *med_ch_mutex;/**< Media channel callback's mutex.
*/ | |
| pjsua_med_tp_state_cb med_ch_cb;/**< Media channel callback.
*/ | | pjsua_med_tp_state_cb med_ch_cb;/**< Media channel callback.
*/ | |
| pjsua_med_tp_state_info med_ch_info;/**< Media channel info.
*/ | | pjsua_med_tp_state_info med_ch_info;/**< Media channel info.
*/ | |
| | | | |
| pjsip_evsub *xfer_sub; /**< Xfer server subscription, i
f this | | pjsip_evsub *xfer_sub; /**< Xfer server subscription, i
f this | |
| call was triggered by xfer.
*/ | | call was triggered by xfer.
*/ | |
| pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint.
*/ | | pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint.
*/ | |
| | | | |
| | | | |
| skipping to change at line 219 | | skipping to change at line 222 | |
| pj_bool_t valid; /**< Is this account valid? */ | | pj_bool_t valid; /**< Is this account valid? */ | |
| | | | |
| int index; /**< Index in accounts array.
*/ | | int index; /**< Index in accounts array.
*/ | |
| pj_str_t display; /**< Display name, if any. */ | | pj_str_t display; /**< Display name, if any. */ | |
| pj_str_t user_part; /**< User part of local URI. */ | | pj_str_t user_part; /**< User part of local URI. */ | |
| pj_bool_t is_sips; /**< Local URI uses "sips"? */ | | pj_bool_t is_sips; /**< Local URI uses "sips"? */ | |
| pj_str_t contact; /**< Our Contact header. */ | | pj_str_t contact; /**< Our Contact header. */ | |
| pj_str_t reg_contact; /**< Contact header for REGISTER. | | pj_str_t reg_contact; /**< Contact header for REGISTER. | |
| It may be different than acc | | It may be different than acc | |
| contact if outbound is used */ | | contact if outbound is used */ | |
|
| | | pj_bool_t contact_rewritten; | |
| | | /**< Contact rewrite has been done? */ | |
| pjsip_host_port via_addr; /**< Address for Via header */ | | pjsip_host_port via_addr; /**< Address for Via header */ | |
| pjsip_transport *via_tp; /**< Transport associated with | | pjsip_transport *via_tp; /**< Transport associated with | |
| the Via address */ | | the Via address */ | |
| | | | |
| pj_str_t srv_domain; /**< Host part of reg server. */ | | pj_str_t srv_domain; /**< Host part of reg server. */ | |
| int srv_port; /**< Port number of reg server.
*/ | | int srv_port; /**< Port number of reg server.
*/ | |
| | | | |
| pjsip_regc *regc; /**< Client registration session. */ | | pjsip_regc *regc; /**< Client registration session. */ | |
| pj_status_t reg_last_err; /**< Last registration error.
*/ | | pj_status_t reg_last_err; /**< Last registration error.
*/ | |
| int reg_last_code; /**< Last status last register.
*/ | | int reg_last_code; /**< Last status last register.
*/ | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 8 lines changed or added | |
|
| pool_alt.h | | pool_alt.h | |
|
| /* $Id: pool_alt.h 3553 2011-05-05 06:14:19Z nanang $ */ | | /* $Id: pool_alt.h 5061 2015-04-10 13:19:47Z riza $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 __PJ_POOL_ALT_H__ | | #ifndef __PJ_POOL_ALT_H__ | |
| #define __PJ_POOL_ALT_H__ | | #define __PJ_POOL_ALT_H__ | |
| | | | |
| #define __PJ_POOL_H__ | | #define __PJ_POOL_H__ | |
| | | | |
|
| | | PJ_BEGIN_DECL | |
| | | | |
| /** | | /** | |
| * The type for function to receive callback from the pool when it is unabl
e | | * The type for function to receive callback from the pool when it is unabl
e | |
| * to allocate memory. The elegant way to handle this condition is to throw | | * to allocate memory. The elegant way to handle this condition is to throw | |
| * exception, and this is what is expected by most of this library | | * exception, and this is what is expected by most of this library | |
| * components. | | * components. | |
| */ | | */ | |
| typedef void pj_pool_callback(pj_pool_t *pool, pj_size_t size); | | typedef void pj_pool_callback(pj_pool_t *pool, pj_size_t size); | |
| | | | |
| struct pj_pool_mem | | struct pj_pool_mem | |
| { | | { | |
| | | | |
| skipping to change at line 189 | | skipping to change at line 191 | |
| /* just to make it compilable */ | | /* just to make it compilable */ | |
| typedef struct pj_pool_block | | typedef struct pj_pool_block | |
| { | | { | |
| int dummy; | | int dummy; | |
| } pj_pool_block; | | } pj_pool_block; | |
| | | | |
| #define pj_caching_pool_init( cp, pol, mac) | | #define pj_caching_pool_init( cp, pol, mac) | |
| #define pj_caching_pool_destroy(cp) | | #define pj_caching_pool_destroy(cp) | |
| #define pj_pool_factory_dump(pf, detail) | | #define pj_pool_factory_dump(pf, detail) | |
| | | | |
|
| | | PJ_END_DECL | |
| | | | |
| #endif /* __PJ_POOL_ALT_H__ */ | | #endif /* __PJ_POOL_ALT_H__ */ | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 5 lines changed or added | |
|
| print_util.h | | print_util.h | |
|
| /* $Id: print_util.h 4537 2013-06-19 06:47:43Z riza $ */ | | /* $Id: print_util.h 4979 2015-02-10 03:20:04Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 23 | | skipping to change at line 23 | |
| * 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. | |
| * | | * | |
| * 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 __PJSIP_PRINT_H__ | | #ifndef __PJSIP_PRINT_H__ | |
| #define __PJSIP_PRINT_H__ | | #define __PJSIP_PRINT_H__ | |
| | | | |
|
| | | #define copy_advance_char_check(buf,chr) \ | |
| | | do { \ | |
| | | if (1 >= (endbuf-buf)) return -1; \ | |
| | | *buf++ = chr; \ | |
| | | } while (0) | |
| | | | |
| #define copy_advance_check(buf,str) \ | | #define copy_advance_check(buf,str) \ | |
| do { \ | | do { \ | |
| if ((str).slen >= (endbuf-buf)) return -1; \ | | if ((str).slen >= (endbuf-buf)) return -1; \ | |
| pj_memcpy(buf, (str).ptr, (str).slen); \ | | pj_memcpy(buf, (str).ptr, (str).slen); \ | |
| buf += (str).slen; \ | | buf += (str).slen; \ | |
| } while (0) | | } while (0) | |
| | | | |
| #define copy_advance_pair_check(buf,str1,len1,str2) \ | | #define copy_advance_pair_check(buf,str1,len1,str2) \ | |
| do { \ | | do { \ | |
| if (str2.slen) { \ | | if (str2.slen) { \ | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 7 lines changed or added | |
|
| sip_endpoint.h | | sip_endpoint.h | |
|
| /* $Id: sip_endpoint.h 4275 2012-10-04 06:11:58Z bennylp $ */ | | /* $Id: sip_endpoint.h 5055 2015-04-08 10:10:44Z riza $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 | |
| * @param resv The resolver instance to be used by the SIP | | * @param resv The resolver instance to be used by the SIP | |
| * endpoint. | | * endpoint. | |
| * | | * | |
| * @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) pjsip_endpt_set_resolver(pjsip_endpoint *endpt, | | PJ_DECL(pj_status_t) pjsip_endpt_set_resolver(pjsip_endpoint *endpt, | |
| pj_dns_resolver *resv); | | pj_dns_resolver *resv); | |
| | | | |
| /** | | /** | |
|
| | | * Set the DNS external resolver implementation to use in the SIP resolver. | |
| | | * | |
| | | * Note that naturally when implementing its own resolver, application woul | |
| | | d not | |
| | | * need the internal resolver, hence this function will also destroy the | |
| | | * PJLIB-UTIL DNS resolver if any (e.g: set using #pjsip_endpt_set_resolver | |
| | | ()). | |
| | | * Application that needs it, still be able create its own instance. | |
| | | * | |
| | | * @param res The SIP resolver engine. | |
| | | * @param ext_res The external resolver implementation callback. This arg | |
| | | ument | |
| | | * can be NULL to reset the whole external implementation. | |
| | | * However, it is prohibited to reset individual callback. | |
| | | * | |
| | | * @return PJ_SUCCESS on success, or the appropriate error code. | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pjsip_endpt_set_ext_resolver(pjsip_endpoint *endpt, | |
| | | pjsip_ext_resolver *ext_re | |
| | | s); | |
| | | | |
| | | /** | |
| * Get the DNS resolver being used by the SIP resolver. | | * Get the DNS resolver being used by the SIP resolver. | |
| * | | * | |
| * @param endpt The SIP endpoint instance. | | * @param endpt The SIP endpoint instance. | |
| * | | * | |
| * @return The DNS resolver instance currently being used | | * @return The DNS resolver instance currently being used | |
| * by the SIP endpoint. | | * by the SIP endpoint. | |
| */ | | */ | |
| PJ_DECL(pj_dns_resolver*) pjsip_endpt_get_resolver(pjsip_endpoint *endpt); | | PJ_DECL(pj_dns_resolver*) pjsip_endpt_get_resolver(pjsip_endpoint *endpt); | |
| | | | |
| /** | | /** | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 23 lines changed or added | |
|
| sip_inv.h | | sip_inv.h | |
|
| /* $Id: sip_inv.h 4653 2013-11-19 10:18:17Z bennylp $ */ | | /* $Id: sip_inv.h 4985 2015-03-02 03:04:19Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 407 | | skipping to change at line 407 | |
| unsigned options; /**< Options in use.
*/ | | unsigned options; /**< Options in use.
*/ | |
| pjmedia_sdp_neg *neg; /**< Negotiator.
*/ | | pjmedia_sdp_neg *neg; /**< Negotiator.
*/ | |
| unsigned sdp_neg_flags; /**< SDP neg flags.
*/ | | unsigned sdp_neg_flags; /**< SDP neg flags.
*/ | |
| pjsip_transaction *invite_tsx; /**< 1st invite tsx.
*/ | | pjsip_transaction *invite_tsx; /**< 1st invite tsx.
*/ | |
| pjsip_tx_data *invite_req; /**< Saved invite req
*/ | | pjsip_tx_data *invite_req; /**< Saved invite req
*/ | |
| pjsip_tx_data *last_answer; /**< Last INVITE resp.
*/ | | pjsip_tx_data *last_answer; /**< Last INVITE resp.
*/ | |
| pjsip_tx_data *last_ack; /**< Last ACK request
*/ | | pjsip_tx_data *last_ack; /**< Last ACK request
*/ | |
| pj_int32_t last_ack_cseq; /**< CSeq of last ACK
*/ | | pj_int32_t last_ack_cseq; /**< CSeq of last ACK
*/ | |
| void *mod_data[PJSIP_MAX_MODULE];/**< Modules data.
*/ | | void *mod_data[PJSIP_MAX_MODULE];/**< Modules data.
*/ | |
| struct pjsip_timer *timer; /**< Session Timers.
*/ | | struct pjsip_timer *timer; /**< Session Timers.
*/ | |
|
| | | pj_bool_t following_fork; /**< Internal, following | |
| | | forked media? | |
| | | */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * This structure represents SDP information in a pjsip_rx_data. Applicatio
n | | * This structure represents SDP information in a pjsip_rx_data. Applicatio
n | |
| * retrieve this information by calling #pjsip_rdata_get_sdp_info(). This | | * retrieve this information by calling #pjsip_rdata_get_sdp_info(). This | |
| * mechanism supports multipart message body. | | * mechanism supports multipart message body. | |
| */ | | */ | |
| typedef struct pjsip_rdata_sdp_info | | typedef struct pjsip_rdata_sdp_info | |
| { | | { | |
| /** | | /** | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 4 lines changed or added | |
|
| sip_resolve.h | | sip_resolve.h | |
|
| /* $Id: sip_resolve.h 3553 2011-05-05 06:14:19Z nanang $ */ | | /* $Id: sip_resolve.h 5055 2015-04-08 10:10:44Z riza $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 121 | | skipping to change at line 121 | |
| * - The procedure in RFC 2782 is used to select server with the same | | * - The procedure in RFC 2782 is used to select server with the same | |
| * priority to load-balance the servers load. | | * priority to load-balance the servers load. | |
| * - A single function (#pjsip_resolve()) performs all server resolution | | * - A single function (#pjsip_resolve()) performs all server resolution | |
| * works, from resolving the SRV records to getting the actual IP addres
ses | | * works, from resolving the SRV records to getting the actual IP addres
ses | |
| * of the servers with DNS A (or AAAA) resolution. | | * of the servers with DNS A (or AAAA) resolution. | |
| * - When multiple DNS SRV records are returned, parallel DNS A (or AAAA) | | * - When multiple DNS SRV records are returned, parallel DNS A (or AAAA) | |
| * queries will be issued simultaneously. | | * queries will be issued simultaneously. | |
| * - The PJLIB-UTIL DNS resolver provides additional functionality such as | | * - The PJLIB-UTIL DNS resolver provides additional functionality such as | |
| * response caching, query aggregation, parallel nameservers, fallback | | * response caching, query aggregation, parallel nameservers, fallback | |
| * nameserver, etc., which will be described below. | | * nameserver, etc., which will be described below. | |
|
| | | * - Enable application to provide its own resolver implementation. | |
| * | | * | |
| * | | * | |
| * \subsection PJSIP_RESOLVE_DNS_FEATURES DNS Resolver Features | | * \subsection PJSIP_RESOLVE_DNS_FEATURES DNS Resolver Features | |
| * | | * | |
| * The PJSIP server resolution framework uses PJLIB-UTIL DNS resolver engin
e | | * The PJSIP server resolution framework uses PJLIB-UTIL DNS resolver engin
e | |
| * for performing the asynchronous DNS request. The PJLIB-UTIL DNS resolver | | * for performing the asynchronous DNS request. The PJLIB-UTIL DNS resolver | |
| * has some useful features, such as: | | * has some useful features, such as: | |
| * - queries are asynchronous with configurable timeout, | | * - queries are asynchronous with configurable timeout, | |
| * - query aggregation to combine multiple pending queries to the same | | * - query aggregation to combine multiple pending queries to the same | |
| * DNS target into a single DNS request (to save message round-trip and | | * DNS target into a single DNS request (to save message round-trip and | |
| | | | |
| skipping to change at line 158 | | skipping to change at line 159 | |
| * | | * | |
| * Application can enable the SRV resolver by creating the PJLIB-UTIL DNS | | * Application can enable the SRV resolver by creating the PJLIB-UTIL DNS | |
| * resolver with #pjsip_endpt_create_resolver(), configure the | | * resolver with #pjsip_endpt_create_resolver(), configure the | |
| * nameservers of the PJLIB-UTIL DNS resolver object by calling | | * nameservers of the PJLIB-UTIL DNS resolver object by calling | |
| * pj_dns_resolver_set_ns() function, and pass the DNS resolver object to | | * pj_dns_resolver_set_ns() function, and pass the DNS resolver object to | |
| * #pjsip_resolver_set_resolver() function. | | * #pjsip_resolver_set_resolver() function. | |
| * | | * | |
| * Once the resolver is set, it will be used automatically by PJSIP everyti
me | | * Once the resolver is set, it will be used automatically by PJSIP everyti
me | |
| * PJSIP needs to send SIP request/response messages. | | * PJSIP needs to send SIP request/response messages. | |
| * | | * | |
|
| | | * \section PJSIP_RESOLVE_EXT_RESOLVER External Resolver | |
| | | * | |
| | | * As an alternative to enabling PJLIB-UTIL DNS resolver, application can | |
| | | * provide its own resolver implementation by defining the callback in | |
| | | * pjsip_ext_resolver and pass the callback to | |
| | | * #pjsip_resolver_set_ext_resolver() function. Please note that if the | |
| | | * implementation needs feature from PJLIB-UTL DNS resolver, it has to crea | |
| | | te | |
| | | * its own PJLIB-UTL DNS resolver instance. | |
| * | | * | |
| * \section PJSIP_RESOLVE_REFERENCE Reference | | * \section PJSIP_RESOLVE_REFERENCE Reference | |
| * | | * | |
| * Reference: | | * Reference: | |
| * - RFC 2782: A DNS RR for specifying the location of services (DNS SRV) | | * - RFC 2782: A DNS RR for specifying the location of services (DNS SRV) | |
| * - RFC 3263: Locating SIP Servers | | * - RFC 3263: Locating SIP Servers | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * The server addresses returned by the resolver. | | * The server addresses returned by the resolver. | |
| | | | |
| skipping to change at line 209 | | skipping to change at line 218 | |
| * @param status The status of the operation, which is zero on success. | | * @param status The status of the operation, which is zero on success. | |
| * @param token The token that was associated with the job when
application | | * @param token The token that was associated with the job when
application | |
| * call the resolve function. | | * call the resolve function. | |
| * @param addr The addresses resolved by the operation. | | * @param addr The addresses resolved by the operation. | |
| */ | | */ | |
| typedef void pjsip_resolver_callback(pj_status_t status, | | typedef void pjsip_resolver_callback(pj_status_t status, | |
| void *token, | | void *token, | |
| const struct pjsip_server_addresses *ad
dr); | | const struct pjsip_server_addresses *ad
dr); | |
| | | | |
| /** | | /** | |
|
| | | * This structure describes application callback to receive various event f | |
| | | rom | |
| | | * the SIP resolver engine. Application can use this for its own resolver | |
| | | * implementation. | |
| | | */ | |
| | | typedef struct pjsip_ext_resolver | |
| | | { | |
| | | /** | |
| | | * Notify application when the resolution should begin. | |
| | | * | |
| | | * @param resolver The resolver engine. | |
| | | * @param pool The pool to allocate resolver job. | |
| | | * @param target The target specification to be resolved. | |
| | | * @param token A user defined token to be passed back to callb | |
| | | ack | |
| | | * function. | |
| | | * @param cb The callback function. | |
| | | */ | |
| | | void (*resolve) (pjsip_resolver_t *resolver, pj_pool_t *pool, | |
| | | const pjsip_host_info *target, void *token, | |
| | | pjsip_resolver_callback *cb); | |
| | | | |
| | | } pjsip_ext_resolver; | |
| | | | |
| | | /** | |
| * Create SIP resolver engine. Note that this function is normally called | | * Create SIP resolver engine. Note that this function is normally called | |
| * internally by pjsip_endpoint instance. | | * internally by pjsip_endpoint instance. | |
| * | | * | |
| * @param pool Pool to allocate memory from. | | * @param pool Pool to allocate memory from. | |
| * @param p_res Pointer to receive SIP resolver instance. | | * @param p_res Pointer to receive SIP resolver instance. | |
| * | | * | |
| * @return PJ_SUCCESS when resolver can be successfully created. | | * @return PJ_SUCCESS when resolver can be successfully created. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_resolver_create(pj_pool_t *pool, | | PJ_DECL(pj_status_t) pjsip_resolver_create(pj_pool_t *pool, | |
| pjsip_resolver_t **p_res); | | pjsip_resolver_t **p_res); | |
| | | | |
| skipping to change at line 239 | | skipping to change at line 271 | |
| * @param dns_res The DNS resolver instance to be used by the SIP resolve
r. | | * @param dns_res The DNS resolver instance to be used by the SIP resolve
r. | |
| * This argument can be NULL to reset the internal DNS | | * This argument can be NULL to reset the internal DNS | |
| * instance. | | * instance. | |
| * | | * | |
| * @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) pjsip_resolver_set_resolver(pjsip_resolver_t *res, | | PJ_DECL(pj_status_t) pjsip_resolver_set_resolver(pjsip_resolver_t *res, | |
| pj_dns_resolver *dns_res); | | pj_dns_resolver *dns_res); | |
| | | | |
| /** | | /** | |
|
| | | * Set the DNS external resolver implementation to use in the SIP resolver | |
| | | * engine. Naturally when implementing its own resolver, application would | |
| | | not | |
| | | * need the internal resolver, hence this function will also destroy the | |
| | | * PJLIB-UTIL DNS resolver if any (e.g: set using | |
| | | * #pjsip_resolver_set_resolver()). Application that needs it, still be abl | |
| | | e | |
| | | * create its own instance. | |
| | | * | |
| | | * Note that application normally will use #pjsip_endpt_set_ext_resolver() | |
| | | * instead since it does not normally have access to the SIP resolver insta | |
| | | nce. | |
| | | * | |
| | | * @param res The SIP resolver engine. | |
| | | * @param ext_res The external resolver implementation callback. This arg | |
| | | ument | |
| | | * can be NULL to reset the whole external implementation. | |
| | | * However, it is prohibited to reset individual callback. | |
| | | * | |
| | | * @return PJ_SUCCESS on success, or the appropriate error code. | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pjsip_resolver_set_ext_resolver( | |
| | | pjsip_resolver_t *res, | |
| | | pjsip_ext_resolver *ext_res) | |
| | | ; | |
| | | | |
| | | /** | |
| * Get the DNS resolver instance of the SIP resolver engine. | | * Get the DNS resolver instance of the SIP resolver engine. | |
| * | | * | |
| * Note that application normally will use #pjsip_endpt_get_resolver() inst
ead | | * Note that application normally will use #pjsip_endpt_get_resolver() inst
ead | |
| * since it does not normally have access to the SIP resolver instance. | | * since it does not normally have access to the SIP resolver instance. | |
| * | | * | |
| * @param res The SIP resolver engine. | | * @param res The SIP resolver engine. | |
| * | | * | |
| * @return The DNS resolver instance (may be NULL) | | * @return The DNS resolver instance (may be NULL) | |
| */ | | */ | |
| PJ_DECL(pj_dns_resolver*) pjsip_resolver_get_resolver(pjsip_resolver_t *res
); | | PJ_DECL(pj_dns_resolver*) pjsip_resolver_get_resolver(pjsip_resolver_t *res
); | |
| | | | |
End of changes. 5 change blocks. |
| 1 lines changed or deleted | | 63 lines changed or added | |
|
| sip_transport_tls.h | | sip_transport_tls.h | |
|
| /* $Id: sip_transport_tls.h 4860 2014-06-19 05:07:12Z riza $ */ | | /* $Id: sip_transport_tls.h 4973 2015-01-15 06:55:02Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 56 | | skipping to change at line 56 | |
| * The default SSL method to be used by PJSIP. | | * The default SSL method to be used by PJSIP. | |
| * Default is PJSIP_TLSV1_METHOD | | * Default is PJSIP_TLSV1_METHOD | |
| */ | | */ | |
| #ifndef PJSIP_SSL_DEFAULT_METHOD | | #ifndef PJSIP_SSL_DEFAULT_METHOD | |
| # define PJSIP_SSL_DEFAULT_METHOD PJSIP_TLSV1_METHOD | | # define PJSIP_SSL_DEFAULT_METHOD PJSIP_TLSV1_METHOD | |
| #endif | | #endif | |
| | | | |
| /** SSL protocol method constants. */ | | /** SSL protocol method constants. */ | |
| typedef enum pjsip_ssl_method | | typedef enum pjsip_ssl_method | |
| { | | { | |
|
| PJSIP_SSL_UNSPECIFIED_METHOD= 0, /**< Default protocol method. */ | | PJSIP_SSL_UNSPECIFIED_METHOD = 0, /**< Default protocol method. */ | |
| PJSIP_TLSV1_METHOD = 31, /**< Use SSLv1 method. */ | | PJSIP_SSLV2_METHOD = 20, /**< Use SSLv2 method. */ | |
| PJSIP_SSLV2_METHOD = 20, /**< Use SSLv2 method. */ | | PJSIP_SSLV3_METHOD = 30, /**< Use SSLv3 method. */ | |
| PJSIP_SSLV3_METHOD = 30, /**< Use SSLv3 method. */ | | PJSIP_TLSV1_METHOD = 31, /**< Use TLSv1 method. */ | |
| PJSIP_SSLV23_METHOD = 23 /**< Use SSLv23 method. | | PJSIP_TLSV1_1_METHOD = 32, /**< Use TLSv1_1 method. */ | |
| */ | | PJSIP_TLSV1_2_METHOD = 33, /**< Use TLSv1_2 method. */ | |
| | | PJSIP_SSLV23_METHOD = 23, /**< Use SSLv23 method. | |
| | | */ | |
| } pjsip_ssl_method; | | } pjsip_ssl_method; | |
| | | | |
| /** | | /** | |
|
| | | * The default enabled SSL proto to be used. | |
| | | * Default is all protocol above TLSv1 (TLSv1 & TLS v1.1 & TLS v1.2). | |
| | | */ | |
| | | #ifndef PJSIP_SSL_DEFAULT_PROTO | |
| | | # define PJSIP_SSL_DEFAULT_PROTO (PJ_SSL_SOCK_PROTO_TLS1 | \ | |
| | | PJ_SSL_SOCK_PROTO_TLS1_1 | \ | |
| | | PJ_SSL_SOCK_PROTO_TLS1_2) | |
| | | #endif | |
| | | | |
| | | /** | |
| * TLS transport settings. | | * TLS transport settings. | |
| */ | | */ | |
| typedef struct pjsip_tls_setting | | typedef struct pjsip_tls_setting | |
| { | | { | |
| /** | | /** | |
| * Certificate of Authority (CA) list file. | | * Certificate of Authority (CA) list file. | |
| */ | | */ | |
| pj_str_t ca_list_file; | | pj_str_t ca_list_file; | |
| | | | |
| /** | | /** | |
|
| | | * Certificate of Authority (CA) list directory path. | |
| | | */ | |
| | | pj_str_t ca_list_path; | |
| | | | |
| | | /** | |
| * Public endpoint certificate file, which will be used as client- | | * Public endpoint certificate file, which will be used as client- | |
| * side certificate for outgoing TLS connection, and server-side | | * side certificate for outgoing TLS connection, and server-side | |
| * certificate for incoming TLS connection. | | * certificate for incoming TLS connection. | |
| */ | | */ | |
| pj_str_t cert_file; | | pj_str_t cert_file; | |
| | | | |
| /** | | /** | |
| * Optional private key of the endpoint certificate to be used. | | * Optional private key of the endpoint certificate to be used. | |
| */ | | */ | |
| pj_str_t privkey_file; | | pj_str_t privkey_file; | |
| | | | |
| /** | | /** | |
| * Password to open private key. | | * Password to open private key. | |
| */ | | */ | |
| pj_str_t password; | | pj_str_t password; | |
| | | | |
| /** | | /** | |
|
| * TLS protocol method from #pjsip_ssl_method, which can be: | | * TLS protocol method from #pjsip_ssl_method. In the future, this fiel | |
| * - PJSIP_SSL_UNSPECIFIED_METHOD(0): default (which will use | | d | |
| * PJSIP_SSL_DEFAULT_METHOD) | | * might be deprecated in favor of <b>proto</b> field. For now, this fi | |
| * - PJSIP_TLSV1_METHOD(1): TLSv1 | | eld | |
| * - PJSIP_SSLV2_METHOD(2): SSLv2 | | * is only applicable only when <b>proto</b> field is set to zero. | |
| * - PJSIP_SSLV3_METHOD(3): SSL3 | | | |
| * - PJSIP_SSLV23_METHOD(23): SSL23 | | | |
| * | | * | |
| * Default is PJSIP_SSL_UNSPECIFIED_METHOD (0), which in turn will | | * Default is PJSIP_SSL_UNSPECIFIED_METHOD (0), which in turn will | |
|
| * use PJSIP_SSL_DEFAULT_METHOD, which default value is | | * use PJSIP_SSL_DEFAULT_METHOD, which default value is PJSIP_TLSV1_MET | |
| * PJSIP_TLSV1_METHOD. | | HOD. | |
| | | */ | |
| | | pjsip_ssl_method method; | |
| | | | |
| | | /** | |
| | | * TLS protocol type from #pj_ssl_sock_proto. Use this field to enable | |
| | | * specific protocol type. Use bitwise OR operation to combine the prot | |
| | | ocol | |
| | | * type. | |
| | | * | |
| | | * Default is PJSIP_SSL_DEFAULT_PROTO. | |
| */ | | */ | |
|
| int method; | | pj_uint32_t proto; | |
| | | | |
| /** | | /** | |
| * Number of ciphers contained in the specified cipher preference. | | * Number of ciphers contained in the specified cipher preference. | |
| * If this is set to zero, then default cipher list of the backend | | * If this is set to zero, then default cipher list of the backend | |
| * will be used. | | * will be used. | |
| * | | * | |
| * Default: 0 (zero). | | * Default: 0 (zero). | |
| */ | | */ | |
| unsigned ciphers_num; | | unsigned ciphers_num; | |
| | | | |
| | | | |
| skipping to change at line 249 | | skipping to change at line 270 | |
| * | | * | |
| * @param tls_opt The TLS setting to be initialized. | | * @param tls_opt The TLS setting to be initialized. | |
| */ | | */ | |
| PJ_INLINE(void) pjsip_tls_setting_default(pjsip_tls_setting *tls_opt) | | PJ_INLINE(void) pjsip_tls_setting_default(pjsip_tls_setting *tls_opt) | |
| { | | { | |
| pj_memset(tls_opt, 0, sizeof(*tls_opt)); | | pj_memset(tls_opt, 0, sizeof(*tls_opt)); | |
| tls_opt->reuse_addr = PJSIP_TLS_TRANSPORT_REUSEADDR; | | tls_opt->reuse_addr = PJSIP_TLS_TRANSPORT_REUSEADDR; | |
| tls_opt->qos_type = PJ_QOS_TYPE_BEST_EFFORT; | | tls_opt->qos_type = PJ_QOS_TYPE_BEST_EFFORT; | |
| tls_opt->qos_ignore_error = PJ_TRUE; | | tls_opt->qos_ignore_error = PJ_TRUE; | |
| tls_opt->sockopt_ignore_error = PJ_TRUE; | | tls_opt->sockopt_ignore_error = PJ_TRUE; | |
|
| | | tls_opt->proto = PJSIP_SSL_DEFAULT_PROTO; | |
| } | | } | |
| | | | |
| /** | | /** | |
| * Copy TLS setting. | | * Copy TLS setting. | |
| * | | * | |
| * @param pool The pool to duplicate strings etc. | | * @param pool The pool to duplicate strings etc. | |
| * @param dst Destination structure. | | * @param dst Destination structure. | |
| * @param src Source structure. | | * @param src Source structure. | |
| */ | | */ | |
| PJ_INLINE(void) pjsip_tls_setting_copy(pj_pool_t *pool, | | PJ_INLINE(void) pjsip_tls_setting_copy(pj_pool_t *pool, | |
| | | | |
End of changes. 8 change blocks. |
| 17 lines changed or deleted | | 43 lines changed or added | |
|
| sip_util.h | | sip_util.h | |
|
| /* $Id: sip_util.h 4888 2014-08-18 08:54:43Z bennylp $ */ | | /* $Id: sip_util.h 5059 2015-04-10 09:14:54Z riza $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 764 | | skipping to change at line 764 | |
| /** | | /** | |
| * Send outgoing request and initiate UAC transaction for the request. | | * Send outgoing request and initiate UAC transaction for the request. | |
| * This is an auxiliary function to be used by application to send arbitrar
y | | * This is an auxiliary function to be used by application to send arbitrar
y | |
| * requests outside a dialog. To send a request within a dialog, applicatio
n | | * requests outside a dialog. To send a request within a dialog, applicatio
n | |
| * should use #pjsip_dlg_send_request instead. | | * should use #pjsip_dlg_send_request instead. | |
| * | | * | |
| * @param endpt The endpoint instance. | | * @param endpt The endpoint instance. | |
| * @param tdata The transmit data to be sent. | | * @param tdata The transmit data to be sent. | |
| * @param timeout Optional timeout for final response to be received, or
-1 | | * @param timeout Optional timeout for final response to be received, or
-1 | |
| * if the transaction should not have a timeout restriction
. | | * if the transaction should not have a timeout restriction
. | |
|
| * The value is in miliseconds. | | * The value is in miliseconds. Note that this is not | |
| | | * implemented yet, so application needs to use its own tim | |
| | | er | |
| | | * to handle timeout. | |
| * @param token Optional token to be associated with the transac
tion, and | | * @param token Optional token to be associated with the transac
tion, and | |
| * to be passed to the callback. | | * to be passed to the callback. | |
| * @param cb Optional callback to be called when the transaction has | | * @param cb Optional callback to be called when the transaction has | |
| * received a final response. The callback will be called w
ith | | * received a final response. The callback will be called w
ith | |
| * the previously registered token and the event that trigg
ers | | * the previously registered token and the event that trigg
ers | |
| * the completion of the transaction. | | * the completion of the transaction. | |
| * | | * | |
| * @return PJ_SUCCESS, or the appropriate error code. | | * @return PJ_SUCCESS, or the appropriate error code. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt, | | PJ_DECL(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt, | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 5 lines changed or added | |
|
| siptypes.hpp | | siptypes.hpp | |
|
| /* $Id: siptypes.hpp 4704 2014-01-16 05:30:46Z ming $ */ | | /* $Id: siptypes.hpp 4968 2014-12-18 04:40:35Z riza $ */ | |
| /* | | /* | |
| * Copyright (C) 2032 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2032 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 147 | | skipping to change at line 147 | |
| * Optional private key of the endpoint certificate to be used. | | * Optional private key of the endpoint certificate to be used. | |
| */ | | */ | |
| string privKeyFile; | | string privKeyFile; | |
| | | | |
| /** | | /** | |
| * Password to open private key. | | * Password to open private key. | |
| */ | | */ | |
| string password; | | string password; | |
| | | | |
| /** | | /** | |
|
| * TLS protocol method from pjsip_ssl_method. | | * TLS protocol method from #pjsip_ssl_method. In the future, this fiel | |
| | | d | |
| | | * might be deprecated in favor of <b>proto</b> field. For now, this fi | |
| | | eld | |
| | | * is only applicable only when <b>proto</b> field is set to zero. | |
| * | | * | |
| * Default is PJSIP_SSL_UNSPECIFIED_METHOD (0), which in turn will | | * Default is PJSIP_SSL_UNSPECIFIED_METHOD (0), which in turn will | |
|
| * use PJSIP_SSL_DEFAULT_METHOD, which default value is | | * use PJSIP_SSL_DEFAULT_METHOD, which default value is PJSIP_TLSV1_MET | |
| * PJSIP_TLSV1_METHOD. | | HOD. | |
| */ | | */ | |
| pjsip_ssl_method method; | | pjsip_ssl_method method; | |
| | | | |
| /** | | /** | |
|
| | | * TLS protocol type from #pj_ssl_sock_proto. Use this field to enable | |
| | | * specific protocol type. Use bitwise OR operation to combine the prot | |
| | | ocol | |
| | | * type. | |
| | | * | |
| | | * Default is PJSIP_SSL_DEFAULT_PROTO. | |
| | | */ | |
| | | unsigned proto; | |
| | | | |
| | | /** | |
| * Ciphers and order preference. The Endpoint::utilSslGetAvailableCiphe
rs() | | * Ciphers and order preference. The Endpoint::utilSslGetAvailableCiphe
rs() | |
| * can be used to check the available ciphers supported by backend. | | * can be used to check the available ciphers supported by backend. | |
| * If the array is empty, then default cipher list of the backend | | * If the array is empty, then default cipher list of the backend | |
| * will be used. | | * will be used. | |
| */ | | */ | |
| IntVector ciphers; | | IntVector ciphers; | |
| | | | |
| /** | | /** | |
| * Specifies TLS transport behavior on the server TLS certificate | | * Specifies TLS transport behavior on the server TLS certificate | |
| * verification result: | | * verification result: | |
| | | | |
| skipping to change at line 525 | | skipping to change at line 535 | |
| | | | |
| /** | | /** | |
| * This structure describes timer event. | | * This structure describes timer event. | |
| */ | | */ | |
| struct TimerEvent | | struct TimerEvent | |
| { | | { | |
| TimerEntry entry; /**< The timer entry. */ | | TimerEntry entry; /**< The timer entry. */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * This structure describes transaction state event source. | |
| | | */ | |
| | | struct TsxStateEventSrc | |
| | | { | |
| | | SipRxData rdata; /**< The incoming message. */ | |
| | | SipTxData tdata; /**< The outgoing message. */ | |
| | | TimerEntry timer; /**< The timer. */ | |
| | | pj_status_t status; /**< Transport error status. */ | |
| | | GenericData data; /**< Generic data. */ | |
| | | }; | |
| | | | |
| | | /** | |
| * This structure describes transaction state changed event. | | * This structure describes transaction state changed event. | |
| */ | | */ | |
| struct TsxStateEvent | | struct TsxStateEvent | |
| { | | { | |
|
| struct | | TsxStateEventSrc src; /**< Event source. */ | |
| { | | | |
| SipRxData rdata; /**< The incoming message. */ | | | |
| SipTxData tdata; /**< The outgoing message. */ | | | |
| TimerEntry timer; /**< The timer. */ | | | |
| pj_status_t status; /**< Transport error status. */ | | | |
| GenericData data; /**< Generic data. */ | | | |
| } src; /**< Event source. */ | | | |
| SipTransaction tsx; /**< The transaction. */ | | SipTransaction tsx; /**< The transaction. */ | |
| pjsip_tsx_state_e prevState; /**< Previous state. */ | | pjsip_tsx_state_e prevState; /**< Previous state. */ | |
| pjsip_event_id_e type; /**< Type of event source: | | pjsip_event_id_e type; /**< Type of event source: | |
| * - PJSIP_EVENT_TX_MSG | | * - PJSIP_EVENT_TX_MSG | |
| * - PJSIP_EVENT_RX_MSG, | | * - PJSIP_EVENT_RX_MSG, | |
| * - PJSIP_EVENT_TRANSPORT_ERRO
R | | * - PJSIP_EVENT_TRANSPORT_ERRO
R | |
| * - PJSIP_EVENT_TIMER | | * - PJSIP_EVENT_TIMER | |
| * - PJSIP_EVENT_USER | | * - PJSIP_EVENT_USER | |
| */ | | */ | |
| }; | | }; | |
| | | | |
| skipping to change at line 585 | | skipping to change at line 600 | |
| */ | | */ | |
| struct UserEvent | | struct UserEvent | |
| { | | { | |
| GenericData user1; /**< User data 1. */ | | GenericData user1; /**< User data 1. */ | |
| GenericData user2; /**< User data 2. */ | | GenericData user2; /**< User data 2. */ | |
| GenericData user3; /**< User data 3. */ | | GenericData user3; /**< User data 3. */ | |
| GenericData user4; /**< User data 4. */ | | GenericData user4; /**< User data 4. */ | |
| }; | | }; | |
| | | | |
| /** | | /** | |
|
| | | * The event body. | |
| | | */ | |
| | | struct SipEventBody | |
| | | { | |
| | | /** | |
| | | * Timer event. | |
| | | */ | |
| | | TimerEvent timer; | |
| | | | |
| | | /** | |
| | | * Transaction state has changed event. | |
| | | */ | |
| | | TsxStateEvent tsxState; | |
| | | | |
| | | /** | |
| | | * Message transmission event. | |
| | | */ | |
| | | TxMsgEvent txMsg; | |
| | | | |
| | | /** | |
| | | * Transmission error event. | |
| | | */ | |
| | | TxErrorEvent txError; | |
| | | | |
| | | /** | |
| | | * Message arrival event. | |
| | | */ | |
| | | RxMsgEvent rxMsg; | |
| | | | |
| | | /** | |
| | | * User event. | |
| | | */ | |
| | | UserEvent user; | |
| | | | |
| | | }; | |
| | | | |
| | | /** | |
| * This structure describe event descriptor to fully identify a SIP event.
It | | * This structure describe event descriptor to fully identify a SIP event.
It | |
| * corresponds to the pjsip_event structure in PJSIP library. | | * corresponds to the pjsip_event structure in PJSIP library. | |
| */ | | */ | |
| struct SipEvent | | struct SipEvent | |
| { | | { | |
| /** | | /** | |
| * The event type, can be any value of \b pjsip_event_id_e. | | * The event type, can be any value of \b pjsip_event_id_e. | |
| */ | | */ | |
| pjsip_event_id_e type; | | pjsip_event_id_e type; | |
| | | | |
| /** | | /** | |
| * The event body, which fields depends on the event type. | | * The event body, which fields depends on the event type. | |
| */ | | */ | |
|
| struct | | SipEventBody body; | |
| { | | | |
| /** | | | |
| * Timer event. | | | |
| */ | | | |
| TimerEvent timer; | | | |
| | | | |
| /** | | | |
| * Transaction state has changed event. | | | |
| */ | | | |
| TsxStateEvent tsxState; | | | |
| | | | |
| /** | | | |
| * Message transmission event. | | | |
| */ | | | |
| TxMsgEvent txMsg; | | | |
| | | | |
| /** | | | |
| * Transmission error event. | | | |
| */ | | | |
| TxErrorEvent txError; | | | |
| | | | |
| /** | | | |
| * Message arrival event. | | | |
| */ | | | |
| RxMsgEvent rxMsg; | | | |
| | | | |
| /** | | | |
| * User event. | | | |
| */ | | | |
| UserEvent user; | | | |
| | | | |
| } body; | | | |
| | | | |
| /** | | /** | |
| * Pointer to its original pjsip_event. Only valid when the struct is | | * Pointer to its original pjsip_event. Only valid when the struct is | |
| * constructed from PJSIP's pjsip_event. | | * constructed from PJSIP's pjsip_event. | |
| */ | | */ | |
| void *pjEvent; | | void *pjEvent; | |
| | | | |
| public: | | public: | |
| /** | | /** | |
| * Default constructor. | | * Default constructor. | |
| | | | |
End of changes. 8 change blocks. |
| 45 lines changed or deleted | | 69 lines changed or added | |
|
| sound_port.h | | sound_port.h | |
|
| /* $Id: sound_port.h 4082 2012-04-24 13:09:14Z bennylp $ */ | | /* $Id: sound_port.h 4982 2015-02-11 05:15:29Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 99 | | skipping to change at line 99 | |
| /** | | /** | |
| * Sound port creation options. | | * Sound port creation options. | |
| */ | | */ | |
| unsigned options; | | unsigned options; | |
| | | | |
| /** | | /** | |
| * Echo cancellation options/flags. | | * Echo cancellation options/flags. | |
| */ | | */ | |
| unsigned ec_options; | | unsigned ec_options; | |
| | | | |
|
| | | /** | |
| | | * Arbitrary user data for playback and record preview callbacks below. | |
| | | */ | |
| | | void *user_data; | |
| | | | |
| | | /** | |
| | | * Optional callback for audio frame preview right before queued to | |
| | | * the speaker. | |
| | | * Notes: | |
| | | * - application MUST NOT block or perform long operation in the callba | |
| | | ck | |
| | | * as the callback may be executed in sound device thread | |
| | | * - when using software echo cancellation, application MUST NOT modify | |
| | | * the audio data from within the callback, otherwise the echo cancel | |
| | | ler | |
| | | * will not work properly. | |
| | | * - the return value of the callback will be ignored | |
| | | */ | |
| | | pjmedia_aud_play_cb on_play_frame; | |
| | | | |
| | | /** | |
| | | * Optional callback for audio frame preview recorded from the micropho | |
| | | ne | |
| | | * before being processed by any media component such as software echo | |
| | | * canceller. | |
| | | * Notes: | |
| | | * - application MUST NOT block or perform long operation in the callba | |
| | | ck | |
| | | * as the callback may be executed in sound device thread | |
| | | * - when using software echo cancellation, application MUST NOT modify | |
| | | * the audio data from within the callback, otherwise the echo cancel | |
| | | ler | |
| | | * will not work properly. | |
| | | * - the return value of the callback will be ignored | |
| | | */ | |
| | | pjmedia_aud_rec_cb on_rec_frame; | |
| | | | |
| } pjmedia_snd_port_param; | | } pjmedia_snd_port_param; | |
| | | | |
| /** | | /** | |
| * Initialize pjmedia_snd_port_param with default values. | | * Initialize pjmedia_snd_port_param with default values. | |
| * | | * | |
| * @param prm The parameter. | | * @param prm The parameter. | |
| */ | | */ | |
| PJ_DECL(void) pjmedia_snd_port_param_default(pjmedia_snd_port_param *prm); | | PJ_DECL(void) pjmedia_snd_port_param_default(pjmedia_snd_port_param *prm); | |
| | | | |
| /** | | /** | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 38 lines changed or added | |
|
| ssl_sock.h | | ssl_sock.h | |
|
| /* $Id: ssl_sock.h 4862 2014-06-19 09:42:02Z nanang $ */ | | /* $Id: ssl_sock.h 4973 2015-01-15 06:55:02Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2009-2011 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 200 | | skipping to change at line 200 | |
| * @return PJ_SUCCESS when successful. | | * @return PJ_SUCCESS when successful. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_ssl_cert_load_from_files(pj_pool_t *pool, | | PJ_DECL(pj_status_t) pj_ssl_cert_load_from_files(pj_pool_t *pool, | |
| const pj_str_t *CA_file, | | const pj_str_t *CA_file, | |
| const pj_str_t *cert_file, | | const pj_str_t *cert_file, | |
| const pj_str_t *privkey_fil
e, | | const pj_str_t *privkey_fil
e, | |
| const pj_str_t *privkey_pas
s, | | const pj_str_t *privkey_pas
s, | |
| pj_ssl_cert_t **p_cert); | | pj_ssl_cert_t **p_cert); | |
| | | | |
| /** | | /** | |
|
| | | * Create credential from files. | |
| | | * | |
| | | * This is the same as pj_ssl_cert_load_from_files() but also | |
| | | * accepts an additional param CA_path to load CA certificates from | |
| | | * a directory. | |
| | | * | |
| | | * @param CA_file The file of trusted CA list. | |
| | | * @param CA_path The path to a directory of trusted CA list. | |
| | | * @param cert_file The file of certificate. | |
| | | * @param privkey_file The file of private key. | |
| | | * @param privkey_pass The password of private key, if any. | |
| | | * @param p_cert Pointer to credential instance to be created. | |
| | | * | |
| | | * @return PJ_SUCCESS when successful. | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pj_ssl_cert_load_from_files2( | |
| | | pj_pool_t *pool, | |
| | | const pj_str_t *CA_file, | |
| | | const pj_str_t *CA_path, | |
| | | const pj_str_t *cert_file, | |
| | | const pj_str_t *privkey_file | |
| | | , | |
| | | const pj_str_t *privkey_pass | |
| | | , | |
| | | pj_ssl_cert_t **p_cert); | |
| | | | |
| | | /** | |
| * Dump SSL certificate info. | | * Dump SSL certificate info. | |
| * | | * | |
| * @param ci The certificate info. | | * @param ci The certificate info. | |
| * @param indent String for left indentation. | | * @param indent String for left indentation. | |
| * @param buf The buffer where certificate info will be printed on
. | | * @param buf The buffer where certificate info will be printed on
. | |
| * @param buf_size The buffer size. | | * @param buf_size The buffer size. | |
| * | | * | |
| * @return The length of the dump result, or -1 when buffer siz
e | | * @return The length of the dump result, or -1 when buffer siz
e | |
| * is not sufficient. | | * is not sufficient. | |
| */ | | */ | |
| | | | |
| skipping to change at line 475 | | skipping to change at line 500 | |
| * @return Application may destroy the secure socket in the | | * @return Application may destroy the secure socket in the | |
| * callback and return PJ_FALSE here. | | * callback and return PJ_FALSE here. | |
| */ | | */ | |
| pj_bool_t (*on_connect_complete)(pj_ssl_sock_t *ssock, | | pj_bool_t (*on_connect_complete)(pj_ssl_sock_t *ssock, | |
| pj_status_t status); | | pj_status_t status); | |
| | | | |
| } pj_ssl_sock_cb; | | } pj_ssl_sock_cb; | |
| | | | |
| /** | | /** | |
| * Enumeration of secure socket protocol types. | | * Enumeration of secure socket protocol types. | |
|
| | | * This can be combined using bitwise OR operation. | |
| */ | | */ | |
| typedef enum pj_ssl_sock_proto | | typedef enum pj_ssl_sock_proto | |
| { | | { | |
|
| PJ_SSL_SOCK_PROTO_DEFAULT, /**< Default protocol of backend. */ | | /** | |
| PJ_SSL_SOCK_PROTO_TLS1, /**< TLSv1.0 protocol. */ | | * Default protocol of backend. | |
| PJ_SSL_SOCK_PROTO_SSL3, /**< SSLv3.0 protocol. */ | | */ | |
| PJ_SSL_SOCK_PROTO_SSL23, /**< SSLv3.0 but can roll back to | | PJ_SSL_SOCK_PROTO_DEFAULT = 0, | |
| SSLv2.0. */ | | | |
| PJ_SSL_SOCK_PROTO_SSL2, /**< SSLv2.0 protocol. */ | | /** | |
| PJ_SSL_SOCK_PROTO_DTLS1 /**< DTLSv1.0 protocol. */ | | * SSLv2.0 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_SSL2 = (1 << 0), | |
| | | | |
| | | /** | |
| | | * SSLv3.0 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_SSL3 = (1 << 1), | |
| | | | |
| | | /** | |
| | | * TLSv1.0 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_TLS1 = (1 << 2), | |
| | | | |
| | | /** | |
| | | * TLSv1.1 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_TLS1_1 = (1 << 3), | |
| | | | |
| | | /** | |
| | | * TLSv1.2 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_TLS1_2 = (1 << 4), | |
| | | | |
| | | /** | |
| | | * Certain backend implementation e.g:OpenSSL, has feature to enable al | |
| | | l | |
| | | * protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_SSL23 = (1 << 16) - 1, | |
| | | | |
| | | /** | |
| | | * DTLSv1.0 protocol. | |
| | | */ | |
| | | PJ_SSL_SOCK_PROTO_DTLS1 = (1 << 16), | |
| | | | |
| } pj_ssl_sock_proto; | | } pj_ssl_sock_proto; | |
| | | | |
| /** | | /** | |
| * Definition of secure socket info structure. | | * Definition of secure socket info structure. | |
| */ | | */ | |
| typedef struct pj_ssl_sock_info | | typedef struct pj_ssl_sock_info | |
| { | | { | |
| /** | | /** | |
| * Describes whether secure socket connection is established, i.e: TLS/
SSL | | * Describes whether secure socket connection is established, i.e: TLS/
SSL | |
| * handshaking has been done successfully. | | * handshaking has been done successfully. | |
| */ | | */ | |
| pj_bool_t established; | | pj_bool_t established; | |
| | | | |
| /** | | /** | |
|
| * Describes secure socket protocol being used. | | * Describes secure socket protocol being used, see #pj_ssl_sock_proto. | |
| | | * Use bitwise OR operation to combine the protocol type. | |
| */ | | */ | |
|
| pj_ssl_sock_proto proto; | | pj_uint32_t proto; | |
| | | | |
| /** | | /** | |
| * Describes cipher suite being used, this will only be set when connec
tion | | * Describes cipher suite being used, this will only be set when connec
tion | |
| * is established. | | * is established. | |
| */ | | */ | |
| pj_ssl_cipher cipher; | | pj_ssl_cipher cipher; | |
| | | | |
| /** | | /** | |
| * Describes local address. | | * Describes local address. | |
| */ | | */ | |
| | | | |
| skipping to change at line 600 | | skipping to change at line 661 | |
| * Specify secure socket callbacks, see #pj_ssl_sock_cb. | | * Specify secure socket callbacks, see #pj_ssl_sock_cb. | |
| */ | | */ | |
| pj_ssl_sock_cb cb; | | pj_ssl_sock_cb cb; | |
| | | | |
| /** | | /** | |
| * Specify secure socket user data. | | * Specify secure socket user data. | |
| */ | | */ | |
| void *user_data; | | void *user_data; | |
| | | | |
| /** | | /** | |
|
| * Specify security protocol to use, see #pj_ssl_sock_proto. | | * Specify security protocol to use, see #pj_ssl_sock_proto. Use bitwis | |
| | | e OR | |
| | | * operation to combine the protocol type. | |
| * | | * | |
| * Default is PJ_SSL_SOCK_PROTO_DEFAULT. | | * Default is PJ_SSL_SOCK_PROTO_DEFAULT. | |
| */ | | */ | |
|
| pj_ssl_sock_proto proto; | | pj_uint32_t proto; | |
| | | | |
| /** | | /** | |
| * Number of concurrent asynchronous operations that is to be supported | | * Number of concurrent asynchronous operations that is to be supported | |
| * by the secure socket. This value only affects socket receive and | | * by the secure socket. This value only affects socket receive and | |
| * accept operations -- the secure socket will issue one or more | | * accept operations -- the secure socket will issue one or more | |
| * asynchronous read and accept operations based on the value of this | | * asynchronous read and accept operations based on the value of this | |
| * field. Setting this field to more than one will allow more than one | | * field. Setting this field to more than one will allow more than one | |
| * incoming data or incoming connections to be processed simultaneously | | * incoming data or incoming connections to be processed simultaneously | |
| * on multiprocessor systems, when the ioqueue is polled by more than | | * on multiprocessor systems, when the ioqueue is polled by more than | |
| * one threads. | | * one threads. | |
| | | | |
End of changes. 8 change blocks. |
| 12 lines changed or deleted | | 78 lines changed or added | |
|
| stun_transaction.h | | stun_transaction.h | |
|
| /* $Id: stun_transaction.h 4360 2013-02-21 11:26:35Z bennylp $ */ | | /* $Id: stun_transaction.h 4983 2015-02-13 11:34:26Z ming $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 159 | | skipping to change at line 159 | |
| * @param delay The delay interval before on_destroy() callb
ack | | * @param delay The delay interval before on_destroy() callb
ack | |
| * is called. | | * is called. | |
| * | | * | |
| * @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) | | PJ_DECL(pj_status_t) | |
| pj_stun_client_tsx_schedule_destroy(pj_stun_client_tsx *tsx, | | pj_stun_client_tsx_schedule_destroy(pj_stun_client_tsx *tsx, | |
| const pj_time_val *delay); | | const pj_time_val *delay); | |
| | | | |
| /** | | /** | |
|
| | | * Destroy the STUN transaction immediately after the transaction is comple | |
| | | te. | |
| | | * Application normally calls this function in the on_complete() callback. | |
| | | * | |
| | | * @param tsx The STUN transaction. | |
| | | * | |
| | | * @return PJ_SUCCESS on success, or the appropriate error code | |
| | | . | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pj_stun_client_tsx_destroy(pj_stun_client_tsx *tsx); | |
| | | | |
| | | /** | |
| * Stop the client transaction. | | * Stop the client transaction. | |
| * | | * | |
| * @param tsx The STUN transaction. | | * @param tsx The STUN transaction. | |
| * | | * | |
| * @return PJ_SUCCESS on success or PJ_EINVAL if the parameter | | * @return PJ_SUCCESS on success or PJ_EINVAL if the parameter | |
| * is NULL. | | * is NULL. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_stun_client_tsx_stop(pj_stun_client_tsx *tsx); | | PJ_DECL(pj_status_t) pj_stun_client_tsx_stop(pj_stun_client_tsx *tsx); | |
| | | | |
| /** | | /** | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 13 lines changed or added | |
|
| videodev.h | | videodev.h | |
|
| /* $Id: videodev.h 4704 2014-01-16 05:30:46Z ming $ */ | | /* $Id: videodev.h 4994 2015-03-17 04:02:44Z nanang $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2011 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 60 | | skipping to change at line 60 | |
| typedef enum pjmedia_vid_dev_hwnd_type | | typedef enum pjmedia_vid_dev_hwnd_type | |
| { | | { | |
| /** | | /** | |
| * Type none. | | * Type none. | |
| */ | | */ | |
| PJMEDIA_VID_DEV_HWND_TYPE_NONE, | | PJMEDIA_VID_DEV_HWND_TYPE_NONE, | |
| | | | |
| /** | | /** | |
| * Native window handle on Windows. | | * Native window handle on Windows. | |
| */ | | */ | |
|
| PJMEDIA_VID_DEV_HWND_TYPE_WINDOWS | | PJMEDIA_VID_DEV_HWND_TYPE_WINDOWS, | |
| | | | |
| | | /** | |
| | | * Native view on iOS. | |
| | | */ | |
| | | PJMEDIA_VID_DEV_HWND_TYPE_IOS, | |
| | | | |
| | | /** | |
| | | * Native window handle on Android. | |
| | | */ | |
| | | PJMEDIA_VID_DEV_HWND_TYPE_ANDROID | |
| | | | |
| } pjmedia_vid_dev_hwnd_type; | | } pjmedia_vid_dev_hwnd_type; | |
| | | | |
| /** | | /** | |
| * Type for window handle. | | * Type for window handle. | |
| */ | | */ | |
| typedef struct pjmedia_vid_dev_hwnd | | typedef struct pjmedia_vid_dev_hwnd | |
| { | | { | |
| /** | | /** | |
| * The window handle type. | | * The window handle type. | |
| | | | |
| skipping to change at line 92 | | skipping to change at line 102 | |
| struct { | | struct { | |
| void *window; /**< Window */ | | void *window; /**< Window */ | |
| void *display; /**< Display */ | | void *display; /**< Display */ | |
| } x11; | | } x11; | |
| struct { | | struct { | |
| void *window; /**< Window */ | | void *window; /**< Window */ | |
| } cocoa; | | } cocoa; | |
| struct { | | struct { | |
| void *window; /**< Window */ | | void *window; /**< Window */ | |
| } ios; | | } ios; | |
|
| | | struct { | |
| | | void *window; /**< Native window */ | |
| | | } android; | |
| void *window; | | void *window; | |
| } info; | | } info; | |
| | | | |
| } pjmedia_vid_dev_hwnd; | | } pjmedia_vid_dev_hwnd; | |
| | | | |
| /** | | /** | |
| * Parameter for switching device with PJMEDIA_VID_DEV_CAP_SWITCH capabilit
y. | | * Parameter for switching device with PJMEDIA_VID_DEV_CAP_SWITCH capabilit
y. | |
| * Initialize this with pjmedia_vid_dev_switch_param_default() | | * Initialize this with pjmedia_vid_dev_switch_param_default() | |
| */ | | */ | |
| typedef struct pjmedia_vid_dev_switch_param | | typedef struct pjmedia_vid_dev_switch_param | |
| | | | |
| skipping to change at line 218 | | skipping to change at line 231 | |
| * PJ_TRUE or PJ_FALSE. | | * PJ_TRUE or PJ_FALSE. | |
| */ | | */ | |
| PJMEDIA_VID_DEV_CAP_OUTPUT_HIDE = 32, | | PJMEDIA_VID_DEV_CAP_OUTPUT_HIDE = 32, | |
| | | | |
| /** | | /** | |
| * Support for native preview capability in capture devices. Value is | | * Support for native preview capability in capture devices. Value is | |
| * pj_bool_t. With native preview, capture device can be instructed to | | * pj_bool_t. With native preview, capture device can be instructed to | |
| * show or hide a preview window showing video directly from the camera | | * show or hide a preview window showing video directly from the camera | |
| * by setting this capability to PJ_TRUE or PJ_FALSE. Once the preview | | * by setting this capability to PJ_TRUE or PJ_FALSE. Once the preview | |
| * is started, application may use PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW | | * is started, application may use PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW | |
|
| * capability to query the vidow window. | | * capability to query the video window. | |
| * | | * | |
| * The value of this capability is a pj_bool_t containing boolean | | * The value of this capability is a pj_bool_t containing boolean | |
| * PJ_TRUE or PJ_FALSE. | | * PJ_TRUE or PJ_FALSE. | |
| */ | | */ | |
| PJMEDIA_VID_DEV_CAP_INPUT_PREVIEW = 64, | | PJMEDIA_VID_DEV_CAP_INPUT_PREVIEW = 64, | |
| | | | |
| /** | | /** | |
| * Support for changing video orientation in renderer and querying | | * Support for changing video orientation in renderer and querying | |
| * video orientation info in capture. Changing video orientation in | | * video orientation info in capture. Changing video orientation in | |
| * a renderer will potentially affect the size of render window, | | * a renderer will potentially affect the size of render window, | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 16 lines changed or added | |
|