Skip to content

Latest commit

 

History

History
93 lines (57 loc) · 2.8 KB

csourceseeking-changerate.md

File metadata and controls

93 lines (57 loc) · 2.8 KB
description ms.assetid title ms.topic ms.date topic_type api_name api_type api_location ms.custom
The ChangeRate method is called when the playback rate changes.
c4f1f9d0-6c09-4cab-8a37-dd1ff3f5619f
CSourceSeeking.ChangeRate method (Ctlutil.h)
reference
4/26/2023
APIRef
kbSyntax
CSourceSeeking.ChangeRate
COM
Strmbase.lib
Strmbase.dll
Strmbasd.lib
Strmbasd.dll
UpdateFrequency5

CSourceSeeking.ChangeRate 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.]

The ChangeRate method is called when the playback rate changes.

Syntax

virtual HRESULT ChangeRate() = 0;

Parameters

This method has no parameters.

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;
}

Requirements

Requirement Value
Header
Ctlutil.h (include Streams.h)
Library
Strmbase.lib (retail builds);
Strmbasd.lib (debug builds)

See also

CSourceSeeking Class