Revision: 8486 http://playerstage.svn.sourceforge.net/playerstage/?rev=8486&view=rev Author: thjc Date: 2010-01-10 15:24:26 +0000 (Sun, 10 Jan 2010)
Log Message: ----------- Applied patch 2914674: camera_save_images for JPEG cameras Modified Paths: -------------- code/player/trunk/server/drivers/shell/writelog.cc Modified: code/player/trunk/server/drivers/shell/writelog.cc =================================================================== --- code/player/trunk/server/drivers/shell/writelog.cc 2010-01-10 15:14:02 UTC (rev 8485) +++ code/player/trunk/server/drivers/shell/writelog.cc 2010-01-10 15:24:26 UTC (rev 8486) @@ -2621,38 +2621,47 @@ FILE *file; char filename[1024]; - if (camera_data->compression != PLAYER_CAMERA_COMPRESS_RAW) - { - PLAYER_WARN("unsupported compression method"); - return -1; - } + + if (camera_data->compression == PLAYER_CAMERA_COMPRESS_RAW) { + snprintf(filename, sizeof(filename), "%s/%s_camera_%02d_%06d.pnm", + this->log_directory, this->filestem, device->addr.index, device->cameraFrame++); + } else if (camera_data->compression == PLAYER_CAMERA_COMPRESS_JPEG) { + snprintf(filename, sizeof(filename), "%s/%s_camera_%02d_%06d.jpg", + this->log_directory, this->filestem, device->addr.index, device->cameraFrame++); + } else { + PLAYER_WARN("unsupported compression method"); + return -1; + } - snprintf(filename, sizeof(filename), "%s/%s_camera_%02d_%06d.pnm", - this->log_directory, this->filestem, device->addr.index, device->cameraFrame++); + file = fopen(filename, "w+"); + if (file == NULL) + return -1; + + if (camera_data->compression == PLAYER_CAMERA_COMPRESS_RAW) { + + if (camera_data->format == PLAYER_CAMERA_FORMAT_RGB888) + { + // Write ppm header + fprintf(file, "P6\n%d %d\n%d\n", camera_data->width, camera_data->height, 255); + fwrite(camera_data->image, 1, camera_data->image_count, file); + } + else if (camera_data->format == PLAYER_CAMERA_FORMAT_MONO8) + { + // Write pgm header + fprintf(file, "P5\n%d %d\n%d\n", camera_data->width, camera_data->height, 255); + fwrite(camera_data->image, 1, camera_data->image_count, file); + } + else + { + PLAYER_WARN("unsupported image format"); + } + + } else if (camera_data->compression == PLAYER_CAMERA_COMPRESS_JPEG) { + fwrite(camera_data->image, 1, camera_data->image_count, file); + } - file = fopen(filename, "w+"); - if (file == NULL) - return -1; - - if (camera_data->format == PLAYER_CAMERA_FORMAT_RGB888) - { - // Write ppm header - fprintf(file, "P6\n%d %d\n%d\n", camera_data->width, camera_data->height, 255); - fwrite(camera_data->image, 1, camera_data->image_count, file); - } - else if (camera_data->format == PLAYER_CAMERA_FORMAT_MONO8) - { - // Write pgm header - fprintf(file, "P5\n%d %d\n%d\n", camera_data->width, camera_data->height, 255); - fwrite(camera_data->image, 1, camera_data->image_count, file); - } - else - { - PLAYER_WARN("unsupported image format"); - } - - fclose(file); - } + fclose(file); + } return 0; default: return -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Playerstage-commit mailing list Playerstage-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/playerstage-commit