gst-libs/gst/audio/gstringbuffer.c: Make gcc-4.1 happy (part of #327357).
authorTim-Philipp Müller <tim@centricular.net>
Sat, 28 Jan 2006 18:19:18 +0000 (18:19 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 28 Jan 2006 18:19:18 +0000 (18:19 +0000)
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format):
Make gcc-4.1 happy (part of #327357).

ChangeLog
gst-libs/gst/audio/gstringbuffer.c

index e5b21c3edd53d6447d226f06138b7f935c36c186..9a53cca5b6b3be67cae2c0abac448f62b0c452a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-28  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * gst-libs/gst/audio/gstringbuffer.c: (build_linear_format):
+         Make gcc-4.1 happy (part of #327357).
+
 2006-01-28  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * sys/v4l/v4l_calls.c: (gst_v4l_open):
index 46c4647a80593229985e9d32bc791360ebaebab4..b1a8ae3f2f2879383f21e983d22720a3f88488dd 100644 (file)
@@ -119,7 +119,7 @@ gst_ring_buffer_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (G_OBJECT (ringbuffer));
 }
 
-static int linear_formats[4 * 2 * 2] = {
+static const int linear_formats[4 * 2 * 2] = {
   GST_S8,
   GST_S8,
   GST_U8,
@@ -138,7 +138,7 @@ static int linear_formats[4 * 2 * 2] = {
   GST_U32_BE
 };
 
-static int linear24_formats[3 * 2 * 2] = {
+static const int linear24_formats[3 * 2 * 2] = {
   GST_S24_3LE,
   GST_S24_3BE,
   GST_U24_3LE,
@@ -156,40 +156,45 @@ static int linear24_formats[3 * 2 * 2] = {
 static GstBufferFormat
 build_linear_format (int depth, int width, int unsignd, int big_endian)
 {
+  const gint *formats;
+
   if (width == 24) {
     switch (depth) {
       case 24:
-        depth = 0;
+        formats = &linear24_formats[0];
         break;
       case 20:
-        depth = 1;
+        formats = &linear24_formats[4];
         break;
       case 18:
-        depth = 2;
+        formats = &linear24_formats[8];
         break;
       default:
         return GST_UNKNOWN;
     }
-    return ((int (*)[2][2]) linear24_formats)[depth][!!unsignd][!!big_endian];
   } else {
     switch (depth) {
       case 8:
-        depth = 0;
+        formats = &linear_formats[0];
         break;
       case 16:
-        depth = 1;
+        formats = &linear_formats[4];
         break;
       case 24:
-        depth = 2;
+        formats = &linear_formats[8];
         break;
       case 32:
-        depth = 3;
+        formats = &linear_formats[12];
         break;
       default:
         return GST_UNKNOWN;
     }
   }
-  return ((int (*)[2][2]) linear_formats)[depth][!!unsignd][!!big_endian];
+  if (unsignd)
+    formats += 2;
+  if (big_endian)
+    formats += 1;
+  return (GstBufferFormat) * formats;
 }
 
 /**