AForge.Video.DirectShow
A strongly-typed resource class, for looking up localized strings, etc.
Returns the cached ResourceManager instance used by this class.
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
This interface is exposed by all input and output pins of DirectShow filters.
Connects the pin to another pin.
Other pin to connect to.
Type to use for the connections (optional).
Return's HRESULT error code.
Makes a connection to this pin and is called by a connecting pin.
Connecting pin.
Media type of the samples to be streamed.
Return's HRESULT error code.
Breaks the current pin connection.
Return's HRESULT error code.
Returns a pointer to the connecting pin.
Receives IPin interface of connected pin (if any).
Return's HRESULT error code.
Returns the media type of this pin's connection.
Pointer to an structure. If the pin is connected,
the media type is returned. Otherwise, the structure is initialized to a default state in which
all elements are 0, with the exception of lSampleSize, which is set to 1, and
FixedSizeSamples, which is set to true.
Return's HRESULT error code.
Retrieves information about this pin (for example, the name, owning filter, and direction).
structure that receives the pin information.
Return's HRESULT error code.
Retrieves the direction for this pin.
Receives direction of the pin.
Return's HRESULT error code.
Retrieves an identifier for the pin.
Pin identifier.
Return's HRESULT error code.
Queries whether a given media type is acceptable by the pin.
structure that specifies the media type.
Return's HRESULT error code.
Provides an enumerator for this pin's preferred media types.
Address of a variable that receives a pointer to the IEnumMediaTypes interface.
Return's HRESULT error code.
Provides an array of the pins to which this pin internally connects.
Address of an array of IPin pointers.
On input, specifies the size of the array. When the method returns,
the value is set to the number of pointers returned in the array.
Return's HRESULT error code.
Notifies the pin that no additional data is expected.
Return's HRESULT error code.
Begins a flush operation.
Return's HRESULT error code.
Ends a flush operation.
Return's HRESULT error code.
Specifies that samples following this call are grouped as a segment with a given start time, stop time, and rate.
Start time of the segment, relative to the original source, in 100-nanosecond units.
End time of the segment, relative to the original source, in 100-nanosecond units.
Rate at which this segment should be processed, as a percentage of the original rate.
Return's HRESULT error code.
The interface provides methods for building a filter graph. An application can use it to add filters to
the graph, connect or disconnect filters, remove filters, and perform other basic operations.
Adds a filter to the graph and gives it a name.
Filter to add to the graph.
Name of the filter.
Return's HRESULT error code.
Removes a filter from the graph.
Filter to be removed from the graph.
Return's HRESULT error code.
Provides an enumerator for all filters in the graph.
Filter enumerator.
Return's HRESULT error code.
Finds a filter that was added with a specified name.
Name of filter to search for.
Interface of found filter.
Return's HRESULT error code.
Connects two pins directly (without intervening filters).
Output pin.
Input pin.
Media type to use for the connection.
Return's HRESULT error code.
Breaks the existing pin connection and reconnects it to the same pin.
Pin to disconnect and reconnect.
Return's HRESULT error code.
Disconnects a specified pin.
Pin to disconnect.
Return's HRESULT error code.
Sets the reference clock to the default clock.
Return's HRESULT error code.
The interface is exposed by source filters to set the file name and media type of the media file that they are to render.
Loads the source filter with the file.
The name of the file to open.
Media type of the file. This can be null.
Return's HRESULT error code.
Retrieves the current file.
Name of media file.
Receives media type.
Return's HRESULT error code.
The interface controls certain video capture operations such as enumerating available
frame rates and image orientation.
Retrieves the capabilities of the underlying hardware.
Pin to query capabilities from.
Get capabilities of the specified pin.
Return's HRESULT error code.
Sets the video control mode of operation.
The pin to set the video control mode on.
Value specifying a combination of the flags to set the video control mode.
Return's HRESULT error code.
Retrieves the video control mode of operation.
The pin to retrieve the video control mode from.
Gets combination of flags, which specify the video control mode.
Return's HRESULT error code.
The method retrieves the actual frame rate, expressed as a frame duration in 100-nanosecond units.
USB (Universal Serial Bus) and IEEE 1394 cameras may provide lower frame rates than requested
because of bandwidth availability. This is only available during video streaming.
The pin to retrieve the frame rate from.
Gets frame rate in frame duration in 100-nanosecond units.
Return's HRESULT error code.
Retrieves the maximum frame rate currently available based on bus bandwidth usage for connections
such as USB and IEEE 1394 camera devices where the maximum frame rate can be limited by bandwidth
availability.
The pin to retrieve the maximum frame rate from.
Index of the format to query for maximum frame rate. This index corresponds
to the order in which formats are enumerated by .
Frame image size (width and height) in pixels.
Gets maximum available frame rate. The frame rate is expressed as frame duration in 100-nanosecond units.
Return's HRESULT error code.
Retrieves a list of available frame rates.
The pin to retrieve the maximum frame rate from.
Index of the format to query for maximum frame rate. This index corresponds
to the order in which formats are enumerated by .
Frame image size (width and height) in pixels.
Number of elements in the list of frame rates.
Array of frame rates in 100-nanosecond units.
Return's HRESULT error code.
DirectShow filter categories.
Audio input device category.
Equals to CLSID_AudioInputDeviceCategory.
Video input device category.
Equals to CLSID_VideoInputDeviceCategory.
Video compressor category.
Equals to CLSID_VideoCompressorCategory.
Audio compressor category
Equals to CLSID_AudioCompressorCategory.
Provides the CLSID of an object that can be stored persistently in the system. Allows the object to specify which object
handler to use in the client process, as it is used in the default implementation of marshaling.
Retrieves the class identifier (CLSID) of the object.
The IAMCameraControl interface controls camera settings such as zoom, pan, aperture adjustment,
or shutter speed. To obtain this interface, query the filter that controls the camera.
Gets the range and default value of a specified camera property.
Specifies the property to query.
Receives the minimum value of the property.
Receives the maximum value of the property.
Receives the step size for the property.
Receives the default value of the property.
Receives a member of the CameraControlFlags enumeration, indicating whether the property is controlled automatically or manually.
Return's HRESULT error code.
Sets a specified property on the camera.
Specifies the property to set.
Specifies the new value of the property.
Specifies the desired control setting, as a member of the CameraControlFlags enumeration.
Return's HRESULT error code.
Gets the current setting of a camera property.
Specifies the property to retrieve.
Receives the value of the property.
Receives a member of the CameraControlFlags enumeration.
The returned value indicates whether the setting is controlled manually or automatically.
Return's HRESULT error code.
Capabilities of video device such as frame size and frame rate.
Frame size supported by video device.
Average frame rate of video device for corresponding frame size.
Maximum frame rate of video device for corresponding frame size.
Number of bits per pixel provided by the camera.
Check if the video capability equals to the specified object.
Object to compare with.
Returns true if both are equal are equal or false otherwise.
Check if two video capabilities are equal.
Second video capability to compare with.
Returns true if both video capabilities are equal or false otherwise.
Get hash code of the object.
Returns hash code ot the object
Equality operator.
First object to check.
Seconds object to check.
Return true if both objects are equal or false otherwise.
Inequality operator.
First object to check.
Seconds object to check.
Return true if both objects are not equal or false otherwise.
Frame rate supported by video device for corresponding frame size.
This field is depricated - should not be used.
Its value equals to .
Specifies the physical type of pin (audio or video).
Default value of connection type. Physically it does not exist, but just either to specify that
connection type should not be changed (input) or was not determined (output).
Specifies a tuner pin for video.
Specifies a composite pin for video.
Specifies an S-Video (Y/C video) pin.
Specifies an RGB pin for video.
Specifies a YRYBY (Y, R–Y, B–Y) pin for video.
Specifies a serial digital pin for video.
Specifies a parallel digital pin for video.
Specifies a SCSI (Small Computer System Interface) pin for video.
Specifies an AUX (auxiliary) pin for video.
Specifies an IEEE 1394 pin for video.
Specifies a USB (Universal Serial Bus) pin for video.
Specifies a video decoder pin.
Specifies a video encoder pin.
Specifies a SCART (Peritel) pin for video.
Not used.
Specifies a tuner pin for audio.
Specifies a line pin for audio.
Specifies a microphone pin.
Specifies an AES/EBU (Audio Engineering Society/European Broadcast Union) digital pin for audio.
Specifies an S/PDIF (Sony/Philips Digital Interface Format) digital pin for audio.
Specifies a SCSI pin for audio.
Specifies an AUX pin for audio.
Specifies an IEEE 1394 pin for audio.
Specifies a USB pin for audio.
Specifies an audio decoder pin.
This enumeration indicates a pin's direction.
Input pin.
Output pin.
The structure describes the format of a media sample.
Globally unique identifier (GUID) that specifies the major type of the media sample.
GUID that specifies the subtype of the media sample.
If true, samples are of a fixed size.
If true, samples are compressed using temporal (interframe) compression.
Size of the sample in bytes. For compressed data, the value can be zero.
GUID that specifies the structure used for the format block.
Not used.
Size of the format block, in bytes.
Pointer to the format block.
Destroys the instance of the class.
Dispose the object.
Dispose the object
Indicates if disposing was initiated manually.
The structure contains information about a pin.
Owning filter.
Direction of the pin.
Name of the pin.
Filter's name.
Owning graph.
The structure describes the bitmap and color information for a video image.
structure that specifies the source video window.
structure that specifies the destination video window.
Approximate data rate of the video stream, in bits per second.
Data error rate, in bit errors per second.
The desired average display time of the video frames, in 100-nanosecond units.
structure that contains color and dimension information for the video image bitmap.
The structure describes the bitmap and color information for a video image (v2).
structure that specifies the source video window.
structure that specifies the destination video window.
Approximate data rate of the video stream, in bits per second.
Data error rate, in bit errors per second.
The desired average display time of the video frames, in 100-nanosecond units.
Flags that specify how the video is interlaced.
Flag set to indicate that the duplication of the stream should be restricted.
The X dimension of picture aspect ratio.
The Y dimension of picture aspect ratio.
Reserved for future use.
Reserved for future use.
structure that contains color and dimension information for the video image bitmap.
The structure contains information about the dimensions and color format of a device-independent bitmap (DIB).
Specifies the number of bytes required by the structure.
Specifies the width of the bitmap.
Specifies the height of the bitmap, in pixels.
Specifies the number of planes for the target device. This value must be set to 1.
Specifies the number of bits per pixel.
If the bitmap is compressed, this member is a FOURCC the specifies the compression.
Specifies the size, in bytes, of the image.
Specifies the horizontal resolution, in pixels per meter, of the target device for the bitmap.
Specifies the vertical resolution, in pixels per meter, of the target device for the bitmap.
Specifies the number of color indices in the color table that are actually used by the bitmap.
Specifies the number of color indices that are considered important for displaying the bitmap.
The structure defines the coordinates of the upper-left and lower-right corners of a rectangle.
Specifies the x-coordinate of the upper-left corner of the rectangle.
Specifies the y-coordinate of the upper-left corner of the rectangle.
Specifies the x-coordinate of the lower-right corner of the rectangle.
Specifies the y-coordinate of the lower-right corner of the rectangle.
The CAUUID structure is a Counted Array of UUID or GUID types.
Size of the array pointed to by pElems.
Pointer to an array of UUID values, each of which specifies UUID.
Performs manual marshaling of pElems to retrieve an array of Guid objects.
A managed representation of pElems.
Enumeration of DirectShow event codes.
Specifies a filter's state or the state of the filter graph.
Stopped. The filter is not processing data.
Paused. The filter is processing data, but not rendering it.
Running. The filter is processing and rendering data.
The interface is exposed by the Sample Grabber Filter. It enables an application to retrieve
individual media samples as they move through the filter graph.
Specifies whether the filter should stop the graph after receiving one sample.
Boolean value specifying whether the filter should stop the graph after receiving one sample.
Return's HRESULT error code.
Specifies the media type for the connection on the Sample Grabber's input pin.
Specifies the required media type.
Return's HRESULT error code.
Retrieves the media type for the connection on the Sample Grabber's input pin.
structure, which receives media type.
Return's HRESULT error code.
Specifies whether to copy sample data into a buffer as it goes through the filter.
Boolean value specifying whether to buffer sample data.
If true, the filter copies sample data into an internal buffer.
Return's HRESULT error code.
Retrieves a copy of the sample that the filter received most recently.
Pointer to the size of the buffer. If pBuffer is NULL, this parameter receives the required size.
Pointer to a buffer to receive a copy of the sample, or NULL.
Return's HRESULT error code.
Not currently implemented.
Return's HRESULT error code.
Specifies a callback method to call on incoming samples.
interface containing the callback method, or NULL to cancel the callback.
Index specifying the callback method.
Return's HRESULT error code.
This interface builds capture graphs and other custom filter graphs.
Specify filter graph for the capture graph builder to use.
Filter graph's interface.
Return's HRESULT error code.
Retrieve the filter graph that the builder is using.
Filter graph's interface.
Return's HRESULT error code.
Create file writing section of the filter graph.
GUID that represents either the media subtype of the output or the
class identifier (CLSID) of a multiplexer filter or file writer filter.
Output file name.
Receives the multiplexer's interface.
Receives the file writer's IFileSinkFilter interface. Can be NULL.
Return's HRESULT error code.
Searche the graph for a specified interface, starting from a specified filter.
GUID that specifies the search criteria.
GUID that specifies the major media type of an output pin, or NULL.
interface of the filter. The method begins searching from this filter.
Interface identifier (IID) of the interface to locate.
Receives found interface.
Return's HRESULT error code.
Connect an output pin on a source filter to a rendering filter, optionally through a compression filter.
Pin category.
Major-type GUID that specifies the media type of the output pin.
Starting filter for the connection.
Interface of an intermediate filter, such as a compression filter. Can be NULL.
Sink filter, such as a renderer or mux filter.
Return's HRESULT error code.
Set the start and stop times for one or more streams of captured data.
Pin category.
Major-type GUID that specifies the media type.
interface that specifies which filter to control.
Start time.
Stop time.
Value that is sent as the second parameter of the
EC_STREAM_CONTROL_STARTED event notification.
Value that is sent as the second parameter of the
EC_STREAM_CONTROL_STOPPED event notification.
Return's HRESULT error code.
Preallocate a capture file to a specified size.
File name to create or resize.
Size of the file to allocate, in bytes.
Return's HRESULT error code.
Copy the valid media data from a capture file.
Old file name.
New file name.
Boolean value that specifies whether pressing the ESC key cancels the copy operation.
IAMCopyCaptureFileProgress interface to display progress information, or NULL.
Return's HRESULT error code.
Interface on a filter, or to an interface on a pin.
Pin direction (input or output).
Pin category.
Media type.
Boolean value that specifies whether the pin must be unconnected.
Zero-based index of the pin to retrieve, from the set of matching pins.
Interface of the matching pin.
Return's HRESULT error code.
This interface provides methods that enable an application to build a filter graph.
Adds a filter to the graph and gives it a name.
Filter to add to the graph.
Name of the filter.
Return's HRESULT error code.
Removes a filter from the graph.
Filter to be removed from the graph.
Return's HRESULT error code.
Provides an enumerator for all filters in the graph.
Filter enumerator.
Return's HRESULT error code.
Finds a filter that was added with a specified name.
Name of filter to search for.
Interface of found filter.
Return's HRESULT error code.
Connects two pins directly (without intervening filters).
Output pin.
Input pin.
Media type to use for the connection.
Return's HRESULT error code.
Breaks the existing pin connection and reconnects it to the same pin.
Pin to disconnect and reconnect.
Return's HRESULT error code.
Disconnects a specified pin.
Pin to disconnect.
Return's HRESULT error code.
Sets the reference clock to the default clock.
Return's HRESULT error code.
Connects two pins. If they will not connect directly, this method connects them with intervening transforms.
Output pin.
Input pin.
Return's HRESULT error code.
Adds a chain of filters to a specified output pin to render it.
Output pin.
Return's HRESULT error code.
Builds a filter graph that renders the specified file.
Specifies a string that contains file name or device moniker.
Reserved.
Return's HRESULT error code.
Adds a source filter to the filter graph for a specific file.
Specifies the name of the file to load.
Specifies a name for the source filter.
Variable that receives the interface of the source filter.
Return's HRESULT error code.
Sets the file for logging actions taken when attempting to perform an operation.
Handle to the log file.
Return's HRESULT error code.
Requests that the graph builder return as soon as possible from its current task.
Return's HRESULT error code.
Queries whether the current operation should continue.
Return's HRESULT error code.
The interface provides callback methods for the method.
Callback method that receives a pointer to the media sample.
Starting time of the sample, in seconds.
Pointer to the sample's IMediaSample interface.
Return's HRESULT error code.
Callback method that receives a pointer to the sample bufferю
Starting time of the sample, in seconds.
Pointer to a buffer that contains the sample data.
Length of the buffer pointed to by buffer, in bytes
Return's HRESULT error code.
Local video device selection form.
The form provides a standard way of selecting local video
device (USB web camera, capture board, etc. - anything supporting DirectShow
interface), which can be reused across applications. It allows selecting video
device, video size and snapshots size (if device supports snapshots and
user needs them).
Required designer variable.
Clean up any resources being used.
true if managed resources should be disposed; otherwise, false.
Required method for Designer support - do not modify
the contents of this method with the code editor.
Initializes a new instance of the class.
Specifies if snapshot configuration should be done or not.
The property specifies if the dialog form should
allow configuration of snapshot sizes (if selected video source supports
snapshots). If the property is set to , then
the form will provide additional combo box enumerating supported
snapshot sizes. Otherwise the combo boxes will be hidden.
If the property is set to and selected
device supports snapshots, then
property of the configured device is set to
.
Default value of the property is set to .
Provides configured video device.
The property provides configured video device if user confirmed
the dialog using "OK" button. If user canceled the dialog, the property is
set to .
Moniker string of the selected video device.
The property allows to get moniker string of the selected device
on form completion or set video device which should be selected by default on
form loading.
Video frame size of the selected device.
The property allows to get video size of the selected device
on form completion or set the size to be selected by default on form loading.
Snapshot frame size of the selected device.
The property allows to get snapshot size of the selected device
on form completion or set the size to be selected by default on form loading
(if property is set ).
Video input to use with video capture card.
The property allows to get video input of the selected device
on form completion or set it to be selected by default on form loading.
Some miscellaneous functions.
Get filter's pin.
Filter to get pin of.
Pin's direction.
Pin's number.
Returns filter's pin.
Get filter's input pin.
Filter to get pin of.
Pin's number.
Returns filter's pin.
Get filter's output pin.
Filter to get pin of.
Pin's number.
Returns filter's pin.
The interface indicates that an object supports property pages.
Fills a counted array of GUID values where each GUID specifies the
CLSID of each property page that can be displayed in the property
sheet for this object.
Pointer to a CAUUID structure that must be initialized
and filled before returning.
Return's HRESULT error code.
Enumerates pins on a filter.
Retrieves a specified number of pins.
Number of pins to retrieve.
Array of size cPins that is filled with IPin pointers.
Receives the number of pins retrieved.
Return's HRESULT error code.
Skips a specified number of pins in the enumeration sequence.
Number of pins to skip.
Return's HRESULT error code.
Resets the enumeration sequence to the beginning.
Return's HRESULT error code.
Makes a copy of the enumerator with the same enumeration state.
Duplicate of the enumerator.
Return's HRESULT error code.
This interface sets the output format on certain capture and compression filters,
for both audio and video.
Set the output format on the pin.
Media type to set.
Return's HRESULT error code.
Retrieves the audio or video stream's format.
Retrieved media type.
Return's HRESULT error code.
Retrieve the number of format capabilities that this pin supports.
Variable that receives the number of format capabilities.
Variable that receives the size of the configuration structure in bytes.
Return's HRESULT error code.
Retrieve a set of format capabilities.
Specifies the format capability to retrieve, indexed from zero.
Retrieved media type.
Byte array, which receives information about capabilities.
Return's HRESULT error code.
Collection of filters' information objects.
The class allows to enumerate DirectShow filters of specified category. For
a list of categories see .
Sample usage:
// enumerate video devices
videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
// list devices
foreach ( FilterInfo device in videoDevices )
{
// ...
}
Initializes a new instance of the class.
Guid of DirectShow filter category. See .
Build collection of filters' information objects for the
specified filter category.
Get filter information object.
Index of filter information object to retrieve.
Filter information object.
Video source for local video capture device (for example USB webcam).
This video source class captures video data from local video capture device,
like USB web camera (or internal), frame grabber, capture board - anything which
supports DirectShow interface. For devices which has a shutter button or
support external software triggering, the class also allows to do snapshots. Both
video size and snapshot size can be configured.
Sample usage:
// enumerate video devices
videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
// create video source
VideoCaptureDevice videoSource = new VideoCaptureDevice( videoDevices[0].MonikerString );
// set NewFrame event handler
videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
// start the video source
videoSource.Start( );
// ...
// signal to stop when you no longer need capturing
videoSource.SignalToStop( );
// ...
private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
{
// get new frame
Bitmap bitmap = eventArgs.Frame;
// process the frame
}
Initializes a new instance of the class.
Initializes a new instance of the class.
Moniker string of video capture device.
Start video source.
Starts video source and return execution to caller. Video source
object creates background thread and notifies about new frames with the
help of event.
Signal video source to stop its work.
Signals video source to stop its background thread, stop to
provide new frames and free resources.
Wait for video source has stopped.
Waits for source stopping after it was signalled to stop using
method.
Stop video source.
Stops video source aborting its thread.
Since the method aborts background thread, its usage is highly not preferred
and should be done only if there are no other options. The correct way of stopping camera
is signaling it stop and then
waiting for background thread's completion.
Free resource.
Display property window for the video capture device providing its configuration
capabilities.
Handle of parent window.
If you pass parent window's handle to this method, then the
displayed property page will become modal window and none of the controls from the
parent window will be accessible. In order to make it modeless it is required
to pass as parent window's handle.
The video source does not support configuration property page.
Display property page of video crossbar (Analog Video Crossbar filter).
Handle of parent window.
The Analog Video Crossbar filter is modeled after a general switching matrix,
with n inputs and m outputs. For example, a video card might have two external connectors:
a coaxial connector for TV, and an S-video input. These would be represented as input pins on
the filter. The displayed property page allows to configure the crossbar by selecting input
of a video card to use.
This method can be invoked only when video source is running ( is
). Otherwise it generates exception.
Use method to check if running video source provides
crossbar configuration.
The video source must be running in order to display crossbar property page.
Crossbar configuration is not supported by currently running video source.
Check if running video source provides crossbar for configuration.
Returns if crossbar configuration is available or
otherwise.
The method reports if the video source provides crossbar configuration
using .
Simulates an external trigger.
The method simulates external trigger for video cameras, which support
providing still image snapshots. The effect is equivalent as pressing camera's shutter
button - a snapshot will be provided through event.
The property must be set to
to enable receiving snapshots.
Sets a specified property on the camera.
Specifies the property to set.
Specifies the new value of the property.
Specifies the desired control setting.
Returns true on sucee or false otherwise.
Video source is not specified - device moniker is not set.
Failed creating device object for moniker.
The video source does not support camera control.
Gets the current setting of a camera property.
Specifies the property to retrieve.
Receives the value of the property.
Receives the value indicating whether the setting is controlled manually or automatically
Returns true on sucee or false otherwise.
Video source is not specified - device moniker is not set.
Failed creating device object for moniker.
The video source does not support camera control.
Gets the range and default value of a specified camera property.
Specifies the property to query.
Receives the minimum value of the property.
Receives the maximum value of the property.
Receives the step size for the property.
Receives the default value of the property.
Receives a member of the enumeration, indicating whether the property is controlled automatically or manually.
Returns true on sucee or false otherwise.
Video source is not specified - device moniker is not set.
Failed creating device object for moniker.
The video source does not support camera control.
Worker thread.
Notifies clients about new frame.
New frame's image.
Notifies clients about new snapshot frame.
New snapshot's image.
Current video input of capture card.
The property specifies video input to use for video devices like capture cards
(those which provide crossbar configuration). List of available video inputs can be obtained
from property.
To check if the video device supports crossbar configuration, the
method can be used.
This property can be set as before running video device, as while running it.
By default this property is set to , which means video input
will not be set when running video device, but currently configured will be used. After video device
is started this property will be updated anyway to tell current video input.
Available inputs of the video capture card.
The property provides list of video inputs for devices like video capture cards.
Such devices usually provide several video inputs, which can be selected using crossbar.
If video device represented by the object of this class supports crossbar, then this property
will list all video inputs. However if it is a regular USB camera, for example, which does not
provide crossbar configuration, the property will provide zero length array.
Video input to be used can be selected using . See also
method, which provides crossbar configuration dialog.
It is recomended not to call this property immediately after method, since
device may not start yet and provide its information. It is better to call the property
before starting device or a bit after (but not immediately after).
Specifies if snapshots should be provided or not.
Some USB cameras/devices may have a shutter button, which may result into snapshot if it
is pressed. So the property specifies if the video source will try providing snapshots or not - it will
check if the camera supports providing still image snapshots. If camera supports snapshots and the property
is set to , then snapshots will be provided through
event.
Check supported sizes of snapshots using property and set the
desired size using property.
The property must be set before running the video source to take effect.
Default value of the property is set to .
New frame event.
Notifies clients about new available frame from video source.
Since video source may have multiple clients, each client is responsible for
making a copy (cloning) of the passed video frame, because the video source disposes its
own original copy after notifying of clients.
Snapshot frame event.
Notifies clients about new available snapshot frame - the one which comes when
camera's snapshot/shutter button is pressed.
See documentation to for additional information.
Since video source may have multiple clients, each client is responsible for
making a copy (cloning) of the passed snapshot frame, because the video source disposes its
own original copy after notifying of clients.
Video source error event.
This event is used to notify clients about any type of errors occurred in
video source object, for example internal exceptions.
Video playing finished event.
This event is used to notify clients that the video playing has finished.
Video source.
Video source is represented by moniker string of video capture device.
Received frames count.
Number of frames the video source provided from the moment of the last
access to the property.
Received bytes count.
Number of bytes the video source provided from the moment of the last
access to the property.
State of the video source.
Current state of video source object - running or not.
Obsolete - no longer in use
The property is obsolete. Use property instead.
Setting this property does not have any effect.
Obsolete - no longer in use
The property is obsolete. Use property instead.
Setting this property does not have any effect.
Obsolete - no longer in use.
The property is obsolete. Setting this property does not have any effect.
Video resolution to set.
The property allows to set one of the video resolutions supported by the camera.
Use property to get the list of supported video resolutions.
The property must be set before camera is started to make any effect.
Default value of the property is set to , which means default video
resolution is used.
Snapshot resolution to set.
The property allows to set one of the snapshot resolutions supported by the camera.
Use property to get the list of supported snapshot resolutions.
The property must be set before camera is started to make any effect.
Default value of the property is set to , which means default snapshot
resolution is used.
Video capabilities of the device.
The property provides list of device's video capabilities.
It is recomended not to call this property immediately after method, since
device may not start yet and provide its information. It is better to call the property
before starting device or a bit after (but not immediately after).
Snapshot capabilities of the device.
The property provides list of device's snapshot capabilities.
If the array has zero length, then it means that this device does not support making
snapshots.
See documentation to for additional information.
It is recomended not to call this property immediately after method, since
device may not start yet and provide its information. It is better to call the property
before starting device or a bit after (but not immediately after).
Source COM object of camera capture device.
The source COM object of camera capture device is exposed for the
case when user may need get direct access to the object for making some custom
configuration of camera through DirectShow interface, for example.
If camera is not running, the property is set to .
The interface sets properties on the video window.
Sets the video window caption.
Caption.
Return's HRESULT error code.
Retrieves the video window caption.
Caption.
Return's HRESULT error code.
Sets the window style on the video window.
Window style flags.
Return's HRESULT error code.
Retrieves the window style on the video window.
Window style flags.
Return's HRESULT error code.
Sets the extended window style on the video window.
Window extended style flags.
Return's HRESULT error code.
Retrieves the extended window style on the video window.
Window extended style flags.
Return's HRESULT error code.
Specifies whether the video renderer automatically shows the video window when it receives video data.
Specifies whether the video renderer automatically shows the video window.
Return's HRESULT error code.
Queries whether the video renderer automatically shows the video window when it receives video data.
REceives window auto show flag.
Return's HRESULT error code.
Shows, hides, minimizes, or maximizes the video window.
Window state.
Return's HRESULT error code.
Queries whether the video window is visible, hidden, minimized, or maximized.
Window state.
Return's HRESULT error code.
Specifies whether the video window realizes its palette in the background.
Value that specifies whether the video renderer realizes it palette in the background.
Return's HRESULT error code.
Queries whether the video window realizes its palette in the background.
Receives state of background palette flag.
Return's HRESULT error code.
Shows or hides the video window.
Value that specifies whether to show or hide the window.
Return's HRESULT error code.
Queries whether the video window is visible.
Visibility flag.
Return's HRESULT error code.
Sets the video window's x-coordinate.
Specifies the x-coordinate, in pixels.
Return's HRESULT error code.
Retrieves the video window's x-coordinate.
x-coordinate, in pixels.
Return's HRESULT error code.
Sets the width of the video window.
Specifies the width, in pixels.
Return's HRESULT error code.
Retrieves the width of the video window.
Width, in pixels.
Return's HRESULT error code.
Sets the video window's y-coordinate.
Specifies the y-coordinate, in pixels.
Return's HRESULT error code.
Retrieves the video window's y-coordinate.
y-coordinate, in pixels.
Return's HRESULT error code.
Sets the height of the video window.
Specifies the height, in pixels.
Return's HRESULT error code.
Retrieves the height of the video window.
Height, in pixels.
Return's HRESULT error code.
Specifies a parent window for the video windowю
Specifies a handle to the parent window.
Return's HRESULT error code.
Retrieves the video window's parent window, if anyю
Parent window's handle.
Return's HRESULT error code.
Specifies a window to receive mouse and keyboard messages from the video window.
Specifies a handle to the window.
Return's HRESULT error code.
Retrieves the window that receives mouse and keyboard messages from the video window, if any.
Window's handle.
Return's HRESULT error code.
Retrieves the color that appears around the edges of the destination rectangle.
Border's color.
Return's HRESULT error code.
Sets the color that appears around the edges of the destination rectangle.
Specifies the border color.
Return's HRESULT error code.
Queries whether the video renderer is in full-screen mode.
Full-screen mode.
Return's HRESULT error code.
Enables or disables full-screen mode.
Boolean value that specifies whether to enable or disable full-screen mode.
Return's HRESULT error code.
Places the video window at the top of the Z order.
Value that specifies whether to give the window focus.
Return's HRESULT error code.
Forwards a message to the video window.
Handle to the window.
Specifies the message.
Message parameter.
Message parameter.
Return's HRESULT error code.
Sets the position of the video windowю
Specifies the x-coordinate, in pixels.
Specifies the y-coordinate, in pixels.
Specifies the width, in pixels.
Specifies the height, in pixels.
Return's HRESULT error code.
Retrieves the position of the video window.
x-coordinate, in pixels.
y-coordinate, in pixels.
Width, in pixels.
Height, in pixels.
Return's HRESULT error code.
Retrieves the minimum ideal size for the video image.
Receives the minimum ideal width, in pixels.
Receives the minimum ideal height, in pixels.
Return's HRESULT error code.
Retrieves the maximum ideal size for the video image.
Receives the maximum ideal width, in pixels.
Receives the maximum ideal height, in pixels.
Return's HRESULT error code.
Retrieves the restored window position.
x-coordinate, in pixels.
y-coordinate, in pixels.
Width, in pixels.
Height, in pixels.
Return's HRESULT error code.
Hides the cursor.
Specifies whether to hide or display the cursor.
Return's HRESULT error code.
Queries whether the cursor is hidden.
Specifies if cursor is hidden or not.
Return's HRESULT error code.
The IPropertyBag interface provides an object with a property bag in
which the object can persistently save its properties.
Read a property from property bag.
Property name to read.
Property value.
Caller's error log.
Return's HRESULT error code.
Write property to property bag.
Property name to read.
Property value.
Return's HRESULT error code.
The interface provides methods for controlling the flow of data through the filter graph.
It includes methods for running, pausing, and stopping the graph.
This method informs the filter to transition to the new state.
Return's HRESULT error code.
This method informs the filter to transition to the new state.
Return's HRESULT error code.
This method informs the filter to transition to the new (running) state. Passes a time value to synchronize independent streams.
Time value of the reference clock. The amount to be added to the IMediaSample time stamp to determine the time at which that sample should be rendered according to the reference clock. That is, it is the reference time at which a sample with a stream time of zero should be rendered.
Return's HRESULT error code.
This method determines the filter's state.
Duration of the time-out, in milliseconds. To block indefinitely, pass INFINITE.
Returned state of the filter. States include stopped, paused, running, or intermediate (in the process of changing).
Return's HRESULT error code.
This method identifies the reference clock to which the filter should synchronize activity.
Pointer to the IReferenceClock interface.
Return's HRESULT error code.
This method retrieves the current reference clock in use by this filter.
Pointer to a reference clock; it will be set to the IReferenceClock interface.
Return's HRESULT error code.
The interface provides methods for controlling the flow of data through the filter graph.
It includes methods for running, pausing, and stopping the graph.
Runs all the filters in the filter graph.
Return's HRESULT error code.
Pauses all filters in the filter graph.
Return's HRESULT error code.
Stops all the filters in the filter graph.
Return's HRESULT error code.
Retrieves the state of the filter graph.
Duration of the time-out, in milliseconds, or INFINITE to specify an infinite time-out.
Мariable that receives a member of the FILTER_STATE enumeration.
Return's HRESULT error code.
Builds a filter graph that renders the specified file.
Name of the file to render
Return's HRESULT error code.
Adds a source filter to the filter graph, for a specified file.
Name of the file containing the source video.
Receives interface of filter information object.
Return's HRESULT error code.
Retrieves a collection of the filters in the filter graph.
Receives the IAMCollection interface.
Return's HRESULT error code.
Retrieves a collection of all the filters listed in the registry.
Receives the IDispatch interface of IAMCollection object.
Return's HRESULT error code.
Pauses the filter graph, allowing filters to queue data, and then stops the filter graph.
Return's HRESULT error code.
This interface extends the and
interfaces, which contain methods for building filter graphs.
Adds a filter to the graph and gives it a name.
Filter to add to the graph.
Name of the filter.
Return's HRESULT error code.
Removes a filter from the graph.
Filter to be removed from the graph.
Return's HRESULT error code.
Provides an enumerator for all filters in the graph.
Filter enumerator.
Return's HRESULT error code.
Finds a filter that was added with a specified name.
Name of filter to search for.
Interface of found filter.
Return's HRESULT error code.
Connects two pins directly (without intervening filters).
Output pin.
Input pin.
Media type to use for the connection.
Return's HRESULT error code.
Breaks the existing pin connection and reconnects it to the same pin.
Pin to disconnect and reconnect.
Return's HRESULT error code.
Disconnects a specified pin.
Pin to disconnect.
Return's HRESULT error code.
Sets the reference clock to the default clock.
Return's HRESULT error code.
Connects two pins. If they will not connect directly, this method connects them with intervening transforms.
Output pin.
Input pin.
Return's HRESULT error code.
Adds a chain of filters to a specified output pin to render it.
Output pin.
Return's HRESULT error code.
Builds a filter graph that renders the specified file.
Specifies a string that contains file name or device moniker.
Reserved.
Return's HRESULT error code.
Adds a source filter to the filter graph for a specific file.
Specifies the name of the file to load.
Specifies a name for the source filter.
Variable that receives the interface of the source filter.
Return's HRESULT error code.
Sets the file for logging actions taken when attempting to perform an operation.
Handle to the log file.
Return's HRESULT error code.
Requests that the graph builder return as soon as possible from its current task.
Return's HRESULT error code.
Queries whether the current operation should continue.
Return's HRESULT error code.
Moniker interface.
Bind context interface.
Name for the filter.
Receives source filter's IBaseFilter interface.
The caller must release the interface.
Return's HRESULT error code.
Breaks the existing pin connection and reconnects it to the same pin,
using a specified media type.
Pin to disconnect and reconnect.
Media type to reconnect with.
Return's HRESULT error code.
Render an output pin, with an option to use existing renderers only.
Interface of the output pin.
Flag that specifies how to render the pin.
Reserved.
Return's HRESULT error code.
This interface is used by applications or other filters to determine
what filters exist in the filter graph.
Retrieves the specified number of filters in the enumeration sequence.
Number of filters to retrieve.
Array in which to place interfaces.
Actual number of filters placed in the array.
Return's HRESULT error code.
Skips a specified number of filters in the enumeration sequence.
Number of filters to skip.
Return's HRESULT error code.
Resets the enumeration sequence to the beginning.
Return's HRESULT error code.
Makes a copy of the enumerator with the same enumeration state.
Duplicate of the enumerator.
Return's HRESULT error code.
The ICreateDevEnum interface creates an enumerator for devices within a particular category,
such as video capture devices, audio capture devices, video compressors, and so forth.
Creates a class enumerator for a specified device category.
Specifies the class identifier of the device category.
Address of a variable that receives an IEnumMoniker interface pointer
Bitwise combination of zero or more flags. If zero, the method enumerates every filter in the category.
Return's HRESULT error code.
Some Win32 API used internally.
Supplies a pointer to an implementation of IBindCtx (a bind context object).
This object stores information about a particular moniker-binding operation.
Reserved for future use; must be zero.
Address of IBindCtx* pointer variable that receives the
interface pointer to the new bind context object.
Returns S_OK on success.
Converts a string into a moniker that identifies the object named by the string.
Pointer to the IBindCtx interface on the bind context object to be used in this binding operation.
Pointer to a zero-terminated wide character string containing the display name to be parsed.
Pointer to the number of characters of szUserName that were consumed.
Address of IMoniker* pointer variable that receives the interface pointer
to the moniker that was built from szUserName.
Returns S_OK on success.
Copy a block of memory.
Destination pointer.
Source pointer.
Memory block's length to copy.
Return's the value of dst - pointer to destination.
Invokes a new property frame, that is, a property sheet dialog box.
Parent window of property sheet dialog box.
Horizontal position for dialog box.
Vertical position for dialog box.
Dialog box caption.
Number of object pointers in ppUnk.
Pointer to the objects for property sheet.
Number of property pages in lpPageClsID.
Array of CLSIDs for each property page.
Locale identifier for property sheet locale.
Reserved.
Reserved.
Returns S_OK on success.
The enumeration specifies a setting on a camera.
Pan control.
Tilt control.
Roll control.
Zoom control.
Exposure control.
Iris control.
Focus control.
The enumeration defines whether a camera setting is controlled manually or automatically.
No control flag.
Auto control Flag.
Manual control Flag.
Video input of a capture board.
The class is used to describe video input of devices like video capture boards,
which usually provide several inputs.
Index of the video input.
Type of the video input.
Default video input. Used to specify that it should not be changed.
DirectShow filter information.
Initializes a new instance of the class.
Filters's moniker string.
Initializes a new instance of the class.
Filter's moniker object.
Compare the object with another instance of this class.
Object to compare with.
A signed number indicating the relative values of this instance and value.
Create an instance of the filter.
Filter's moniker string.
Returns filter's object, which implements IBaseFilter interface.
The returned filter's object should be released using Marshal.ReleaseComObject().
Filter name.
Filters's moniker string.
DirectShow class IDs.
System device enumerator.
Equals to CLSID_SystemDeviceEnum.
Filter graph.
Equals to CLSID_FilterGraph.
Sample grabber.
Equals to CLSID_SampleGrabber.
Capture graph builder.
Equals to CLSID_CaptureGraphBuilder2.
Async reader.
Equals to CLSID_AsyncReader.
DirectShow format types.
VideoInfo.
Equals to FORMAT_VideoInfo.
VideoInfo2.
Equals to FORMAT_VideoInfo2.
DirectShow media types.
Video.
Equals to MEDIATYPE_Video.
Interleaved. Used by Digital Video (DV).
Equals to MEDIATYPE_Interleaved.
Audio.
Equals to MEDIATYPE_Audio.
Text.
Equals to MEDIATYPE_Text.
Byte stream with no time stamps.
Equals to MEDIATYPE_Stream.
DirectShow media subtypes.
YUY2 (packed 4:2:2).
Equals to MEDIASUBTYPE_YUYV.
IYUV.
Equals to MEDIASUBTYPE_IYUV.
A DV encoding format. (FOURCC 'DVSD')
Equals to MEDIASUBTYPE_DVSD.
RGB, 1 bit per pixel (bpp), palettized.
Equals to MEDIASUBTYPE_RGB1.
RGB, 4 bpp, palettized.
Equals to MEDIASUBTYPE_RGB4.
RGB, 8 bpp.
Equals to MEDIASUBTYPE_RGB8.
RGB 565, 16 bpp.
Equals to MEDIASUBTYPE_RGB565.
RGB 555, 16 bpp.
Equals to MEDIASUBTYPE_RGB555.
RGB, 24 bpp.
Equals to MEDIASUBTYPE_RGB24.
RGB, 32 bpp, no alpha channel.
Equals to MEDIASUBTYPE_RGB32.
Data from AVI file.
Equals to MEDIASUBTYPE_Avi.
Advanced Streaming Format (ASF).
Equals to MEDIASUBTYPE_Asf.
DirectShow pin categories.
Capture pin.
Equals to PIN_CATEGORY_CAPTURE.
Still image pin.
Equals to PIN_CATEGORY_STILL.
Equals to LOOK_UPSTREAM_ONLY.
Equals to LOOK_DOWNSTREAM_ONLY.
The IReferenceClock interface provides the reference time for the filter graph.
Filters that can act as a reference clock can expose this interface. It is also exposed by the System Reference Clock.
The filter graph manager uses this interface to synchronize the filter graph. Applications can use this interface to
retrieve the current reference time, or to request notification of an elapsed time.
The GetTime method retrieves the current reference time.
Pointer to a variable that receives the current time, in 100-nanosecond units.
Return's HRESULT error code.
The AdviseTime method creates a one-shot advise request.
Base reference time, in 100-nanosecond units. See Remarks.
Stream offset time, in 100-nanosecond units. See Remarks.
Handle to an event, created by the caller.
Pointer to a variable that receives an identifier for the advise request.
Return's HRESULT error code.
The AdvisePeriodic method creates a periodic advise request.
Time of the first notification, in 100-nanosecond units. Must be greater than zero and less than MAX_TIME.
Time between notifications, in 100-nanosecond units. Must be greater than zero.
Handle to a semaphore, created by the caller.
Pointer to a variable that receives an identifier for the advise request.
Return's HRESULT error code.
The Unadvise method removes a pending advise request.
Identifier of the request to remove. Use the value returned by IReferenceClock::AdviseTime or IReferenceClock::AdvisePeriodic in the pdwAdviseToken parameter.
Return's HRESULT error code.
The IAMCrossbar interface routes signals from an analog or digital source to a video capture filter.
Retrieves the number of input and output pins on the crossbar filter.
Variable that receives the number of output pins.
Variable that receives the number of input pins.
Return's HRESULT error code.
Queries whether a specified input pin can be routed to a specified output pin.
Specifies the index of the output pin.
Specifies the index of input pin.
Return's HRESULT error code.
Routes an input pin to an output pin.
Specifies the index of the output pin.
Specifies the index of the input pin.
Return's HRESULT error code.
Retrieves the input pin that is currently routed to the specified output pin.
Specifies the index of the output pin.
Variable that receives the index of the input pin, or -1 if no input pin is routed to this output pin.
Return's HRESULT error code.
Retrieves information about a specified pin.
Specifies the direction of the pin. Use one of the following values.
Specifies the index of the pin.
Variable that receives the index of the related pin, or –1 if no pin is related to this pin.
Variable that receives a member of the PhysicalConnectorType enumeration, indicating the pin's physical type.
Return's HRESULT error code.
The IBaseFilter interface provides methods for controlling a filter.
All DirectShow filters expose this interface
Returns the class identifier (CLSID) for the component object.
Points to the location of the CLSID on return.
Return's HRESULT error code.
Stops the filter.
Return's HRESULT error code.
Pauses the filter.
Return's HRESULT error code.
Runs the filter.
Reference time corresponding to stream time 0.
Return's HRESULT error code.
Retrieves the state of the filter (running, stopped, or paused).
Time-out interval, in milliseconds.
Pointer to a variable that receives filter's state.
Return's HRESULT error code.
Sets the reference clock for the filter or the filter graph.
Pointer to the clock's IReferenceClock interface, or NULL.
Return's HRESULT error code.
Retrieves the current reference clock.
Address of a variable that receives a pointer to the clock's IReferenceClock interface.
Return's HRESULT error code.
Enumerates the pins on this filter.
Address of a variable that receives a pointer to the IEnumPins interface.
Return's HRESULT error code.
Retrieves the pin with the specified identifier.
Pointer to a constant wide-character string that identifies the pin.
Address of a variable that receives a pointer to the pin's IPin interface.
Return's HRESULT error code.
Retrieves information about the filter.
Pointer to FilterInfo structure.
Return's HRESULT error code.
Notifies the filter that it has joined or left the filter graph.
Pointer to the Filter Graph Manager's IFilterGraph interface, or NULL
if the filter is leaving the graph.
String that specifies a name for the filter.
Return's HRESULT error code.
Retrieves a string containing vendor information.
Receives a string containing the vendor information.
Return's HRESULT error code.
The interface inherits contains methods for retrieving event notifications and for overriding the
filter graph's default handling of events.
Retrieves a handle to a manual-reset event that remains signaled while the queue contains event notifications.
Pointer to a variable that receives the event handle.
Return's HRESULT error code.
Retrieves the next event notification from the event queue.
Variable that receives the event code.
Pointer to a variable that receives the first event parameter.
Pointer to a variable that receives the second event parameter.
Time-out interval, in milliseconds.
Return's HRESULT error code.
Waits for the filter graph to render all available data.
Time-out interval, in milliseconds. Pass zero to return immediately.
Pointer to a variable that receives an event code.
Return's HRESULT error code.
Cancels the Filter Graph Manager's default handling for a specified event.
Event code for which to cancel default handling.
Return's HRESULT error code.
Restores the Filter Graph Manager's default handling for a specified event.
Event code for which to restore default handling.
Return's HRESULT error code.
Frees resources associated with the parameters of an event.
Event code.
First event parameter.
Second event parameter.
Return's HRESULT error code.
Registers a window to process event notifications.
Handle to the window, or to stop receiving event messages.
Window message to be passed as the notification.
Value to be passed as the lParam parameter for the lMsg message.
Return's HRESULT error code.
Enables or disables event notifications.
Value indicating whether to enable or disable event notifications.
Return's HRESULT error code.
Determines whether event notifications are enabled.
Variable that receives current notification status.
Return's HRESULT error code.
Video source for video files.
The video source provides access to video files. DirectShow is used to access video
files.
Sample usage:
// create video source
FileVideoSource videoSource = new FileVideoSource( fileName );
// set NewFrame event handler
videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
// start the video source
videoSource.Start( );
// ...
// signal to stop
videoSource.SignalToStop( );
// ...
// New frame event handler, which is invoked on each new available video frame
private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
{
// get new frame
Bitmap bitmap = eventArgs.Frame;
// process the frame
}
Initializes a new instance of the class.
Initializes a new instance of the class.
Video file name.
Start video source.
Starts video source and return execution to caller. Video source
object creates background thread and notifies about new frames with the
help of event.
Signal video source to stop its work.
Signals video source to stop its background thread, stop to
provide new frames and free resources.
Wait for video source has stopped.
Waits for source stopping after it was signalled to stop using
method.
Stop video source.
Stops video source aborting its thread.
Since the method aborts background thread, its usage is highly not preferred
and should be done only if there are no other options. The correct way of stopping camera
is signaling it stop and then
waiting for background thread's completion.
Free resource.
Worker thread.
Notifies client about new frame.
New frame's image.
New frame event.
Notifies clients about new available frame from video source.
Since video source may have multiple clients, each client is responsible for
making a copy (cloning) of the passed video frame, because the video source disposes its
own original copy after notifying of clients.
Video source error event.
This event is used to notify clients about any type of errors occurred in
video source object, for example internal exceptions.
Video playing finished event.
This event is used to notify clients that the video playing has finished.
Video source.
Video source is represented by video file name.
Received frames count.
Number of frames the video source provided from the moment of the last
access to the property.
Received bytes count.
Number of bytes the video source provided from the moment of the last
access to the property.
State of the video source.
Current state of video source object - running or not.
Prevent video freezing after screen saver and workstation lock or not.
The value specifies if the class should prevent video freezing during and
after screen saver or workstation lock. To prevent freezing the DirectShow graph
should not contain Renderer filter, which is added by Render() method
of graph. However, in some cases it may be required to call Render() method of graph, since
it may add some more filters, which may be required for playing video. So, the property is
a trade off - it is possible to prevent video freezing skipping adding renderer filter or
it is possible to keep renderer filter, but video may freeze during screen saver.
The property may become obsolete in the future when approach to disable freezing
and adding all required filters is found.
The property should be set before calling method
of the class to have effect.
Default value of this property is set to false.
Enables/disables reference clock on the graph.
Disabling reference clocks causes DirectShow graph to run as fast as
it can process data. When enabled, it will process frames according to presentation
time of a video file.
The property should be set before calling method
of the class to have effect.
Default value of this property is set to true.