diff options
-rw-r--r-- | pjmedia/include/pjmedia/rtcp.h | 7 | ||||
-rw-r--r-- | pjsip-apps/src/samples/siprtp.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/pjmedia/include/pjmedia/rtcp.h b/pjmedia/include/pjmedia/rtcp.h index ccd32a20..96f135e3 100644 --- a/pjmedia/include/pjmedia/rtcp.h +++ b/pjmedia/include/pjmedia/rtcp.h @@ -37,6 +37,8 @@ PJ_BEGIN_DECL * @{ */ +#pragma pack(1) + /** * RTCP sender report. */ @@ -100,7 +102,7 @@ struct pjmedia_rtcp_common unsigned version:2; /**< packet type */ unsigned pt:8; /**< payload type */ #endif - pj_uint16_t length; /**< packet length */ + unsigned length:16; /**< packet length */ }; /** @@ -124,6 +126,9 @@ struct pjmedia_rtcp_pkt typedef struct pjmedia_rtcp_pkt pjmedia_rtcp_pkt; +#pragma pack() + + /** * NTP time representation. */ diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c index ab59dd2a..d80656a5 100644 --- a/pjsip-apps/src/samples/siprtp.c +++ b/pjsip-apps/src/samples/siprtp.c @@ -1105,8 +1105,10 @@ static int media_thread(void *arg) if (status != PJ_SUCCESS) app_perror(THIS_FILE, "Error receiving RTCP packet", status); else { - if (size > sizeof(strm->rem_rtcp)) { - PJ_LOG(3,(THIS_FILE, "Error: RTCP packet too large")); + if (size != sizeof(strm->rem_rtcp)) { + PJ_LOG(3,(THIS_FILE, "Error: RTCP packet size mismatch " + "(recv %d bytes, expecting %d)", + size, sizeof(strm->rem_rtcp))); status = -1; } else { pj_memcpy(&strm->rem_rtcp, packet, size); |