win32: Don't use __attribute__ on MSVC
authorNirbheek Chauhan <nirbheek@centricular.com>
Wed, 24 Feb 2016 23:47:51 +0000 (05:17 +0530)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 10 Mar 2016 10:01:19 +0000 (10:01 +0000)
Use MSVC-equivalents for alignment and packing compiler directives when building
on MSVC

gst/rtp/dboolhuff.c
gst/rtp/dboolhuff.h
gst/rtp/gstrtpsbcpay.c

index 0e1fd6e..6c94504 100644 (file)
 
 #include "dboolhuff.h"
 
+#ifdef _MSC_VER
+__declspec(align(16)) const unsigned char vp8_norm[256] = {
+#else
 const unsigned char vp8_norm[256] __attribute__ ((aligned (16))) = {
+#endif
 0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
index 41b0f5d..e0a45a2 100644 (file)
@@ -31,7 +31,11 @@ typedef struct
     unsigned int         range;
 } BOOL_DECODER;
 
+#ifdef _MSC_VER
+__declspec(align(16)) extern const unsigned char vp8_norm[256];
+#else
 extern const unsigned char vp8_norm[256] __attribute__((aligned(16)));
+#endif
 
 int vp8dx_start_decode(BOOL_DECODER *br,
                        const unsigned char *source,
index 70cde09..b012407 100644 (file)
 #define DEFAULT_MIN_FRAMES 0
 #define RTP_SBC_HEADER_TOTAL (12 + RTP_SBC_PAYLOAD_HEADER_SIZE)
 
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+/* BEGIN: Packing for rtp_payload */
+#ifdef _MSC_VER
+#pragma pack(push, 1)
+#endif
 
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
 /* FIXME: this seems all a bit over the top for a single byte.. */
 struct rtp_payload
 {
@@ -43,10 +47,8 @@ struct rtp_payload
   guint8 is_last_fragment:1;
   guint8 is_first_fragment:1;
   guint8 is_fragmented:1;
-} __attribute__ ((packed));
-
+}
 #elif G_BYTE_ORDER == G_BIG_ENDIAN
-
 struct rtp_payload
 {
   guint8 is_fragmented:1;
@@ -54,12 +56,19 @@ struct rtp_payload
   guint8 is_last_fragment:1;
   guint8 rfa0:1;
   guint8 frame_count:4;
-} __attribute__ ((packed));
-
+}
 #else
 #error "Unknown byte order"
 #endif
 
+#ifdef _MSC_VER
+;
+#pragma pack(pop)
+#else
+__attribute__ ((packed));
+#endif
+/* END: Packing for rtp_payload */
+
 enum
 {
   PROP_0,