IReferenceClock interface

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.

For more information, see Time and Clocks in DirectShow.

Filter developers: Implement this interface if you are writing a filter that generates reliable clock times. For example, audio renderers implement this interface, because audio sound boards usually contain a reference clock. Use the CBaseReferenceClock class to implement this interface.

To increase the chances that a non-rendering filter will be selected by the Filter Graph Manager as the reference close, follow these steps:

  1. Implement IReferenceClock in the filter.
  2. Implement IAMFilterMiscFlags in the filter.
  3. Return AM_FILTER_MISC_FLAGS_IS_SOURCE from IAMFilterMiscFlags::GetMiscFlags.
  4. Implement IAMPushSource on all output pins.
  5. Return (* pFlags) = 0 from IAMPushSource::GetPushSourceFlags.
  6. You may return E_NOTIMPL from all other IAMPushSource methods.

Members

The IReferenceClock interface inherits from the IUnknown interface. IReferenceClock also has these types of members:

Methods

The IReferenceClock interface has these methods.

MethodDescription
AdvisePeriodic

Creates a periodic advise request.

AdviseTime

Creates a one-shot advise request.

GetTime

Retrieves the current reference time.

Unadvise

Removes a pending advise request.

 

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Strmif.h (include Dshow.h)

Library

Strmiids.lib

 

 

Show: