summaryrefslogtreecommitdiffstats
path: root/osdep/endian.h
blob: c6d13760ea8c5c2387ce9951fc29fb8f3e553357 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef MP_ENDIAN_H_
#define MP_ENDIAN_H_

#include <sys/types.h>

#if !defined(BYTE_ORDER)

#if defined(__BYTE_ORDER)
#define BYTE_ORDER      __BYTE_ORDER
#define LITTLE_ENDIAN   __LITTLE_ENDIAN
#define BIG_ENDIAN      __BIG_ENDIAN
#elif defined(__DARWIN_BYTE_ORDER)
#define BYTE_ORDER      __DARWIN_BYTE_ORDER
#define LITTLE_ENDIAN   __DARWIN_LITTLE_ENDIAN
#define BIG_ENDIAN      __DARWIN_BIG_ENDIAN
#else
#include <libavutil/bswap.h>
#if AV_HAVE_BIGENDIAN
#define BYTE_ORDER      1234
#define LITTLE_ENDIAN   4321
#define BIG_ENDIAN      1234
#else
#define BYTE_ORDER      1234
#define LITTLE_ENDIAN   1234
#define BIG_ENDIAN      4321
#endif
#endif

#endif /* !defined(BYTE_ORDER) */

#if BYTE_ORDER == BIG_ENDIAN
#define MP_SELECT_LE_BE(LE, BE) BE
#else
#define MP_SELECT_LE_BE(LE, BE) LE
#endif

#endif