]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
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 c860a3b7eb28f2957ae3790f9300b0dcbb94dca5..9ed120120de7af297a0760ad237135ae535a72af 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 316f95c74679613748e0fcc0f12c00b707d2f4a2..aeb6f8d4bf3aed0ff3b1fb5e98d608ede0a7c935 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 06d727f5fe79488951d7a539b9bcd735e9fdce17..321d763c1f9cb5b743db1cbbbf3f95f2f68774cb 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 a1374b7319b1e66167ab316c3ee03a588f5a8327..401a03c582f418d6590a7fc27007becdfab6d73d 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 2ec13d8d21a36feb533948a8b08b6c82c6f3aa21..929e2eccf7df08435b2d59f17561a6012f7822ee 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 f13ec6e1988e00ebce5a9639167650fceea24d6d..107746c78e83f8f875d640a27114ee0d57eb01fa 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;
 }