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;
}