summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_oss.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/out/ao_oss.c')
-rw-r--r--audio/out/ao_oss.c58
1 files changed, 33 insertions, 25 deletions
diff --git a/audio/out/ao_oss.c b/audio/out/ao_oss.c
index b78f244a7b..de71017432 100644
--- a/audio/out/ao_oss.c
+++ b/audio/out/ao_oss.c
@@ -40,6 +40,7 @@
#include "options/options.h"
#include "common/msg.h"
#include "osdep/timer.h"
+#include "osdep/endian.h"
#if HAVE_SYS_SOUNDCARD_H
#include <sys/soundcard.h>
@@ -89,39 +90,46 @@ static const struct mp_chmap oss_layouts[MP_NUM_CHANNELS + 1] = {
MP_CHMAP8(FL, FR, BL, BR, FC, LFE, SL, SR), // 7.1
};
-static const int format_table[][2] = {
- {AFMT_U8, AF_FORMAT_U8},
- {AFMT_S8, AF_FORMAT_S8},
- {AFMT_U16_LE, AF_FORMAT_U16_LE},
- {AFMT_U16_BE, AF_FORMAT_U16_BE},
- {AFMT_S16_LE, AF_FORMAT_S16_LE},
- {AFMT_S16_BE, AF_FORMAT_S16_BE},
-#ifdef AFMT_S24_PACKED
- {AFMT_S24_PACKED, AF_FORMAT_S24_LE},
+#if !defined(AFMT_S16_NE) && defined(AFMT_S16_LE) && defined(AFMT_S16_BE)
+#define AFMT_S16_NE MP_SELECT_LE_BE(AFMT_S16_LE, AFMT_S16_BE)
#endif
-#ifdef AFMT_U24_LE
- {AFMT_U24_LE, AF_FORMAT_U24_LE},
+
+#if !defined(AFMT_U16_NE) && defined(AFMT_U16_LE) && defined(AFMT_U16_BE)
+#define AFMT_U16_NE MP_SELECT_LE_BE(AFMT_U16_LE, AFMT_U16_BE)
#endif
-#ifdef AFMT_U24_BE
- {AFMT_U24_BE, AF_FORMAT_U24_BE},
+
+#if !defined(AFMT_U24_NE) && defined(AFMT_U24_LE) && defined(AFMT_U24_BE)
+#define AFMT_U24_NE MP_SELECT_LE_BE(AFMT_U24_LE, AFMT_U24_BE)
#endif
-#ifdef AFMT_S24_LE
- {AFMT_S24_LE, AF_FORMAT_S24_LE},
+
+#if !defined(AFMT_S24_NE) && defined(AFMT_S24_LE) && defined(AFMT_S24_BE)
+#define AFMT_S24_NE MP_SELECT_LE_BE(AFMT_S24_LE, AFMT_S24_BE)
#endif
-#ifdef AFMT_S24_BE
- {AFMT_S24_BE, AF_FORMAT_S24_BE},
+
+#if !defined(AFMT_U32_NE) && defined(AFMT_U32_LE) && defined(AFMT_U32_BE)
+#define AFMT_U32MP_SELECT_LE_BE(AFMT_U32_LE, AFMT_U32_BE)
#endif
-#ifdef AFMT_U32_LE
- {AFMT_U32_LE, AF_FORMAT_U32_LE},
+
+#if !defined(AFMT_S32_NE) && defined(AFMT_S32_LE) && defined(AFMT_S32_BE)
+#define AFMT_S32MP_SELECT_LE_BE(AFMT_S32_LE, AFMT_S32_BE)
+#endif
+
+static const int format_table[][2] = {
+ {AFMT_U8, AF_FORMAT_U8},
+ {AFMT_S8, AF_FORMAT_S8},
+ {AFMT_U16_NE, AF_FORMAT_U16},
+ {AFMT_S16_NE, AF_FORMAT_S16},
+#ifdef AFMT_U24_NE
+ {AFMT_U24_NE, AF_FORMAT_U24},
#endif
-#ifdef AFMT_U32_BE
- {AFMT_U32_BE, AF_FORMAT_U32_BE},
+#ifdef AFMT_S24_NE
+ {AFMT_S24_NE, AF_FORMAT_S24},
#endif
-#ifdef AFMT_S32_LE
- {AFMT_S32_LE, AF_FORMAT_S32_LE},
+#ifdef AFMT_U32_NE
+ {AFMT_U32_NE, AF_FORMAT_U32},
#endif
-#ifdef AFMT_S32_BE
- {AFMT_S32_BE, AF_FORMAT_S32_BE},
+#ifdef AFMT_S32_NE
+ {AFMT_S32_NE, AF_FORMAT_S32},
#endif
#ifdef AFMT_FLOAT
{AFMT_FLOAT, AF_FORMAT_FLOAT},