00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __FIREVISION_UTILS_COMPRESSION_IMAGE_COMPRESSOR_H_
00025 #define __FIREVISION_UTILS_COMPRESSION_IMAGE_COMPRESSOR_H_
00026
00027 #include <fvutils/color/colorspaces.h>
00028 #include <sys/types.h>
00029
00030 namespace firevision {
00031 #if 0
00032 }
00033 #endif
00034
00035 class ImageCompressor {
00036 public:
00037
00038
00039 enum CompressionDestination {
00040 COMP_DEST_FILE,
00041 COMP_DEST_MEM
00042 };
00043
00044 virtual ~ImageCompressor();
00045
00046 virtual void set_image_dimensions(unsigned int width, unsigned int height) = 0;
00047 virtual void set_image_buffer(colorspace_t cspace, unsigned char *buffer) = 0;
00048 virtual void set_destination_buffer(unsigned char *buf, unsigned int buf_size) = 0;
00049 virtual size_t compressed_size() = 0;
00050 virtual void set_filename(const char *filename) = 0;
00051 virtual void set_compression_destination(CompressionDestination cd) = 0;
00052 virtual bool supports_compression_destination(CompressionDestination cd) = 0;
00053 virtual size_t recommended_compressed_buffer_size() = 0;
00054 virtual void compress() = 0;
00055
00056 };
00057
00058 }
00059
00060 #endif