]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11966: [core] Fix regression after libsrtp upgrade to 2.2.0 resulting in no audio
authorAndrey Volk <andywolk@gmail.com>
Mon, 29 Jul 2019 01:05:32 +0000 (05:05 +0400)
committerAndrey Volk <andywolk@gmail.com>
Mon, 29 Jul 2019 10:57:51 +0000 (14:57 +0400)
libs/srtp/include/srtp_priv.h

index 82116f3b86fcf371fe1e2a7cf7150a25cbce2db6..661a7f94ab9f3e6fa58ddf91a9eb2ad2af30fa33 100644 (file)
@@ -176,6 +176,10 @@ typedef struct srtp_ctx_t_ {
  * is not identical)
  */
 
+#ifdef _MSC_VER
+#pragma pack(push, r1, 1)
+#endif
+
 #ifndef WORDS_BIGENDIAN
 
 typedef struct {
@@ -185,8 +189,8 @@ typedef struct {
     unsigned version : 2; /* protocol version       */
     unsigned pt : 7;      /* payload type           */
     unsigned m : 1;       /* marker bit             */
-    uint16_t seq;              /* sequence number        */
-    uint32_t ts;               /* timestamp              */
+    unsigned seq : 16;    /* sequence number        */
+    unsigned ts : 32;     /* timestamp              */
     uint32_t ssrc;             /* synchronization source */
 } srtp_hdr_t;
 
@@ -199,8 +203,8 @@ typedef struct {
     unsigned cc : 4;      /* CSRC count             */
     unsigned m : 1;       /* marker bit             */
     unsigned pt : 7;      /* payload type           */
-    uint16_t seq;              /* sequence number        */
-    uint32_t ts;               /* timestamp              */
+    unsigned seq: 16;     /* sequence number        */
+    unsigned ts : 32;     /* timestamp              */
     uint32_t ssrc;             /* synchronization source */
 } srtp_hdr_t;
 
@@ -225,7 +229,7 @@ typedef struct {
     unsigned p : 1;       /* padding flag           */
     unsigned version : 2; /* protocol version       */
     unsigned pt : 8;      /* payload type           */
-    uint16_t len;              /* length                 */
+    unsigned len : 16;    /* length                 */
     uint32_t ssrc;             /* synchronization source */
 } srtcp_hdr_t;
 
@@ -243,7 +247,7 @@ typedef struct {
     unsigned p : 1;       /* padding flag           */
     unsigned rc : 5;      /* reception report count */
     unsigned pt : 8;      /* payload type           */
-    uint16_t len;              /* length                 */
+    unsigned len : 16;    /* length                 */
     uint32_t ssrc;             /* synchronization source */
 } srtcp_hdr_t;
 
@@ -256,6 +260,10 @@ typedef struct {
 
 #endif
 
+#ifdef _MSC_VER
+#pragma pack(pop, r1)
+#endif
+
 /*
  * srtp_handle_event(srtp, srtm, evnt) calls the event handling
  * function, if there is one.