CBaseStreamControl::CheckStreamState (Windows CE 5.0)
Retrieves a stream's current state.
enum StreamControlState CheckStreamState( IMediaSample* pSample);
Parameters
- pSample
Pointer to an IMediaSample interface.
Return Values
Returns a StreamControlState enumeration type.
Remarks
Your filter calls this member function when your pin receives a sample that it is about to forward. The first sample you forward after throwing one or more away should be marked as a discontinuity.
The following example shows what you should include if your filter inherits from CBaseStreamControl.
//Pin has been given a sample to pass on, pSample
//m_fLastSampleDiscarded is initialized to TRUE when streaming starts
int iStreamState = CheckStreamState(pSample);
if (iStreamState == STREAM_FLOWING) {
if (m_fLastSampleDiscarded)
pSample->SetDiscontinuity(TRUE);
m_fLastSampleDiscarded = FALSE;
//now deliver it or put it o a queue to be delivered, or whatever.
} else {
m_fLastSampleDiscarded = TRUE; //next one is discontinuity
//Do NOT deliver this sample. Just throw it away.
}
Requirements
DirectShow applications and DirectShow filters have different include file and link library requirements.
For more information, see Setting Up the Build Environment.
OS Versions: Windows CE 2.12 and later. Version 2.12 requires DXPAK 1.0 or later.
Header:
Send Feedback on this topic to the authors