Fixed bug in RTCP: packing error causing size mismatch when compiled with MSVC

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@382 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/include/pjmedia/rtcp.h b/pjmedia/include/pjmedia/rtcp.h
index ccd32a2..96f135e 100644
--- a/pjmedia/include/pjmedia/rtcp.h
+++ b/pjmedia/include/pjmedia/rtcp.h
@@ -37,6 +37,8 @@
  * @{
  */
 
+#pragma pack(1)
+
 /**
  * RTCP sender report.
  */
@@ -100,7 +102,7 @@
     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 @@
 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 ab59dd2..d80656a 100644
--- a/pjsip-apps/src/samples/siprtp.c
+++ b/pjsip-apps/src/samples/siprtp.c
@@ -1105,8 +1105,10 @@
 	    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);