IMFRateControl::SetRate メソッド (mfidl.h)
再生速度を設定します。
構文
HRESULT SetRate(
[in] BOOL fThin,
[in] float flRate
);
パラメーター
[in] fThin
TRUE の場合、メディア ストリームは間引きされます。 それ以外の場合、ストリームは間引きされません。 メディア ソースとデマルチプレクサーの場合、このパラメーターが TRUE の場合、オブジェクトはストリームをシンする必要があります。 デコーダーやマルチプレクサーなどのダウンストリーム変換の場合、このパラメーターは有益です。入力ストリームが間引かれていることをオブジェクトに通知します。 詳細については、「 レート制御について」を参照してください。
[in] flRate
要求された再生速度。 正の値は前方再生を示し、負の値は逆再生を示し、ゼロはスクラブを示します (ソースは 1 つのフレームを提供します)。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
オブジェクトは逆再生をサポートしていません。 |
|
オブジェクトは間引きをサポートしていません。 |
|
オブジェクトは、要求された再生速度をサポートしていません。 |
|
実行中にオブジェクトを新しいレートに変更することはできません。 |
解説
メディア セッションは、現在の再生状態に応じて、レート境界間の一部の遷移を防ぎます。
再生状態 | 転送/反転 | 前方/ゼロ | Reverse/Zero |
---|---|---|---|
実行中 | いいえ | いいえ | いいえ |
一時停止 | いいえ | はい | いいえ |
停止済み | はい | はい | はい |
遷移がサポートされていない場合、メソッドは MF_E_UNSUPPORTED_RATE_TRANSITIONを返します。
メディア ソースが SetRate の呼び出しを完了すると、 MESourceRateChanged イベントが送信されます 。 他のパイプライン コンポーネントでは、このイベントは送信されません。
メディア ソースがシン再生と非シン再生を切り替えた場合、ストリームは MEStreamThinMode イベントを送信して遷移を示します。 メディア ソースからのイベントは、メディア ストリームからのイベントと同期されません。 MESourceRateChanged イベントを受け取った後も、ストリームがシンモードまたは非シンモードに切り替える前にキューに入れられていたサンプルを受け取ることができます。 MEStreamThinMode イベントは、遷移が発生するストリーム内の正確なポイントをマークします。
メディア セッションが SetRate の呼び出しを完了すると、 MESessionRateChanged イベントが送信されます 。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mfidl.h |
Library | Mfuuid.lib |