summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2013-02-27 10:16:08 +0000
committerLiong Sauw Ming <ming@teluu.com>2013-02-27 10:16:08 +0000
commite0b9872e5b72532014d4f2fd8116662cc92fdf64 (patch)
treebe3ac789db5892454d95b218849b56ebdcf24520 /pjmedia
parent1703f7d9893e43ae31e81cb9de5b26420e2f6857 (diff)
Re #1559: Backported to 1.x, except r4312,r4330
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4387 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/build/Makefile4
-rw-r--r--pjmedia/src/pjmedia-audiodev/alsa_dev.c2
-rw-r--r--pjmedia/src/pjmedia/g711.c5
-rw-r--r--pjmedia/src/pjmedia/rtcp.c3
-rw-r--r--pjmedia/src/pjmedia/rtp.c2
-rw-r--r--pjmedia/src/pjmedia/transport_srtp.c52
6 files changed, 49 insertions, 19 deletions
diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
index 59d007fb..5ee3edaf 100644
--- a/pjmedia/build/Makefile
+++ b/pjmedia/build/Makefile
@@ -150,7 +150,9 @@ pjmedia-audiodev:
pjsdp:
$(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB)
-pjmedia-test: $(PJMEDIA_LIB)
+$(PJMEDIA_LIB): pjmedia
+
+pjmedia-test: $(PJMEDIA_LIB) pjmedia
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(PJMEDIA_TEST_EXE)
.PHONY: ../lib/pjmedia.ko
diff --git a/pjmedia/src/pjmedia-audiodev/alsa_dev.c b/pjmedia/src/pjmedia-audiodev/alsa_dev.c
index 5bcdedf0..efda3190 100644
--- a/pjmedia/src/pjmedia-audiodev/alsa_dev.c
+++ b/pjmedia/src/pjmedia-audiodev/alsa_dev.c
@@ -232,7 +232,7 @@ static pj_status_t add_dev (struct alsa_factory *af, const char *dev_name)
pj_bzero(adi, sizeof(*adi));
/* Set device name */
- strcpy(adi->name, dev_name);
+ strncpy(adi->name, dev_name, sizeof(adi->name));
/* Check the number of playback channels */
adi->output_count = (pb_result>=0) ? 1 : 0;
diff --git a/pjmedia/src/pjmedia/g711.c b/pjmedia/src/pjmedia/g711.c
index 33f6eac6..c7bd26bc 100644
--- a/pjmedia/src/pjmedia/g711.c
+++ b/pjmedia/src/pjmedia/g711.c
@@ -330,7 +330,8 @@ static pj_status_t g711_alloc_codec( pjmedia_codec_factory *factory,
#if !PLC_DISABLED
/* Create PLC, always with 10ms ptime */
- status = pjmedia_plc_create(g711_factory.pool, 8000, 80,
+ status = pjmedia_plc_create(g711_factory.pool, 8000,
+ SAMPLES_PER_FRAME,
0, &codec_priv->plc);
if (status != PJ_SUCCESS) {
pj_mutex_unlock(g711_factory.mutex);
@@ -340,7 +341,7 @@ static pj_status_t g711_alloc_codec( pjmedia_codec_factory *factory,
/* Create VAD */
status = pjmedia_silence_det_create(g711_factory.pool,
- 8000, 80,
+ 8000, SAMPLES_PER_FRAME,
&codec_priv->vad);
if (status != PJ_SUCCESS) {
pj_mutex_unlock(g711_factory.mutex);
diff --git a/pjmedia/src/pjmedia/rtcp.c b/pjmedia/src/pjmedia/rtcp.c
index 52274155..f45b8a60 100644
--- a/pjmedia/src/pjmedia/rtcp.c
+++ b/pjmedia/src/pjmedia/rtcp.c
@@ -752,7 +752,8 @@ static void parse_rtcp_bye(pjmedia_rtcp_session *sess,
/* Check and get BYE reason */
if (size > 8) {
- reason.slen = *((pj_uint8_t*)pkt+8);
+ reason.slen = PJ_MIN(sizeof(sess->stat.peer_sdes_buf_),
+ *((pj_uint8_t*)pkt+8));
pj_memcpy(sess->stat.peer_sdes_buf_, ((pj_uint8_t*)pkt+9),
reason.slen);
reason.ptr = sess->stat.peer_sdes_buf_;
diff --git a/pjmedia/src/pjmedia/rtp.c b/pjmedia/src/pjmedia/rtp.c
index 62c0d656..5a19c37e 100644
--- a/pjmedia/src/pjmedia/rtp.c
+++ b/pjmedia/src/pjmedia/rtp.c
@@ -118,8 +118,6 @@ PJ_DEF(pj_status_t) pjmedia_rtp_encode_rtp( pjmedia_rtp_session *ses,
int payload_len, int ts_len,
const void **rtphdr, int *hdrlen )
{
- PJ_UNUSED_ARG(payload_len);
-
/* Update timestamp */
ses->out_hdr.ts = pj_htonl(pj_ntohl(ses->out_hdr.ts)+ts_len);
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c
index 76bd1518..1a5df765 100644
--- a/pjmedia/src/pjmedia/transport_srtp.c
+++ b/pjmedia/src/pjmedia/transport_srtp.c
@@ -37,7 +37,7 @@
/* Maximum size of packet */
#define MAX_RTP_BUFFER_LEN 1500
#define MAX_RTCP_BUFFER_LEN 1500
-#define MAX_KEY_LEN 32
+#define MAX_KEY_LEN 128
/* Initial value of probation counter. When probation counter > 0,
* it means SRTP is in probation state, and it may restart when
@@ -611,19 +611,47 @@ PJ_DEF(pj_status_t) pjmedia_transport_srtp_start(
/* Declare SRTP session initialized */
srtp->session_inited = PJ_TRUE;
- PJ_LOG(5, (srtp->pool->obj_name, "TX: %s key=%s", srtp->tx_policy.name.ptr,
- octet_string_hex_string(tx->key.ptr, tx->key.slen)));
- if (srtp->tx_policy.flags) {
- PJ_LOG(5,(srtp->pool->obj_name,"TX: disable%s%s", (cr_tx_idx?"":" enc"),
- (au_tx_idx?"":" auth")));
- }
+ /* Logging stuffs */
+#if PJ_LOG_MAX_LEVEL >= 5
+ {
+ char b64[PJ_BASE256_TO_BASE64_LEN(MAX_KEY_LEN)];
+ int b64_len;
- PJ_LOG(5, (srtp->pool->obj_name, "RX: %s key=%s", srtp->rx_policy.name.ptr,
- octet_string_hex_string(rx->key.ptr, rx->key.slen)));
- if (srtp->rx_policy.flags) {
- PJ_LOG(5,(srtp->pool->obj_name,"RX: disable%s%s", (cr_rx_idx?"":" enc"),
- (au_rx_idx?"":" auth")));
+ /* TX crypto and key */
+ b64_len = sizeof(b64);
+ status = pj_base64_encode((pj_uint8_t*)tx->key.ptr, tx->key.slen,
+ b64, &b64_len);
+ if (status != PJ_SUCCESS)
+ b64_len = pj_ansi_sprintf(b64, "--key too long--");
+ else
+ b64[b64_len] = '\0';
+
+ PJ_LOG(5, (srtp->pool->obj_name, "TX: %s key=%s",
+ srtp->tx_policy.name.ptr, b64));
+ if (srtp->tx_policy.flags) {
+ PJ_LOG(5,(srtp->pool->obj_name, "TX: disable%s%s",
+ (cr_tx_idx?"":" enc"),
+ (au_tx_idx?"":" auth")));
+ }
+
+ /* RX crypto and key */
+ b64_len = sizeof(b64);
+ status = pj_base64_encode((pj_uint8_t*)rx->key.ptr, rx->key.slen,
+ b64, &b64_len);
+ if (status != PJ_SUCCESS)
+ b64_len = pj_ansi_sprintf(b64, "--key too long--");
+ else
+ b64[b64_len] = '\0';
+
+ PJ_LOG(5, (srtp->pool->obj_name, "RX: %s key=%s",
+ srtp->rx_policy.name.ptr, b64));
+ if (srtp->rx_policy.flags) {
+ PJ_LOG(5,(srtp->pool->obj_name,"RX: disable%s%s",
+ (cr_rx_idx?"":" enc"),
+ (au_rx_idx?"":" auth")));
+ }
}
+#endif
on_return:
pj_lock_release(srtp->mutex);