firevision::FuseImageContent Class Reference
[FireVision FUSE Network ProtocolFireVision Image Processing Framework and Applications]

FUSE image content. More...

#include <fvutils/net/fuse_image_content.h>

Inheritance diagram for firevision::FuseImageContent:

[legend]
List of all members.

Public Member Functions

 FuseImageContent (SharedMemoryImageBuffer *b)
 Constructor.
 FuseImageContent (uint32_t type, void *payload, size_t payload_size)
 Constructor.
 FuseImageContent (FUSE_image_format_t image_format, const char *image_id, unsigned char *buffer, size_t buffer_size, colorspace_t colorspace, unsigned int width, unsigned int height, long int capture_time_sec=0, long int capture_time_usec=0)
 Constructor.
 ~FuseImageContent ()
 Destructor.
unsigned char * buffer () const
 Image buffer.
size_t buffer_size () const
 Get size of buffer.
unsigned int pixel_width () const
 Get image width.
unsigned int pixel_height () const
 Get image height.
unsigned int colorspace () const
 Get colorspace.
unsigned int format () const
 Get image format.
void decompress (unsigned char *yuv422_planar_buffer, size_t buffer_size)
 Decompress image data.
fawkes::Timecapture_time () const
 Get capture time.
virtual void serialize ()
 Serialize message content.

Detailed Description

FUSE image content.

Author:
Tim Niemueller

Definition at line 39 of file fuse_image_content.h.


Constructor & Destructor Documentation

firevision::FuseImageContent::FuseImageContent ( SharedMemoryImageBuffer b  ) 

Constructor.

Copies data from given buffer.

Parameters:
b shared memory image buffer to copy image from

Definition at line 76 of file fuse_image_content.cpp.

References firevision::FuseMessageContent::_payload, firevision::FuseMessageContent::_payload_size, firevision::SharedMemoryImageBuffer::buffer(), firevision::FUSE_image_message_header_t::buffer_size, firevision::SharedMemoryImageBuffer::capture_time(), firevision::FUSE_image_message_header_t::capture_time_sec, firevision::FUSE_image_message_header_t::capture_time_usec, firevision::FUSE_image_message_header_t::colorspace, firevision::SharedMemoryImageBuffer::colorspace(), firevision::colorspace_buffer_size(), firevision::FUSE_image_message_header_t::format, firevision::FUSE_IF_RAW, firevision::FUSE_image_message_header_t::height, firevision::SharedMemoryImageBuffer::height(), firevision::SharedMemoryImageBuffer::image_id(), firevision::FUSE_image_message_header_t::image_id, fawkes::SharedMemory::lock_for_read(), firevision::FUSE_image_message_header_t::reserved, fawkes::SharedMemory::unlock(), firevision::FUSE_image_message_header_t::width, and firevision::SharedMemoryImageBuffer::width().

firevision::FuseImageContent::FuseImageContent ( uint32_t  type,
void *  payload,
size_t  payload_size 
)

Constructor.

Parameters:
type message type
payload payload
payload_size size of payload

Definition at line 53 of file fuse_image_content.cpp.

References firevision::FuseMessageContent::_payload, firevision::FuseMessageContent::_payload_size, firevision::FUSE_image_message_header_t::buffer_size, firevision::FUSE_image_message_header_t::capture_time_sec, firevision::FUSE_image_message_header_t::capture_time_usec, and firevision::FUSE_MT_IMAGE.

firevision::FuseImageContent::FuseImageContent ( FUSE_image_format_t  image_format,
const char *  image_id,
unsigned char *  buffer,
size_t  buffer_size,
colorspace_t  colorspace,
unsigned int  width,
unsigned int  height,
long int  capture_time_sec = 0,
long int  capture_time_usec = 0 
)

Constructor.

Copies data from given buffer.

Parameters:
image_format image format
image_id image ID
buffer image buffer, encoded according to image_format
buffer_size size of buffer in bytes
colorspace color space
width width of image in pixels
height height of image in pixels
capture_time_sec optional seconds part of the capture time
capture_time_usec optional microseconds part of the capture time

Definition at line 122 of file fuse_image_content.cpp.

References firevision::FuseMessageContent::_payload, firevision::FuseMessageContent::_payload_size, firevision::FUSE_image_message_header_t::buffer_size, firevision::FUSE_image_message_header_t::capture_time_sec, firevision::FUSE_image_message_header_t::capture_time_usec, firevision::FUSE_image_message_header_t::colorspace, firevision::FUSE_image_message_header_t::format, firevision::FUSE_image_message_header_t::height, firevision::FUSE_image_message_header_t::image_id, firevision::FUSE_image_message_header_t::reserved, and firevision::FUSE_image_message_header_t::width.

firevision::FuseImageContent::~FuseImageContent (  ) 

Destructor.

Definition at line 157 of file fuse_image_content.cpp.


Member Function Documentation

unsigned char * firevision::FuseImageContent::buffer (  )  const

Image buffer.

Returns:
image buffer

Definition at line 166 of file fuse_image_content.cpp.

Referenced by firevision::NetworkCamera::buffer(), and firevision::NetworkCamera::capture().

size_t firevision::FuseImageContent::buffer_size (  )  const

Get size of buffer.

Returns:
size of buffer returned by buffer()

Definition at line 176 of file fuse_image_content.cpp.

Referenced by firevision::NetworkCamera::capture().

fawkes::Time * firevision::FuseImageContent::capture_time (  )  const

Get capture time.

Returns:
capture time

Definition at line 226 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::capture_time_sec, and firevision::FUSE_image_message_header_t::capture_time_usec.

Referenced by firevision::NetworkCamera::capture_time().

unsigned int firevision::FuseImageContent::colorspace (  )  const

Get colorspace.

Returns:
colorspace

Definition at line 206 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::colorspace.

Referenced by firevision::NetworkCamera::buffer_size().

void firevision::FuseImageContent::decompress ( unsigned char *  yuv422_planar_buffer,
size_t  buffer_size 
)

Decompress image data.

This is a utility method which can be used on clients to decompress compressed image payload. Since every time a new decompressor is created and deleted this method can be slower compared to decompressing the data directly in your application so use with care.

Parameters:
yuv422_planar_buffer an already allocated buffer where the decompressed image will be stored.
buffer_size size of yuv422_planar_buffer in bytes. Must be big enough to store a YUV422_PLANAR image of the image dimensions of the compressed data.

Definition at line 253 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::colorspace, firevision::colorspace_buffer_size(), firevision::convert(), firevision::JpegImageDecompressor::decompress(), firevision::FUSE_image_message_header_t::format, firevision::FUSE_IF_JPEG, firevision::FUSE_image_message_header_t::height, firevision::ImageDecompressor::set_compressed_buffer(), firevision::ImageDecompressor::set_decompressed_buffer(), firevision::FUSE_image_message_header_t::width, and firevision::YUV422_PLANAR.

unsigned int firevision::FuseImageContent::format (  )  const

Get image format.

Returns:
format

Definition at line 216 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::format.

unsigned int firevision::FuseImageContent::pixel_height (  )  const

Get image height.

Returns:
height of image in pixels

Definition at line 196 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::height.

Referenced by firevision::NetworkCamera::buffer_size(), and firevision::NetworkCamera::capture().

unsigned int firevision::FuseImageContent::pixel_width (  )  const

Get image width.

Returns:
width of image in pixels

Definition at line 186 of file fuse_image_content.cpp.

References firevision::FUSE_image_message_header_t::width.

Referenced by firevision::NetworkCamera::buffer_size(), and firevision::NetworkCamera::capture().

void firevision::FuseImageContent::serialize (  )  [virtual]

Serialize message content.

Generate a single contiguous buffer. Make _payload point to this buffer and _payload_size contain the size of the buffer.

Implements firevision::FuseMessageContent.

Definition at line 236 of file fuse_image_content.cpp.


The documentation for this class was generated from the following files:
Generated on Tue Feb 22 13:31:44 2011 for Fawkes API by  doxygen 1.4.7