Visual Servoing Platform  version 3.3.0
vpDirectShowGrabber Class Reference

#include <vpDirectShowGrabber.h>

+ Inheritance diagram for vpDirectShowGrabber:

Public Member Functions

unsigned int getHeight ()
 
unsigned int getWidth ()
 
 vpDirectShowGrabber ()
 
virtual ~vpDirectShowGrabber ()
 
void open ()
 
void open (vpImage< unsigned char > &I)
 
void open (vpImage< vpRGBa > &I)
 
void acquire (vpImage< unsigned char > &I)
 
void acquire (vpImage< vpRGBa > &I)
 
void close ()
 
unsigned int getDeviceNumber ()
 
bool setDevice (unsigned int id)
 
void displayDevices ()
 
bool setImageSize (unsigned int width, unsigned int height)
 
bool setFramerate (double framerate)
 
bool setFormat (unsigned int width, unsigned int height, double framerate)
 
void getFormat (unsigned int &width, unsigned int &height, double &framerate)
 
bool getStreamCapabilities ()
 
bool setMediaType (int mediaTypeID)
 
int getMediaType ()
 
Inherited functionalities from vpFramegrabber
unsigned int getHeight () const
 
unsigned int getWidth () const
 

Public Attributes

bool init
 

Protected Attributes

unsigned int height
 
unsigned int width
 

Detailed Description

class for windows direct show devices

This class' goal is to totally hide the implementation of the framegrabber from the rest of the application. This is necessary to avoid conflicts between dshow's Qedit.h and Direct3D's includes.

Examples
grabDirectShow.cpp, grabDirectShowMulti.cpp, manGrabDirectShow.cpp, and servoBiclopsPoint2DArtVelocity.cpp.

Definition at line 62 of file vpDirectShowGrabber.h.

Constructor & Destructor Documentation

◆ vpDirectShowGrabber()

vpDirectShowGrabber::vpDirectShowGrabber ( )

Constructor. Initializes COM.

Definition at line 59 of file vpDirectShowGrabber.cpp.

◆ ~vpDirectShowGrabber()

vpDirectShowGrabber::~vpDirectShowGrabber ( )
virtual

Destructor

Definition at line 64 of file vpDirectShowGrabber.cpp.

Member Function Documentation

◆ acquire() [1/2]

void vpDirectShowGrabber::acquire ( vpImage< unsigned char > &  I)
virtual

Grabs a grayscale image from the video stream. Uses a semaphore to synchronize with the framegrabber callback.

Parameters
IThe image to fill with the grabbed frame
Exceptions
otherErrorCan't grab the frame

Implements vpFrameGrabber.

Examples
grabDirectShow.cpp, grabDirectShowMulti.cpp, manGrabDirectShow.cpp, and servoBiclopsPoint2DArtVelocity.cpp.

Definition at line 91 of file vpDirectShowGrabber.cpp.

◆ acquire() [2/2]

void vpDirectShowGrabber::acquire ( vpImage< vpRGBa > &  I)
virtual

Grabs a rgba image from the video stream. Uses a semaphore to synchronize with the framegrabber callback.

Parameters
IThe image to fill with the grabbed frame
Exceptions
otherErrorCan't grab the frame

Implements vpFrameGrabber.

Definition at line 101 of file vpDirectShowGrabber.cpp.

◆ close()

void vpDirectShowGrabber::close ( )
virtual

Stops the framegrabber

Implements vpFrameGrabber.

Examples
grabDirectShow.cpp, grabDirectShowMulti.cpp, and manGrabDirectShow.cpp.

Definition at line 106 of file vpDirectShowGrabber.cpp.

◆ displayDevices()

void vpDirectShowGrabber::displayDevices ( )

Displays the list of devices on the standard output

Examples
grabDirectShowMulti.cpp.

Definition at line 125 of file vpDirectShowGrabber.cpp.

◆ getDeviceNumber()

unsigned int vpDirectShowGrabber::getDeviceNumber ( )

Gets the number of capture devices

Returns
the number of capture devices
Examples
grabDirectShow.cpp, grabDirectShowMulti.cpp, and manGrabDirectShow.cpp.

Definition at line 112 of file vpDirectShowGrabber.cpp.

◆ getFormat()

void vpDirectShowGrabber::getFormat ( unsigned int &  width,
unsigned int &  height,
double &  framerate 
)

◆ getHeight() [1/2]

unsigned int vpDirectShowGrabber::getHeight ( )

Returns the number of rows in the grabbed image

Definition at line 48 of file vpDirectShowGrabber.cpp.

◆ getHeight() [2/2]

unsigned int vpFrameGrabber::getHeight ( ) const
inlineinherited

Return the number of rows in the image.

Examples
AROgre.cpp, AROgreBasic.cpp, and testPylonGrabber.cpp.

Definition at line 113 of file vpFrameGrabber.h.

◆ getMediaType()

int vpDirectShowGrabber::getMediaType ( )
Examples
grabDirectShowMulti.cpp.

Definition at line 189 of file vpDirectShowGrabber.cpp.

◆ getStreamCapabilities()

bool vpDirectShowGrabber::getStreamCapabilities ( )

Get the available capture formats

Returns
true if successful
Examples
grabDirectShowMulti.cpp.

Definition at line 173 of file vpDirectShowGrabber.cpp.

◆ getWidth() [1/2]

unsigned int vpDirectShowGrabber::getWidth ( )

Returns the number of colunms in the grabbed image

Definition at line 53 of file vpDirectShowGrabber.cpp.

◆ getWidth() [2/2]

unsigned int vpFrameGrabber::getWidth ( ) const
inlineinherited

Return the number of columns in the image.

Examples
AROgre.cpp, AROgreBasic.cpp, and testPylonGrabber.cpp.

Definition at line 115 of file vpFrameGrabber.h.

◆ open() [1/3]

void vpDirectShowGrabber::open ( )

Creates the filter graph and select the first available device.

Exceptions
initializationError
Examples
grabDirectShow.cpp, grabDirectShowMulti.cpp, manGrabDirectShow.cpp, and servoBiclopsPoint2DArtVelocity.cpp.

Definition at line 69 of file vpDirectShowGrabber.cpp.

◆ open() [2/3]

void vpDirectShowGrabber::open ( vpImage< unsigned char > &  I)
virtual

Creates the filter graph and select the first available device.

Exceptions
initializationError

Implements vpFrameGrabber.

Definition at line 75 of file vpDirectShowGrabber.cpp.

◆ open() [3/3]

void vpDirectShowGrabber::open ( vpImage< vpRGBa > &  I)
virtual

Creates the filter graph and select the first available device.

Exceptions
initializationError

Implements vpFrameGrabber.

Definition at line 81 of file vpDirectShowGrabber.cpp.

◆ setDevice()

bool vpDirectShowGrabber::setDevice ( unsigned int  id)

Set the device (or camera) from which images will be grabbed.

Parameters
id: Identifier of the device to use.
Returns
true if the device is set successfully, false otherwise.
Examples
grabDirectShowMulti.cpp.

Definition at line 120 of file vpDirectShowGrabber.cpp.

◆ setFormat()

bool vpDirectShowGrabber::setFormat ( unsigned int  width,
unsigned int  height,
double  framerate 
)

Set capture format

Parameters
width: Image width in pixel
height: Image height in pixel
framerate: Framerate in fps
Returns
true if successful

Definition at line 152 of file vpDirectShowGrabber.cpp.

◆ setFramerate()

bool vpDirectShowGrabber::setFramerate ( double  framerate)

Set capture framerate

Parameters
framerate: Framerate in fps
Returns
true if successful
Examples
manGrabDirectShow.cpp.

Definition at line 143 of file vpDirectShowGrabber.cpp.

◆ setImageSize()

bool vpDirectShowGrabber::setImageSize ( unsigned int  width,
unsigned int  height 
)

Set image Size

Parameters
width: Image width
height: Image height
Returns
true if successful
Examples
manGrabDirectShow.cpp.

Definition at line 133 of file vpDirectShowGrabber.cpp.

◆ setMediaType()

bool vpDirectShowGrabber::setMediaType ( int  mediaTypeID)
 Set capture MediaType
 \param mediaTypeID : mediaTypeID (available in calling

getStreamCapabilities)

 \return true if successful
Examples
grabDirectShowMulti.cpp.

Definition at line 182 of file vpDirectShowGrabber.cpp.

Member Data Documentation

◆ height

unsigned int vpFrameGrabber::height
protectedinherited

Number of rows in the image.

Definition at line 106 of file vpFrameGrabber.h.

Referenced by getFormat().

◆ init

bool vpFrameGrabber::init
inherited

Set to true if the frame grabber has been initialized.

Definition at line 103 of file vpFrameGrabber.h.

◆ width

unsigned int vpFrameGrabber::width
protectedinherited

Number of columns in the image.

Definition at line 107 of file vpFrameGrabber.h.

Referenced by getFormat().