conference.h | conference.h | |||
---|---|---|---|---|
/* $Id: conference.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: conference.h 2790 2009-06-24 15:26:59Z nanang $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 218 | skipping to change at line 218 | |||
* | * | |||
* @return PJ_SUCCESS on success. | * @return PJ_SUCCESS on success. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjmedia_conf_add_port( pjmedia_conf *conf, | PJ_DECL(pj_status_t) pjmedia_conf_add_port( pjmedia_conf *conf, | |||
pj_pool_t *pool, | pj_pool_t *pool, | |||
pjmedia_port *strm_port, | pjmedia_port *strm_port, | |||
const pj_str_t *name, | const pj_str_t *name, | |||
unsigned *p_slot ); | unsigned *p_slot ); | |||
/** | /** | |||
* <i><b>Warning:</b> This API has been deprecated since 1.3 and will be | ||||
* removed in the future release, use #PJMEDIA_SPLITCOMB instead.</i> | ||||
* | ||||
* Create and add a passive media port to the conference bridge. Unlike | * Create and add a passive media port to the conference bridge. Unlike | |||
* "normal" media port that is added with #pjmedia_conf_add_port(), media | * "normal" media port that is added with #pjmedia_conf_add_port(), media | |||
* port created with this function will not have its get_frame() and | * port created with this function will not have its get_frame() and | |||
* put_frame() called by the bridge; instead, application MUST continuosly | * put_frame() called by the bridge; instead, application MUST continuosly | |||
* call these functions to the port, to allow media to flow from/to the | * call these functions to the port, to allow media to flow from/to the | |||
* port. | * port. | |||
* | * | |||
* Upon return of this function, application will be given two objects: | * Upon return of this function, application will be given two objects: | |||
* the slot number of the port in the bridge, and pointer to the media | * the slot number of the port in the bridge, and pointer to the media | |||
* port where application MUST start calling get_frame() and put_frame() | * port where application MUST start calling get_frame() and put_frame() | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
jbuf.h | jbuf.h | |||
---|---|---|---|---|
/* $Id: jbuf.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: jbuf.h 2788 2009-06-24 14:46:36Z nanang $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 64 | skipping to change at line 64 | |||
PJMEDIA_JB_ZERO_EMPTY_FRAME = 3 /**< Zero frame is being ret urned | PJMEDIA_JB_ZERO_EMPTY_FRAME = 3 /**< Zero frame is being ret urned | |||
because JB is empty. */ | because JB is empty. */ | |||
}; | }; | |||
/** | /** | |||
* @see pjmedia_jb_frame_type. | * @see pjmedia_jb_frame_type. | |||
*/ | */ | |||
typedef enum pjmedia_jb_frame_type pjmedia_jb_frame_type; | typedef enum pjmedia_jb_frame_type pjmedia_jb_frame_type; | |||
/** | /** | |||
* This structure describes jitter buffer current status. | * This structure describes jitter buffer state. | |||
*/ | */ | |||
struct pjmedia_jb_state | struct pjmedia_jb_state | |||
{ | { | |||
/* Setting */ | ||||
unsigned frame_size; /**< Individual frame size, in bytes. */ | unsigned frame_size; /**< Individual frame size, in bytes. */ | |||
unsigned prefetch; /**< Current prefetch value, in frames */ | ||||
unsigned min_prefetch; /**< Minimum allowed prefetch, in frms. */ | unsigned min_prefetch; /**< Minimum allowed prefetch, in frms. */ | |||
unsigned max_prefetch; /**< Maximum allowed prefetch, in frms. */ | unsigned max_prefetch; /**< Maximum allowed prefetch, in frms. */ | |||
/* Status */ | ||||
unsigned prefetch; /**< Current prefetch value, in frames | ||||
*/ | ||||
unsigned size; /**< Current buffer size, in frames. */ | unsigned size; /**< Current buffer size, in frames. */ | |||
/* Statistic */ | ||||
unsigned avg_delay; /**< Average delay, in ms. */ | unsigned avg_delay; /**< Average delay, in ms. */ | |||
unsigned min_delay; /**< Minimum delay, in ms. */ | unsigned min_delay; /**< Minimum delay, in ms. */ | |||
unsigned max_delay; /**< Maximum delay, in ms. */ | unsigned max_delay; /**< Maximum delay, in ms. */ | |||
unsigned dev_delay; /**< Standard deviation of delay, in ms. | unsigned dev_delay; /**< Standard deviation of delay, in ms. | |||
*/ | */ | |||
unsigned avg_burst; /**< Average burst, in frames. | ||||
*/ | ||||
unsigned lost; /**< Number of lost frames. | ||||
*/ | ||||
unsigned discard; /**< Number of discarded frames. | ||||
*/ | ||||
unsigned empty; /**< Number of empty on GET events. | ||||
*/ | ||||
}; | }; | |||
/** | /** | |||
* @see pjmedia_jb_state | * @see pjmedia_jb_state | |||
*/ | */ | |||
typedef struct pjmedia_jb_state pjmedia_jb_state; | typedef struct pjmedia_jb_state pjmedia_jb_state; | |||
/** | /** | |||
* The constant PJMEDIA_JB_DEFAULT_INIT_DELAY specifies default jitter | * The constant PJMEDIA_JB_DEFAULT_INIT_DELAY specifies default jitter | |||
* buffer prefetch count during jitter buffer creation. | * buffer prefetch count during jitter buffer creation. | |||
End of changes. 7 change blocks. | ||||
5 lines changed or deleted | 19 lines changed or added | |||
math.h | math.h | |||
---|---|---|---|---|
/* $Id: math.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: math.h 2818 2009-06-25 13:27:02Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 143 | skipping to change at line 143 | |||
stat->min = val; | stat->min = val; | |||
if (stat->max < val) | if (stat->max < val) | |||
stat->max = val; | stat->max = val; | |||
} else { | } else { | |||
stat->min = stat->max = val; | stat->min = stat->max = val; | |||
} | } | |||
#if PJ_HAS_FLOATING_POINT | #if PJ_HAS_FLOATING_POINT | |||
delta = val - stat->fmean_; | delta = val - stat->fmean_; | |||
stat->fmean_ += delta/stat->n; | stat->fmean_ += delta/stat->n; | |||
stat->mean = (int) stat->fmean_; | ||||
/* Return mean value with 'rounding' */ | ||||
stat->mean = (int) (stat->fmean_ + 0.5); | ||||
stat->m2_ += (int)(delta * (val-stat->fmean_)); | stat->m2_ += (int)(delta * (val-stat->fmean_)); | |||
#else | #else | |||
delta = val - stat->mean; | delta = val - stat->mean; | |||
stat->mean += delta/stat->n; | stat->mean += delta/stat->n; | |||
stat->mean_res_ += delta % stat->n; | stat->mean_res_ += delta % stat->n; | |||
if (stat->mean_res_ >= stat->n) { | if (stat->mean_res_ >= stat->n) { | |||
++stat->mean; | ++stat->mean; | |||
stat->mean_res_ -= stat->n; | stat->mean_res_ -= stat->n; | |||
} else if (stat->mean_res_ <= -stat->n) { | } else if (stat->mean_res_ <= -stat->n) { | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
os.h | os.h | |||
---|---|---|---|---|
/* $Id: os.h 2482 2009-03-02 15:50:12Z nanang $ */ | /* $Id: os.h 2805 2009-06-25 12:29:04Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 1251 | skipping to change at line 1251 | |||
* @param stop The end timestamp. | * @param stop The end timestamp. | |||
* | * | |||
* @return Elapsed time in milisecond. | * @return Elapsed time in milisecond. | |||
* | * | |||
* @see pj_elapsed_time(), pj_elapsed_cycle(), pj_elapsed_nanosec() | * @see pj_elapsed_time(), pj_elapsed_cycle(), pj_elapsed_nanosec() | |||
*/ | */ | |||
PJ_DECL(pj_uint32_t) pj_elapsed_msec( const pj_timestamp *start, | PJ_DECL(pj_uint32_t) pj_elapsed_msec( const pj_timestamp *start, | |||
const pj_timestamp *stop ); | const pj_timestamp *stop ); | |||
/** | /** | |||
* Variant of #pj_elapsed_msec() which returns 64bit value. | ||||
*/ | ||||
PJ_DECL(pj_uint64_t) pj_elapsed_msec64(const pj_timestamp *start, | ||||
const pj_timestamp *stop ); | ||||
/** | ||||
* Calculate the elapsed time in 32-bit microseconds. | * Calculate the elapsed time in 32-bit microseconds. | |||
* This function calculates the elapsed time using highest precision | * This function calculates the elapsed time using highest precision | |||
* calculation that is available for current platform, considering | * calculation that is available for current platform, considering | |||
* whether floating point or 64-bit precision arithmetic is available. | * whether floating point or 64-bit precision arithmetic is available. | |||
* For maximum portability, application should prefer to use this function | * For maximum portability, application should prefer to use this function | |||
* rather than calculating the elapsed time by itself. | * rather than calculating the elapsed time by itself. | |||
* | * | |||
* @param start The starting timestamp. | * @param start The starting timestamp. | |||
* @param stop The end timestamp. | * @param stop The end timestamp. | |||
* | * | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added | |||
sip_inv.h | sip_inv.h | |||
---|---|---|---|---|
/* $Id: sip_inv.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: sip_inv.h 2799 2009-06-25 10:58:13Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 638 | skipping to change at line 638 | |||
* | * | |||
* @return PJ_SUCCESS if local answer can be accepted by | * @return PJ_SUCCESS if local answer can be accepted by | |||
* SDP negotiator. | * SDP negotiator. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_inv_set_sdp_answer(pjsip_inv_session *inv, | PJ_DECL(pj_status_t) pjsip_inv_set_sdp_answer(pjsip_inv_session *inv, | |||
const pjmedia_sdp_session *sdp ); | const pjmedia_sdp_session *sdp ); | |||
/** | /** | |||
* Create a SIP message to initiate invite session termination. Depending o n | * Create a SIP message to initiate invite session termination. Depending o n | |||
* the state of the session, this function may return CANCEL request, | * the state of the session, this function may return CANCEL request, | |||
* a non-2xx final response, or a BYE request. If the session has not answe | * a non-2xx final response, a BYE request, or even no request. | |||
red | * | |||
* the incoming INVITE, this function creates the non-2xx final response wi | * For UAS, if the session has not answered the incoming INVITE, this funct | |||
th | ion | |||
* the specified status code in st_code and optional status text in st_text | * creates the non-2xx final response with the specified status code in | |||
. | * \a st_code and optional status text in \a st_text. | |||
* | ||||
* For UAC, if the original INVITE has not been answered with a final | ||||
* response, the behavior depends on whether provisional response has been | ||||
* received. If provisional response has been received, this function will | ||||
* create CANCEL request. If no provisional response has been received, the | ||||
* function will not create CANCEL request (the function will return | ||||
* PJ_SUCCESS but the \a p_tdata will contain NULL) because we cannot send | ||||
* CANCEL before receiving provisional response. If then a provisional | ||||
* response is received, the invite session will send CANCEL automatically. | ||||
* | ||||
* For both UAC and UAS, if the INVITE session has been answered with final | ||||
* response, a BYE request will be created. | ||||
* | * | |||
* @param inv The invite session. | * @param inv The invite session. | |||
* @param st_code Status code to be used for terminating the session. | * @param st_code Status code to be used for terminating the session. | |||
* @param st_text Optional status text. | * @param st_text Optional status text. | |||
* @param p_tdata Pointer to receive the message to be created. | * @param p_tdata Pointer to receive the message to be created. Note | |||
* that it's possible to receive NULL here while the | ||||
* function returns PJ_SUCCESS, see the description. | ||||
* | * | |||
* @return PJ_SUCCESS if termination message can be created. | * @return PJ_SUCCESS if termination is initiated. | |||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, | PJ_DECL(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, | |||
int st_code, | int st_code, | |||
const pj_str_t *st_text, | const pj_str_t *st_text, | |||
pjsip_tx_data **p_tdata ); | pjsip_tx_data **p_tdata ); | |||
/** | /** | |||
* Create a re-INVITE request. | * Create a re-INVITE request. | |||
* | * | |||
* @param inv The invite session. | * @param inv The invite session. | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 23 lines changed or added | |||
sip_transaction.h | sip_transaction.h | |||
---|---|---|---|---|
/* $Id: sip_transaction.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: sip_transaction.h 2798 2009-06-25 10:48:08Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 326 | skipping to change at line 326 | |||
int code ); | int code ); | |||
/** | /** | |||
* Cease retransmission on the UAC transaction. The UAC transaction is | * Cease retransmission on the UAC transaction. The UAC transaction is | |||
* still considered running, and it will complete when either final | * still considered running, and it will complete when either final | |||
* response is received or the transaction times out. | * response is received or the transaction times out. | |||
* | * | |||
* This operation normally is used for INVITE transaction only, when | * This operation normally is used for INVITE transaction only, when | |||
* the transaction is cancelled before any provisional response has been | * the transaction is cancelled before any provisional response has been | |||
* received. | * received. | |||
* | ||||
* @param tsx The transaction. | ||||
* | ||||
* @return PJ_SUCCESS or the appropriate error code. | ||||
*/ | */ | |||
PJ_DECL(pj_status_t) pjsip_tsx_stop_retransmit(pjsip_transaction *tsx); | PJ_DECL(pj_status_t) pjsip_tsx_stop_retransmit(pjsip_transaction *tsx); | |||
/** | /** | |||
* Start a timer to terminate transaction after the specified time | ||||
* has elapsed. This function is only valid for INVITE transaction, | ||||
* and only before final response is received for the INVITE transaction. | ||||
* It is normally called after the UAC has sent CANCEL for this | ||||
* INVITE transaction. | ||||
* | ||||
* The purpose of this function is to terminate the transaction if UAS | ||||
* does not send final response to this INVITE transaction even after | ||||
* it sends 200/OK to CANCEL (for example when the UAS complies to RFC | ||||
* 2543). | ||||
* | ||||
* Once this timer is set, the transaction will be terminated either when | ||||
* a final response is received or the timer expires. | ||||
* | ||||
* @param tsx The transaction. | ||||
* @param millisec Timeout value in milliseconds. | ||||
* | ||||
* @return PJ_SUCCESS or the appropriate error code. | ||||
*/ | ||||
PJ_DECL(pj_status_t) pjsip_tsx_set_timeout(pjsip_transaction *tsx, | ||||
unsigned millisec); | ||||
/** | ||||
* Get the transaction instance in the incoming message. If the message | * Get the transaction instance in the incoming message. If the message | |||
* has a corresponding transaction, this function will return non NULL | * has a corresponding transaction, this function will return non NULL | |||
* value. | * value. | |||
* | * | |||
* @param rdata The incoming message buffer. | * @param rdata The incoming message buffer. | |||
* | * | |||
* @return The transaction instance associated with this message, | * @return The transaction instance associated with this message, | |||
* or NULL if the message doesn't match any transactions. | * or NULL if the message doesn't match any transactions. | |||
*/ | */ | |||
PJ_DECL(pjsip_transaction*) pjsip_rdata_get_tsx( pjsip_rx_data *rdata ); | PJ_DECL(pjsip_transaction*) pjsip_rdata_get_tsx( pjsip_rx_data *rdata ); | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 28 lines changed or added | |||
string_i.h | string_i.h | |||
---|---|---|---|---|
/* $Id: string_i.h 2394 2008-12-23 17:27:53Z bennylp $ */ | /* $Id: string_i.h 2819 2009-06-25 13:29:52Z bennylp $ */ | |||
/* | /* | |||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |||
* | * | |||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | |||
* (at your option) any later version. | * (at your option) any later version. | |||
* | * | |||
* This program is distributed in the hope that it will be useful, | * This program is distributed in the hope that it will be useful, | |||
skipping to change at line 35 | skipping to change at line 35 | |||
pj_str_t dst; | pj_str_t dst; | |||
dst.ptr = str; | dst.ptr = str; | |||
dst.slen = str ? pj_ansi_strlen(str) : 0; | dst.slen = str ? pj_ansi_strlen(str) : 0; | |||
return dst; | return dst; | |||
} | } | |||
PJ_IDEF(pj_str_t*) pj_strdup(pj_pool_t *pool, | PJ_IDEF(pj_str_t*) pj_strdup(pj_pool_t *pool, | |||
pj_str_t *dst, | pj_str_t *dst, | |||
const pj_str_t *src) | const pj_str_t *src) | |||
{ | { | |||
/* Without this, destination will be corrupted */ | ||||
if (dst == src) | ||||
return dst; | ||||
if (src->slen) { | if (src->slen) { | |||
dst->ptr = (char*)pj_pool_alloc(pool, src->slen); | dst->ptr = (char*)pj_pool_alloc(pool, src->slen); | |||
pj_memcpy(dst->ptr, src->ptr, src->slen); | pj_memcpy(dst->ptr, src->ptr, src->slen); | |||
} | } | |||
dst->slen = src->slen; | dst->slen = src->slen; | |||
return dst; | return dst; | |||
} | } | |||
PJ_IDEF(pj_str_t*) pj_strdup_with_null( pj_pool_t *pool, | PJ_IDEF(pj_str_t*) pj_strdup_with_null( pj_pool_t *pool, | |||
pj_str_t *dst, | pj_str_t *dst, | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||