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 |
|
|
|
|
UpdateFrequency5 |
[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.
virtual HRESULT ChangeRate() = 0;
This method has no parameters.
Returns an HRESULT value.
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;
}
Requirement | Value |
---|---|
Header |
|
Library |
|