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

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