Cygwin compatibility workaround
authorEric Lasota <riot@icculus.org>
Mon, 11 Jun 2007 07:57:15 +0000 (07:57 +0000)
committerBenoit Fouet <benoit.fouet@free.fr>
Mon, 11 Jun 2007 07:57:15 +0000 (07:57 +0000)
patch by Eric Lasota: [ riot icculus org ]
original thread: [FFmpeg-devel] [PATCH] elbg.c Cygwin compatibility workaround
date: 06/09/2007 09:26 AM

Originally committed as revision 9279 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/elbg.c

index c2393e70baa559157ddf2206147f679ce0d56f15..6cd71a28bc822f8c4420bbbbc36976958c93052f 100644 (file)
@@ -115,7 +115,7 @@ static int get_high_utility_cell(elbg_data *elbg)
  * Implementation of the simple LBG algorithm for just two codebooks
  */
 static int simple_lbg(int dim,
-                      int centroid[3][dim],
+                      int *centroid[3],
                       int newutility[3],
                       int *points,
                       cell *cells)
@@ -186,7 +186,7 @@ static void get_new_centroids(elbg_data *elbg, int huc, int *newcentroid_i,
  * @param newcentroid  A vector with the position of the new centroids
  */
 static void shift_codebook(elbg_data *elbg, int *indexes,
-                           int newcentroid[3][elbg->dim])
+                           int *newcentroid[3])
 {
     cell *tempdata;
     cell **pp = &elbg->cells[indexes[2]];
@@ -246,6 +246,7 @@ static void try_shift_candidate(elbg_data *elbg, int idx[3])
     int j, k, olderror=0, newerror, cont=0;
     int newutility[3];
     int newcentroid[3][elbg->dim];
+    int *newcentroid_ptrs[3] = { newcentroid[0], newcentroid[1], newcentroid[2] };
     cell *tempcell;
 
     for (j=0; j<3; j++)
@@ -269,11 +270,11 @@ static void try_shift_candidate(elbg_data *elbg, int idx[3])
 
     newerror = newutility[2];
 
-    newerror += simple_lbg(elbg->dim, newcentroid, newutility, elbg->points,
+    newerror += simple_lbg(elbg->dim, newcentroid_ptrs, newutility, elbg->points,
                            elbg->cells[idx[1]]);
 
     if (olderror > newerror) {
-        shift_codebook(elbg, idx, newcentroid);
+        shift_codebook(elbg, idx, newcentroid_ptrs);
 
         elbg->error += newerror - olderror;