fuse_image_content.h
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_FVUTILS_NET_FUSE_IMAGE_CONTENT_H_
00025 #define __FIREVISION_FVUTILS_NET_FUSE_IMAGE_CONTENT_H_
00026
00027 #include <fvutils/net/fuse.h>
00028 #include <fvutils/net/fuse_message_content.h>
00029 #include <utils/time/time.h>
00030 #include <sys/types.h>
00031
00032 class SharedMemoryImageBuffer;
00033
00034 class FuseImageContent : public FuseMessageContent
00035 {
00036 public:
00037 FuseImageContent(SharedMemoryImageBuffer *b);
00038 FuseImageContent(uint32_t type, void *payload, size_t payload_size);
00039 FuseImageContent(FUSE_image_format_t image_format, const char *image_id,
00040 unsigned char *buffer, size_t buffer_size,
00041 colorspace_t colorspace,
00042 unsigned int width, unsigned int height,
00043 long int capture_time_sec = 0, long int capture_time_usec = 0);
00044
00045 ~FuseImageContent();
00046
00047 unsigned char * buffer() const;
00048 size_t buffer_size() const;
00049 unsigned int pixel_width() const;
00050 unsigned int pixel_height() const;
00051 unsigned int colorspace() const;
00052 unsigned int format() const;
00053 void decompress(unsigned char *yuv422_planar_buffer, size_t buffer_size);
00054
00055 fawkes::Time * capture_time() const;
00056
00057 virtual void serialize();
00058
00059 private:
00060 unsigned char *__buffer;
00061 size_t __buffer_size;
00062 FUSE_image_message_header_t *__header;
00063
00064 mutable fawkes::Time *__capture_time;
00065 };
00066
00067 #endif