summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-06-29 15:42:57 +0000
committerBenny Prijono <bennylp@teluu.com>2006-06-29 15:42:57 +0000
commita07ddf779c3ed70101fabf03834b476d8261e3ac (patch)
treefd7aae020a321214c89e0747d34f2255b60f3e02
parent44b3f0a399d641273df8a4b240514e710a905c31 (diff)
Fixed minor bug: RTCP session not fully cleared when it is initialized (should bzero everything), causing incorrect stats when it is reused for next call. Also couple of gcc warnings fixed.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@569 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia/rtcp.c12
-rw-r--r--pjmedia/src/pjmedia/sdp.c2
-rw-r--r--pjmedia/src/pjmedia/stream.c13
3 files changed, 11 insertions, 16 deletions
diff --git a/pjmedia/src/pjmedia/rtcp.c b/pjmedia/src/pjmedia/rtcp.c
index d37b7fda..11f28831 100644
--- a/pjmedia/src/pjmedia/rtcp.c
+++ b/pjmedia/src/pjmedia/rtcp.c
@@ -133,12 +133,8 @@ PJ_DEF(void) pjmedia_rtcp_init(pjmedia_rtcp_session *sess,
pjmedia_rtcp_pkt *rtcp_pkt = &sess->rtcp_pkt;
pj_time_val now;
- /* Reset packet */
- pj_memset(rtcp_pkt, 0, sizeof(pjmedia_rtcp_pkt));
-
- /* Reset statistics */
- pj_memset(&sess->stat, 0, sizeof(pjmedia_rtcp_stat));
- sess->avg_jitter = 0;
+ /* Memset everything */
+ pj_memset(sess, 0, sizeof(pjmedia_rtcp_session));
/* Last RX timestamp in RTP packet */
sess->rtp_last_ts = (unsigned)-1;
@@ -150,10 +146,6 @@ PJ_DEF(void) pjmedia_rtcp_init(pjmedia_rtcp_session *sess,
sess->clock_rate = clock_rate;
sess->pkt_size = samples_per_frame;
- /* Init time */
- sess->rx_lsr = 0;
- sess->rx_lsr_time.u64 = 0;
-
/* Init common RTCP header */
rtcp_pkt->common.version = 2;
rtcp_pkt->common.count = 1;
diff --git a/pjmedia/src/pjmedia/sdp.c b/pjmedia/src/pjmedia/sdp.c
index 48f091d1..835df4e4 100644
--- a/pjmedia/src/pjmedia/sdp.c
+++ b/pjmedia/src/pjmedia/sdp.c
@@ -457,7 +457,7 @@ PJ_DEF(pj_status_t) pjmedia_sdp_rtpmap_to_attr(pj_pool_t *pool,
rtpmap->enc_name.ptr,
rtpmap->clock_rate,
(rtpmap->param.slen ? "/" : ""),
- rtpmap->param.slen,
+ (int)rtpmap->param.slen,
rtpmap->param.ptr);
if (len < 1 || len > sizeof(tempbuf))
diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c
index c65d6ce2..f14683f8 100644
--- a/pjmedia/src/pjmedia/stream.c
+++ b/pjmedia/src/pjmedia/stream.c
@@ -682,11 +682,12 @@ static void handle_incoming_dtmf( pjmedia_stream *stream,
* This callback is called by stream transport on receipt of packets
* in the RTP socket.
*/
-static void on_rx_rtp( pjmedia_stream *stream,
+static void on_rx_rtp( void *data,
const void *pkt,
pj_ssize_t bytes_read)
{
+ pjmedia_stream *stream = data;
pjmedia_channel *channel = stream->dec;
const pjmedia_rtp_hdr *hdr;
const void *payload;
@@ -824,10 +825,12 @@ static void on_rx_rtp( pjmedia_stream *stream,
* This callback is called by stream transport on receipt of packets
* in the RTCP socket.
*/
-static void on_rx_rtcp( pjmedia_stream *stream,
+static void on_rx_rtcp( void *data,
const void *pkt,
pj_ssize_t bytes_read)
{
+ pjmedia_stream *stream = data;
+
/* Check for errors */
if (bytes_read < 0) {
LOGERR_((stream->port.info.name.ptr, "RTCP recv() error",
@@ -1067,9 +1070,9 @@ PJ_DEF(pj_status_t) pjmedia_stream_create( pjmedia_endpt *endpt,
/* Only attach transport when stream is ready. */
- status = (*tp->op->attach)(tp, stream, &info->rem_addr, &info->rem_rtcp,
- sizeof(info->rem_addr), &on_rx_rtp,
- &on_rx_rtcp);
+ status = pjmedia_transport_attach(tp, stream, &info->rem_addr,
+ &info->rem_rtcp, sizeof(info->rem_addr),
+ &on_rx_rtp, &on_rx_rtcp);
if (status != PJ_SUCCESS)
goto err_cleanup;