ISampleGrabber::SetOneShot method
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
Note
[Deprecated. This API may be removed from future releases of Windows.]
The SetOneShot method specifies whether the Sample Grabber filter halts after the filter receives a sample.
Syntax
HRESULT SetOneShot(
BOOL OneShot
);
Parameters
-
OneShot
-
A Boolean value that specifies whether the Sample Grabber filter halts after receiving a sample.
Value Meaning - TRUE
The Sample Grabber halts after the first sample. - FALSE
After the first sample, the Sample Grabber continues to process samples. This is the default behavior.
Return value
If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
Remarks
Use this method to get a single sample from the stream, as follows:
- Call SetOneShot with the value TRUE.
- Optionally, use the IMediaSeeking interface to seek to a position in the stream.
- Call IMediaControl::Run to run the filter graph.
- Call IMediaEvent::WaitForCompletion to wait for the graph to halt. Alternatively, call IMediaEvent::GetEvent to get graph events, until you receive the EC_COMPLETE event.
After the Sample Grabber halts, the filter graph is still in a running state. You can seek or pause the graph to get another sample.
Note
An earlier version of the documentation stated that the filter graph stops after the sample is received. That is not accurate. The stream ends, but the graph remains in the running state.
The Sample Grabber implements one-shot mode by calling IPin::EndOfStream on the downstream filter and returning S_FALSE from the IMemInputPin::Receive method of it.
Note
The header file Qedit.h is not compatible with Direct3D headers later than version 7.
Note
To obtain Qedit.h, download the Microsoft Windows SDK Update for Windows Vista and .NET Framework 3.0. Qedit.h is not available in the Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1.
Requirements
Requirement | Value |
---|---|
Header |
|
Library |
|
See also