From 18cecc69115001ad1b6e980ce7fa13dc3b059c1a Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Thu, 17 Feb 2011 15:59:52 +0000 Subject: Misc (re #1175): fix sample app pcaputil.c bug, it always fails in reading the first/reference packet when the codec is not PCMU (default payload type was hardcoded to zero/PCMU). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3415 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip-apps/src/samples/pcaputil.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'pjsip-apps') diff --git a/pjsip-apps/src/samples/pcaputil.c b/pjsip-apps/src/samples/pcaputil.c index a40b8e0a..9bca477e 100644 --- a/pjsip-apps/src/samples/pcaputil.c +++ b/pjsip-apps/src/samples/pcaputil.c @@ -120,7 +120,8 @@ static void err_exit(const char *title, pj_status_t status) static void read_rtp(pj_uint8_t *buf, pj_size_t bufsize, pjmedia_rtp_hdr **rtp, pj_uint8_t **payload, - unsigned *payload_size) + unsigned *payload_size, + pj_bool_t check_pt) { pj_status_t status; @@ -182,7 +183,7 @@ static void read_rtp(pj_uint8_t *buf, pj_size_t bufsize, #endif /* Update RTP session */ - pjmedia_rtp_session_update(&app.rtp_sess, r, &seq_st); + pjmedia_rtp_session_update2(&app.rtp_sess, r, &seq_st, PJ_FALSE); /* Skip out-of-order packet */ if (seq_st.diff == 0) { @@ -191,7 +192,7 @@ static void read_rtp(pj_uint8_t *buf, pj_size_t bufsize, } /* Skip if payload type is different */ - if (r->pt != app.pt) { + if (check_pt && r->pt != app.pt) { printf("Skipping RTP packet with bad payload type\n"); continue; } @@ -270,7 +271,7 @@ static void pcap2wav(const char *wav_filename, const pj_str_t *srtp_crypto, /* Read first packet */ read_rtp(pkt0.buffer, sizeof(pkt0.buffer), &pkt0.rtp, - &pkt0.payload, &pkt0.payload_len); + &pkt0.payload, &pkt0.payload_len, PJ_FALSE); cmgr = pjmedia_endpt_get_codec_mgr(app.mept); @@ -325,7 +326,7 @@ static void pcap2wav(const char *wav_filename, const pj_str_t *srtp_crypto, /* Read next packet */ read_rtp(pkt1.buffer, sizeof(pkt1.buffer), &pkt1.rtp, - &pkt1.payload, &pkt1.payload_len); + &pkt1.payload, &pkt1.payload_len, PJ_TRUE); /* Fill in the gap (if any) between pkt0 and pkt1 */ ts_gap = pj_ntohl(pkt1.rtp->ts) - pj_ntohl(pkt0.rtp->ts) - -- cgit v1.2.3