Image Component Library (ICL)
|
ImageOutput implementation for V4L2-Looback devices. More...
#include <V4L2LoopBackOutput.h>
Public Member Functions | |
V4L2LoopBackOutput () | |
creates an unintialized instance More... | |
~V4L2LoopBackOutput () | |
Destructor ... More... | |
V4L2LoopBackOutput (const std::string &device) | |
creates V4L2LoopBackImageOutput from given device string More... | |
void | init (const std::string &deviceString) |
initializes a the deivce More... | |
virtual void | send (const core::ImgBase *image) |
actual publishing function More... | |
Public Member Functions inherited from icl::io::ImageOutput | |
virtual | ~ImageOutput () |
virtual destructor More... | |
virtual CompressionSpec | getCompression () const |
provide the protectedly inherited image compressor options here More... | |
virtual void | setCompression (const CompressionSpec &spec) |
provide the protectedly inherited image compressor options here More... | |
Private Attributes | |
Data * | m_data |
internal data structure More... | |
Additional Inherited Members | |
Protected Member Functions inherited from icl::io::ImageCompressor | |
Header | uncompressHeader (const icl8u *compressedData, int len) |
only decodes an image header More... | |
Header | createHeader (const core::ImgBase *image, bool skipMetaData) |
creates a header for a given image (not data will be null) More... | |
ImageCompressor (const CompressionSpec &spec=CompressionSpec("none")) | |
Creates an image Compressor with given compression mode. More... | |
~ImageCompressor () | |
Destructor. More... | |
virtual void | setCompression (const CompressionSpec &spec) |
string based interface for setting the compression mode More... | |
virtual CompressionSpec | getCompression () const |
can be implemented for returning the current compression mode More... | |
utils::Time | pickTimeStamp (const icl8u *compressedData) |
this can help to find out wheter the data is new and must be encoded More... | |
const CompressedData | compress (const core::ImgBase *image, bool skipMetaData=false) |
encodes a given image into the compressed code More... | |
const core::ImgBase * | uncompress (const icl8u *compressedData, int len, core::ImgBase **dst=0) |
decodes the given byte segment More... | |
Protected Member Functions inherited from icl::utils::Uncopyable | |
Uncopyable () | |
Empty base constructor. More... | |
ImageOutput implementation for V4L2-Looback devices.
The V4L2LoopBackOutput allows you to send images through a V4L2 loopback device. Please don't mix these up with common web-cam devices. You must install the v4l2looback kernel module fisrt. Once this is installed, you can load the kernel module and instantiate a number of loopback devices using
sudo modprobe v4l2loopback devices=1
Please note that the next free devices are used. I.e. if you alread have a webcam or built-in can in your PC/Laptop, which uses /dev/video0, the command above will automatically create /dev/video1 as a loopback-device
Once the device is created it must be initalized using
v4l2loopback-ctl set-caps 'any' /dev/video1
If the device is somehow broken or it can't be accessed anymore, you can re-initialize it using
sudo modprobe -r v4l2loopback && sleep 1 && sudo modprobe v4l2loopback devices=1 && sleep 1 && v4l2loopback-ctl set-caps 'any' /dev/video1
Please don't use the V4L2LoopBackOutput directly, but the GenericImageOutput with the output-specifier 'v4l'
More information can be found at https://github.com/umlaeute/v4l2loopback
icl::io::V4L2LoopBackOutput::V4L2LoopBackOutput | ( | ) |
creates an unintialized instance
icl::io::V4L2LoopBackOutput::~V4L2LoopBackOutput | ( | ) |
Destructor ...
icl::io::V4L2LoopBackOutput::V4L2LoopBackOutput | ( | const std::string & | device | ) |
creates V4L2LoopBackImageOutput from given device string
The device string can either be the full device-name, such as /dev/video1 or just an integer that specifies the device id (1 for /dev/video1 etc.)
void icl::io::V4L2LoopBackOutput::init | ( | const std::string & | deviceString | ) |
initializes a the deivce
|
virtual |
actual publishing function
Implements icl::io::ImageOutput.
|
private |
internal data structure
internal data pointer