Microsoft DirectX 8.1 (C++)

CSourceSeeking::ChangeRate

The ChangeRate method is called when the playback rate changes.

Syntax

virtual HRESULT ChangeRate(void) PURE;

Return Value

Returns an HRESULT value.

Remarks

The CSourceSeeking::SetRate method calls this method, which the derived class must implement. The SetRate method updates the CSourceSeeking::m_dRateSeeking member variable, but does not validate the new value. A rate of zero should always be rejected. Rates less than zero indicate negative playback. Most filters do not support negative rates.

The following example shows a possible implementation:

HRESULT CMyStream::ChangeRate( )
{
    {   // Scope for critical section lock.
        CAutoLock cAutoLockSeeking(CSourceSeeking::m_pLock);
        if( m_dRateSeeking <= 0 ) {
            m_dRateSeeking = 1.0;  // Reset to a reasonable value.
            return E_FAIL;
        }
    }
    UpdateFromSeek();
    return S_OK;
}

See Also