Revert "fix compress filter for big endian machines"
authorAndre Noll <maan@systemlinux.org>
Mon, 2 Apr 2007 15:16:54 +0000 (17:16 +0200)
committerAndre Noll <maan@systemlinux.org>
Mon, 2 Apr 2007 15:16:54 +0000 (17:16 +0200)
This reverts commit 85225bb1292d1885e0261fb5109d18ecd584c267.

because it broke little endian (x86) machines. The issue needs
further investigation...

aacdec.c
configure.ac
filter.h
mp3dec.c
oggdec.c
osx_write.c

index c860a3b..9ed1201 100644 (file)
--- a/aacdec.c
+++ b/aacdec.c
@@ -154,8 +154,8 @@ static ssize_t aacdec(char *input_buffer, size_t len, struct filter_node *fn)
                goto out;
        for (i = 0; i < padd->frame_info.samples; i++) {
                short *s = (short *)outbuffer;
                goto out;
        for (i = 0; i < padd->frame_info.samples; i++) {
                short *s = (short *)outbuffer;
-               write_int16_host_endian(fn->buf + fn->loaded, s);
-               fn->loaded += 2;
+               fn->buf[fn->loaded++] = s[i] & 0xff;
+               fn->buf[fn->loaded++] = (s[i] >> 8) & 0xff;
        }
 success:
        ret = consumed;
        }
 success:
        ret = consumed;
index 316f95c..aeb6f8d 100644 (file)
@@ -15,8 +15,6 @@ AC_MSG_CHECKING(os type)
 OSTYPE="`$UNAMEPATH -s`"
 AC_MSG_RESULT("$OSTYPE")
 
 OSTYPE="`$UNAMEPATH -s`"
 AC_MSG_RESULT("$OSTYPE")
 
-AC_C_BIGENDIAN()
-
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_INSTALL
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_INSTALL
index 06d727f..321d763 100644 (file)
--- a/filter.h
+++ b/filter.h
@@ -299,20 +299,6 @@ void (*print_help)(void);
  */
 void *(*parse_config)(int argc, char **argv);
 };
  */
 void *(*parse_config)(int argc, char **argv);
 };
-
-
-static inline void write_int16_host_endian(char *buf, int16_t val)
-{
-#ifndef BIGENDIAN
-       *buf = val >> 8;
-       *(buf + 1) = val & 0xff;
-#else
-       *buf = val & 0xff;
-       *(buf + 1) = val >> 8;
-#endif
-}
-
-
 /** \cond */
 extern struct filter filters[];
 #define DECLARE_EXTERN_FILTER_INIT(name) \
 /** \cond */
 extern struct filter filters[];
 #define DECLARE_EXTERN_FILTER_INIT(name) \
@@ -362,5 +348,3 @@ DECLARE_EXTERN_FILTER_INIT(oggdec);
        AACDEC_FILTER \
        OGGDEC_FILTER \
        { .name = NULL } };
        AACDEC_FILTER \
        OGGDEC_FILTER \
        { .name = NULL } };
-
-
index a1374b7..401a03c 100644 (file)
--- a/mp3dec.c
+++ b/mp3dec.c
@@ -74,13 +74,14 @@ next_frame:
        mad_synth_frame(&pmd->synth, &pmd->frame);
 
        for (i = 0; i < pmd->synth.pcm.length; i++) {
        mad_synth_frame(&pmd->synth, &pmd->frame);
 
        for (i = 0; i < pmd->synth.pcm.length; i++) {
+               /* output format: unsigned 16 bit little endian */
                signed short s = MAD_TO_SHORT(pmd->synth.pcm.samples[0][i]);
                signed short s = MAD_TO_SHORT(pmd->synth.pcm.samples[0][i]);
-               write_int16_host_endian(fn->buf + fn->loaded, s);
-               fn->loaded += 2;
+               fn->buf[fn->loaded++] = s & 0xff;
+               fn->buf[fn->loaded++] = s >> 8;
                if (MAD_NCHANNELS(&pmd->frame.header) == 2) { /* stereo */
                        s = MAD_TO_SHORT(pmd->synth.pcm.samples[1][i]);
                if (MAD_NCHANNELS(&pmd->frame.header) == 2) { /* stereo */
                        s = MAD_TO_SHORT(pmd->synth.pcm.samples[1][i]);
-                       write_int16_host_endian(fn->buf + fn->loaded, s);
-                       fn->loaded += 2;
+                       fn->buf[fn->loaded++] = s & 0xff;
+                       fn->buf[fn->loaded++] = s >> 8;
                }
                if (fn->loaded != fn->bufsize) /* output buffer not full */
                        continue;
                }
                if (fn->loaded != fn->bufsize) /* output buffer not full */
                        continue;
index 2ec13d8..929e2ec 100644 (file)
--- a/oggdec.c
+++ b/oggdec.c
 
 /** \cond some internal constants */
 #define BITS 16
 
 /** \cond some internal constants */
 #define BITS 16
-#ifdef BIGENDIAN
 #define ENDIAN 0
 #define ENDIAN 0
-#else
-#define ENDIAN 1
-#endif
 #define SIGN 1
 /** \endcond */
 
 #define SIGN 1
 /** \endcond */
 
index f13ec6e..107746c 100644 (file)
@@ -111,8 +111,14 @@ static void fill_buffer(struct osx_buffer *b, short *source, long size)
                b->size = size;
        }
        dest = b->buffer;
                b->size = size;
        }
        dest = b->buffer;
-       while (size--)
+       while (size--) {
+               char *tmp = (char *)source;
+               char c = *tmp;
+               *tmp = *(tmp + 1);
+               *(tmp + 1) = c;
+               /* *dest++ = ((*source++) + 32768) / 65536.0; */
                *dest++ = (*source++) / 32768.0;
                *dest++ = (*source++) / 32768.0;
+       }
        b->ptr = b->buffer;
        b->remaining = b->size;
 }
        b->ptr = b->buffer;
        b->remaining = b->size;
 }