Image Component Library (ICL)
|
Xine-based Video Grabber (grabs most common image formats) More...
#include <VideoGrabber.h>
Public Member Functions | |
VideoGrabber (const std::string &fileName) | |
Create video grabber with given video-file name. More... | |
~VideoGrabber () | |
Destructor. More... | |
virtual const core::ImgBase * | acquireImage () |
grab function More... | |
void | pause () |
direct access to pause video playback (grab will block then) More... | |
void | unpause () |
direct access to unpause video playback More... | |
void | restart () |
direct access to restart video playback from the first frame More... | |
void | processPropertyChange (const utils::Configurable::Property &prop) |
callback for changed configurable properties More... | |
Public Member Functions inherited from icl::io::Grabber | |
Grabber () | |
virtual | ~Grabber () |
Destructor. More... | |
const core::ImgBase * | grab (core::ImgBase **dst=0) |
grab function calls the Grabber-specific acquireImage-method and applies distortion if necessary More... | |
template<class T > | |
bool | desiredUsed () const |
returns whether the desired parameter for the given type is used More... | |
template<class T > | |
void | useDesired (const T &t) |
sets desired parameters (only available for core::depth,utils::Size and core::format) More... | |
void | useDesired (core::depth d, const utils::Size &size, core::format fmt) |
sets up the grabber to use all given desired parameters More... | |
template<class T > | |
void | ignoreDesired () |
set the grabber to ignore the desired param of type T More... | |
void | ignoreDesired () |
sets up the grabber to ignore all desired parameters More... | |
template<class T > | |
T | getDesired () const |
returns the desired value for the given type T More... | |
virtual void | registerCallback (callback cb) |
registers a callback that is called each time, a new image is available More... | |
virtual void | removeAllCallbacks () |
removes all registered image callbacks More... | |
virtual void | notifyNewImageAvailable (const core::ImgBase *image) |
this function can be implemented by subclasses in order to notify, that a new image is available More... | |
void | enableUndistortion (const std::string &filename) |
enables the undistorion More... | |
void | enableUndistortion (const ImageUndistortion &udist) |
enables the undistortion plugin for the grabber using radial and tangential distortion parameters More... | |
void | enableUndistortion (const utils::ProgArg &pa) |
enables undistortion from given programm argument. More... | |
void | enableUndistortion (const core::Img32f &warpMap) |
enables undistortion for given warp map More... | |
void | setUndistortionInterpolationMode (core::scalemode mode) |
sets how undistortion is interpolated (supported modes are interpolateNN and interpolateLIN) More... | |
void | disableUndistortion () |
disables distortion More... | |
bool | isUndistortionEnabled () const |
returns whether distortion is currently enabled More... | |
const core::Img32f * | getUndistortionWarpMap () const |
returns the internal warp map or NULL if undistortion is not enabled More... | |
Public Member Functions inherited from icl::utils::Configurable | |
virtual | ~Configurable () |
virtual destructor More... | |
Configurable (const Configurable &other) | |
Copy constructor. More... | |
Configurable & | operator= (const Configurable &other) |
Assignment operator. More... | |
void | setConfigurableID (const std::string &ID) |
sets the ID of this configurable More... | |
const std::string & | getConfigurableID () const |
returns the configurables static ID More... | |
bool | isOrderedFlagSet () const |
returns whether the ordered flag is set More... | |
void | deactivateProperty (const std::string &pattern) |
adds an additional deativation pattern More... | |
void | deleteDeactivationPattern (const std::string &pattern) |
removed a formerly added deactivation pattern More... | |
std::vector< std::string > | getPropertyListWithoutDeactivated () const |
this returns a filtered list of properties (using all filters added by deactivateProperty) More... | |
virtual void | adaptProperty (const std::string &name, const std::string &newType, const std::string &newInfo, const std::string &newToolTip) |
this function can be used to adapt a specific property afterwards More... | |
void | registerCallback (const Callback &cb) |
add a callback for changed properties More... | |
void | removedCallback (const Callback &cb) |
removes a callback that was registered before More... | |
void | syncChangesTo (Configurable *others, int num=1) |
this can be used to let this instance also apply property changes to others More... | |
virtual void | setPropertyValue (const std::string &propertyName, const Any &value) |
sets a property value More... | |
virtual std::vector< std::string > | getPropertyList () const |
returns a list of All properties, that can be set using setProperty More... | |
virtual bool | supportsProperty (const std::string &propertyName) const |
base implementation for property check (seaches in the property list) More... | |
virtual void | saveProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) const |
writes all available properties into a file More... | |
virtual void | loadProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) |
reads a camera config file from disc More... | |
virtual std::string | getPropertyType (const std::string &propertyName) const |
get type of property More... | |
virtual std::string | getPropertyInfo (const std::string &propertyName) const |
get information of a properties valid values More... | |
virtual Any | getPropertyValue (const std::string &propertyName) const |
returns the current value of a property or a parameter More... | |
virtual std::string | getPropertyToolTip (const std::string &propertyName) const |
returns the tooltip description for a given property More... | |
virtual int | getPropertyVolatileness (const std::string &propertyName) const |
Returns whether this property may be changed internally. More... | |
Protected Attributes | |
XineHandle * | m_xine |
internal data belonging to the xine library More... | |
Data * | m_data |
internal data More... | |
Params * | m_params |
property values More... | |
Protected Attributes inherited from icl::utils::Configurable | |
std::vector< Callback > | callbacks |
internally managed list of callbacks More... | |
Additional Inherited Members | |
Public Types inherited from icl::io::Grabber | |
typedef utils::Function< void, const core::ImgBase * > | callback |
new image callback type More... | |
Public Types inherited from icl::utils::Configurable | |
typedef Function< void, const Property & > | Callback |
Function type for changed properties. More... | |
Static Public Member Functions inherited from icl::io::Grabber | |
static std::string | translateSteppingRange (const utils::SteppingRange< double > &range) |
translates a SteppingRange into a string representation More... | |
static utils::SteppingRange< double > | translateSteppingRange (const std::string &rangeStr) |
creates a SteppingRange out of a string representation More... | |
static std::string | translateDoubleVec (const std::vector< double > &doubleVec) |
translates a vector of doubles into a string representation More... | |
static std::vector< double > | translateDoubleVec (const std::string &doubleVecStr) |
creates a vector of doubles out of a string representation More... | |
static std::string | translateStringVec (const std::vector< std::string > &stringVec) |
translates a vector of strings into a single string representation More... | |
static std::vector< std::string > | translateStringVec (const std::string &stringVecStr) |
creates a vector of strins out of a single string representation More... | |
Static Public Member Functions inherited from icl::utils::Configurable | |
static std::string | create_default_ID (const std::string &prefix) |
this function can be used in subclasses to create a default ID More... | |
static Configurable * | get (const std::string &id) |
returns configurable by given ID More... | |
static void | register_configurable_type (const std::string &classname, Function< Configurable * > creator) |
registers a configurable type More... | |
static std::vector< std::string > | get_registered_configurables () |
returns a list of all registered configurable classnames More... | |
static Configurable * | create_configurable (const std::string &classname) |
creates a configurable by given name More... | |
Static Public Attributes inherited from icl::utils::Configurable | |
static const std::vector< std::string > | EMPTY_VEC |
used as shortcut – just an empty vector of std::strings More... | |
Protected Member Functions inherited from icl::io::Grabber | |
virtual void | setDesiredFormatInternal (core::format fmt) |
internally set a desired format More... | |
virtual void | setDesiredSizeInternal (const utils::Size &size) |
internally set a desired format More... | |
virtual void | setDesiredDepthInternal (core::depth d) |
internally set a desired format More... | |
virtual core::format | getDesiredFormatInternal () const |
returns the desired format More... | |
virtual core::depth | getDesiredDepthInternal () const |
returns the desired format More... | |
virtual utils::Size | getDesiredSizeInternal () const |
returns the desired format More... | |
const core::ImgBase * | adaptGrabResult (const core::ImgBase *src, core::ImgBase **dst) |
Utility function that allows for much easier implementation of grabUD. More... | |
Protected Member Functions inherited from icl::utils::Uncopyable | |
Uncopyable () | |
Empty base constructor. More... | |
Protected Member Functions inherited from icl::utils::Configurable | |
void | addProperty (const std::string &name, const std::string &type, const std::string &info, const Any &value=Any(), const int volatileness=0, const std::string &tooltip=std::string()) |
This can be used by derived classes to store supported properties in the internal list. More... | |
void | addChildConfigurable (Configurable *configurable, const std::string &childPrefix="") |
This adds another configurable as child. More... | |
void | removeChildConfigurable (Configurable *configurable) |
removes the given child configurable More... | |
Property & | prop (const std::string &propertyName) |
this CAN be used e.g. to store a property value in internal property-list More... | |
const Property & | prop (const std::string &propertyName) const |
this CAN be used e.g. to store a property value in internal property-list More... | |
Configurable (const std::string &ID="", bool ordered=true) | |
create this configurable with given ID More... | |
void | call_callbacks (const std::string &propertyName, const Configurable *caller) const |
calls all registered callbacks More... | |
Xine-based Video Grabber (grabs most common image formats)
The VideoGrabber implementation differs somehow from other Grabber implementations, as video playback is heavily constrained by the current video framerate. The VideoGrabber's property interface provides functions to set up the grabbers video playback speed. Internally video frames are obtained successively (using xine's 'experimental feature: framegrab_video_port').
Currently, drop-frames are not allowed/possible, so if the grabber is too slow to reach the desired Video-framerate, playback speed is decreased implicitly
The video grabber does not really work very stable. In particular when linked against the default xine build shipped with ubuntu, you will most likely get some seg-faults due to a known xine bug. Video streams that have a stream-size whose width is not a multiple of 8, will not be displayed correctly due to some undocumented data allignment issues. Some formats just cause seg-faults within 3rd party libs. seeking using setProperty("stream-pos") does not work robustly, however it does work in the icl-video-player application
Please note, that the OpenCVVideoGrabber might be an alternative for you
icl::io::VideoGrabber::VideoGrabber | ( | const std::string & | fileName | ) |
Create video grabber with given video-file name.
icl::io::VideoGrabber::~VideoGrabber | ( | ) |
Destructor.
|
virtual |
grab function
Reimplemented from icl::io::Grabber.
void icl::io::VideoGrabber::pause | ( | ) |
direct access to pause video playback (grab will block then)
void icl::io::VideoGrabber::processPropertyChange | ( | const utils::Configurable::Property & | prop | ) |
callback for changed configurable properties
void icl::io::VideoGrabber::restart | ( | ) |
direct access to restart video playback from the first frame
void icl::io::VideoGrabber::unpause | ( | ) |
direct access to unpause video playback
|
protected |
internal data
|
protected |
property values
|
protected |
internal data belonging to the xine library