CBaseStreamControl::NotifyFilterState (Compact 2013)

3/26/2014

Notifies the pin of your filter's state.

Syntax

void NotifyFilterState(
  FILTER_STATE new_state,
  REFERENCE_TIME tStart = 0 
);

Parameters

  • new_state
    Filter's new state.
  • tStart
    Time at which streaming starts (only valid when new_state is in State_Running).

Return Value

None.

Remarks

This member function notifies the pin of a filter's new state by setting a FILTER_STATE enumeration type variable.

If you implement your own filter, inform your pin's CBaseStreamControl::NotifyFilterState member function what state your filter is in every time your filter changes state, as shown in the following example.

STDMETHODIMP CMyFilter::Run(REFERENCE_TIME tStart)
{
   //once error check is successful
   m_pMyPin->NotifyFilterState(State_Running, tStart);
   
   //now continue with whatever should occur next, for example...
   return CBaseFilter::Run(tStart);
}
STDMETHODIMP CMyFilter::Pause()
{
   //Once error check is successful
   m_pMyPin->NotifyFilterState(State_Paused, 0);
   
   //Now continue with whatever should occur next, for example...
   return CBaseFilter::Pause();
}
STDMETHODIMP CMyFilter::Stop()
{
   //Once error check is successful
   m_pMyPin->NotifyFilterState(State_Stopped, 0);
   
   //Now continue with whatever should occur next, for example...
   return CBaseFilter::Stop(tStart);
}

Requirements

Header

dshow.h,
Streams.h

Library

ole32.lib,
Ole32auth.lib,
Strmbase.lib,
Strmiids.lib,
uuid.lib

See Also

Reference

CBaseStreamControl Class