From d655031534ac40be756002e1eccb2e6e5dd3062c Mon Sep 17 00:00:00 2001 From: Peter Olsson Date: Sun, 9 Feb 2014 14:19:36 +0100 Subject: [PATCH] Improvements to last commit, this should make things work better on all platforms --- libs/srtp/include/srtp_priv.h | 76 +++++++++++++---------------------- 1 file changed, 29 insertions(+), 47 deletions(-) diff --git a/libs/srtp/include/srtp_priv.h b/libs/srtp/include/srtp_priv.h index c2bcbbacd2..825017018f 100644 --- a/libs/srtp/include/srtp_priv.h +++ b/libs/srtp/include/srtp_priv.h @@ -68,39 +68,30 @@ * fully pack the bit fields. */ -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4214) -#endif - typedef struct { - unsigned char cc:4; /* CSRC count */ - unsigned char x:1; /* header extension flag */ - unsigned char p:1; /* padding flag */ - unsigned char version:2; /* protocol version */ - unsigned char pt:7; /* payload type */ - unsigned char m:1; /* marker bit */ - uint16_t seq; /* sequence number */ - uint32_t ts; /* timestamp */ - uint32_t ssrc; /* synchronization source */ + unsigned cc:4; /* CSRC count */ + unsigned x:1; /* header extension flag */ + unsigned p:1; /* padding flag */ + unsigned version:2; /* protocol version */ + unsigned pt:7; /* payload type */ + unsigned m:1; /* marker bit */ + unsigned seq:16; /* sequence number */ + unsigned ts:32; /* timestamp */ + unsigned ssrc:32; /* synchronization source */ } srtp_hdr_t; -#ifdef _MSC_VER -#pragma warning(pop) -#endif - #else /* BIG_ENDIAN */ typedef struct { - unsigned char version:2; /* protocol version */ - unsigned char p:1; /* padding flag */ - unsigned char x:1; /* header extension flag */ - unsigned char cc:4; /* CSRC count */ - unsigned char m:1; /* marker bit */ + unsigned version:2; /* protocol version */ + unsigned p:1; /* padding flag */ + unsigned x:1; /* header extension flag */ + unsigned cc:4; /* CSRC count */ + unsigned m:1; /* marker bit */ unsigned pt:7; /* payload type */ - uint16_t seq; /* sequence number */ - uint32_t ts; /* timestamp */ - uint32_t ssrc; /* synchronization source */ + unsigned seq:16; /* sequence number */ + unsigned ts:32; /* timestamp */ + unsigned ssrc:32; /* synchronization source */ } srtp_hdr_t; #endif @@ -120,24 +111,15 @@ typedef struct { #ifndef WORDS_BIGENDIAN -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4214) -#endif - typedef struct { - unsigned char rc:5; /* reception report count */ - unsigned char p:1; /* padding flag */ - unsigned char version:2; /* protocol version */ - unsigned char pt:8; /* payload type */ - uint16_t len; /* length */ - uint32_t ssrc; /* synchronization source */ + unsigned rc:5; /* reception report count */ + unsigned p:1; /* padding flag */ + unsigned version:2; /* protocol version */ + unsigned pt:8; /* payload type */ + unsigned len:16; /* length */ + unsigned ssrc:32; /* synchronization source */ } srtcp_hdr_t; -#ifdef _MSC_VER -#pragma warning(pop) -#endif - typedef struct { unsigned int index:31; /* srtcp packet index in network order! */ unsigned int e:1; /* encrypted? 1=yes */ @@ -149,12 +131,12 @@ typedef struct { #else /* BIG_ENDIAN */ typedef struct { - unsigned char version:2; /* protocol version */ - unsigned char p:1; /* padding flag */ - unsigned char rc:5; /* reception report count */ - unsigned char pt:8; /* payload type */ - uint16_t len; /* length */ - uint32_t ssrc; /* synchronization source */ + unsigned version:2; /* protocol version */ + unsigned p:1; /* padding flag */ + unsigned rc:5; /* reception report count */ + unsigned pt:8; /* payload type */ + uint16_t len; /* length */ + uint32_t ssrc; /* synchronization source */ } srtcp_hdr_t; typedef struct {