configure.ac: Require gst-plugins-base CVS for audioconvert with non-native float...
authorRené Stadler <mail@renestadler.de>
Thu, 29 Mar 2007 18:51:33 +0000 (18:51 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Thu, 29 Mar 2007 18:51:33 +0000 (18:51 +0000)
Original commit message from CVS:
* configure.ac:
Require gst-plugins-base CVS for audioconvert with non-native
float support and width/depth fix in libgstriff.
Patch by: René Stadler <mail at renestadler dot de>
* gst/auparse/gstauparse.c: (gst_au_parse_reset),
(gst_au_parse_parse_header), (gst_au_parse_chain):
* gst/auparse/gstauparse.h:
Don't swap the floats ourself if they're not in native endianness.
Instead let audioconvert handle this. Fixes #339838.

ChangeLog
configure.ac
gst/auparse/gstauparse.c
gst/auparse/gstauparse.h

index 82e38de..b611de6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2007-03-29  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       * configure.ac:
+       Require gst-plugins-base CVS for audioconvert with non-native
+       float support and width/depth fix in libgstriff.
+
+       Patch by: René Stadler <mail at renestadler dot de>
+
+       * gst/auparse/gstauparse.c: (gst_au_parse_reset),
+       (gst_au_parse_parse_header), (gst_au_parse_chain):
+       * gst/auparse/gstauparse.h:
+       Don't swap the floats ourself if they're not in native endianness.
+       Instead let audioconvert handle this. Fixes #339838.
+
 2007-03-29  Wim Taymans  <wim@fluendo.com>
 
        * gst/rtp/gstasteriskh263.h:
index d0210d1..e429437 100644 (file)
@@ -47,7 +47,7 @@ AM_PROG_LIBTOOL
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=0.10.11.1
-GSTPB_REQ=0.10.11.1
+GSTPB_REQ=0.10.12.1
 
 dnl *** autotools stuff ****
 
index 4664984..64bdd7a 100644 (file)
@@ -158,7 +158,6 @@ gst_au_parse_reset (GstAuParse * auparse)
   auparse->encoding = 0;
   auparse->samplerate = 0;
   auparse->channels = 0;
-  auparse->float_swap = 0;
 
   gst_adapter_clear (auparse->adapter);
 
@@ -283,8 +282,6 @@ gst_au_parse_parse_header (GstAuParse * auparse)
    * http://www.tsp.ece.mcgill.ca/MMSP/Documents/AudioFormats/AU/Samples.html
    */
 
-  auparse->float_swap = 0;
-
   switch (auparse->encoding) {
     case 1:                    /* 8-bit ISDN mu-law G.711 */
       law = 1;
@@ -363,13 +360,9 @@ gst_au_parse_parse_header (GstAuParse * auparse)
     tempcaps = gst_caps_new_simple ("audio/x-raw-float",
         "rate", G_TYPE_INT, auparse->samplerate,
         "channels", G_TYPE_INT, auparse->channels,
-        "endianness", G_TYPE_INT, G_BYTE_ORDER,
+        "endianness", G_TYPE_INT, auparse->endianness,
         "width", G_TYPE_INT, depth, NULL);
     auparse->sample_size = auparse->channels * depth / 8;
-    if (auparse->endianness != G_BYTE_ORDER) {
-      GST_DEBUG_OBJECT (auparse, "need to swap float byte order ourselves!");
-      auparse->float_swap = depth;
-    }
   } else if (layout[0]) {
     tempcaps = gst_caps_new_simple ("audio/x-adpcm",
         "layout", G_TYPE_STRING, layout, NULL);
@@ -474,35 +467,7 @@ gst_au_parse_chain (GstPad * pad, GstBuffer * buf)
     }
 
     data = gst_adapter_peek (auparse->adapter, sendnow);
-
-    /* audioconvert only handles floats in native endianness ... */
-    switch (auparse->float_swap) {
-      case 32:{
-        guint32 *indata = (guint32 *) data;
-        guint32 *outdata = (guint32 *) GST_BUFFER_DATA (outbuf);
-        gint i;
-
-        for (i = 0; i < (sendnow / sizeof (guint32)); ++i) {
-          outdata[i] = GUINT32_SWAP_LE_BE (indata[i]);
-        }
-        break;
-      }
-      case 64:{
-        guint64 *indata = (guint64 *) data;
-        guint64 *outdata = (guint64 *) GST_BUFFER_DATA (outbuf);
-        gint i;
-
-        for (i = 0; i < (sendnow / sizeof (guint64)); ++i) {
-          outdata[i] = GUINT64_SWAP_LE_BE (indata[i]);
-        }
-        break;
-      }
-      default:{
-        memcpy (GST_BUFFER_DATA (outbuf), data, sendnow);
-        break;
-      }
-    }
-
+    memcpy (GST_BUFFER_DATA (outbuf), data, sendnow);
     gst_adapter_flush (auparse->adapter, sendnow);
 
     auparse->buffer_offset += sendnow;
index a74d681..55d13e2 100644 (file)
@@ -62,10 +62,6 @@ struct _GstAuParse {
   guint       samplerate;
   guint       endianness;
   guint       channels;
-
-  /* audioconvert only handles float in native endianness,
-   * so we need to swap endianness here ourselves for now */
-  guint       float_swap; /* 0, 32 or 64 */
 };
 
 struct _GstAuParseClass {