Fix the osx writer on little endian machines.
authorAndre Noll <maan@systemlinux.org>
Sat, 15 Nov 2008 19:26:06 +0000 (20:26 +0100)
committerAndre Noll <maan@systemlinux.org>
Sat, 15 Nov 2008 19:26:06 +0000 (20:26 +0100)
We have to use kLinearPCMFormatFlagIsBigEndian only of we're on a little endian
(intel) system.

osx_write.c

index 6001b85..057526e 100644 (file)
@@ -148,6 +148,12 @@ static OSStatus osx_callback(void * inClientData,
        return 0;
 }
 
+#ifdef WORDS_BIGENDIAN /* ppc */
+#define ENDIAN_FLAGS kLinearPCMFormatFlagIsBigEndian
+#else
+#define ENDIAN_FLAGS 0
+#endif
+
 static int osx_write_open(struct writer_node *wn)
 {
        struct private_osx_write_data *powd = para_calloc(
@@ -195,7 +201,7 @@ static int osx_write_open(struct writer_node *wn)
        /* flags specific to each format */
        format.mFormatFlags = kLinearPCMFormatFlagIsFloat
                | kLinearPCMFormatFlagIsPacked
-               | kLinearPCMFormatFlagIsBigEndian;
+               | ENDIAN_FLAGS;
        if (!conf->channels_given && wng->channels)
                powd->channels = *wng->channels;
        else