Commit bbde949e authored by Nirbheek Chauhan's avatar Nirbheek Chauhan Committed by Tim-Philipp Müller

win32: Don't use __attribute__ on MSVC

Use MSVC-equivalents for alignment and packing compiler directives when building
on MSVC
parent 63803bfa
......@@ -10,7 +10,11 @@
#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,
......
......@@ -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,
......
......@@ -33,8 +33,12 @@
#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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment