Blob Blame History Raw
diff -up ./utils/playercam/playercam.c.fixplayercam ./utils/playercam/playercam.c
--- ./utils/playercam/playercam.c.fixplayercam	2010-10-03 23:22:45.197406018 -0400
+++ ./utils/playercam/playercam.c	2011-01-08 09:23:56.329551970 -0500
@@ -21,7 +21,7 @@
  * Desc: PlayerCam
  * Author: Brad Kratochvil
  * Date: 20050902
- * CVS: $Id: playercam.c 8799 2010-06-28 04:12:42Z jpgr87 $
+ * CVS: $Id: playercam.c 8968 2010-11-15 03:06:34Z jpgr87 $
  *************************************************************************/
 
 /** @ingroup utils */
@@ -413,17 +413,20 @@ player_init(int argc, char *argv[])
       // Decompress the image
       csize = g_camera->image_count;
       playerc_camera_decompress(g_camera);
-      usize = g_camera->image_count;
+      usize =  g_camera->image_count;
+
 
       g_print("camera: [w %d h %d d %d] [%d/%d bytes]\n",
               g_camera->width, g_camera->height, g_camera->bpp, csize, usize);
 
       g_width  = g_camera->width;
       g_height = g_camera->height;
-      if (allocated_size != usize)
+
+      int buffsize = g_camera->width * g_camera->height * 3;
+      if (allocated_size != buffsize)
       {
-    	  g_img = realloc(g_img, usize);
-        allocated_size = usize;
+    	g_img = realloc(g_img, buffsize);
+        allocated_size = buffsize;
       }
     }
     else // try the blobfinder
@@ -467,7 +470,7 @@ player_update()
     {
       // Decompress the image if necessary
       playerc_camera_decompress(g_camera);
-      assert(allocated_size > g_camera->image_count*3);
+      assert(allocated_size >= g_camera->image_count);
       // figure out the colorspace
       switch (g_camera->format)
       {
@@ -485,11 +488,11 @@ player_update()
     	{
           int j = 0;
           // Transform to MONO8
-          for (i = 0; i < g_camera->image_count; i++, j+=2)
+          for (i = 0; i < g_camera->image_count/2; i++, j+=2)
           {
-            g_img[i*3+1] = g_img[i*3+2] = g_img[i*3+3] =
-          	  ((unsigned char)(g_camera->image[j]) << 8) +
-          	  (unsigned char)(g_camera->image[j+1]);
+            g_img[i*3] = g_img[i*3+1] = g_img[i*3+2] =
+          	  ((unsigned char)(g_camera->image[j]));// << 8) +
+//          	  (unsigned char)(g_camera->image[j+1]);
           }
           break;
         }