Microsoft DirectX 8.0 |
オブジェクトのエンベロープ フォロー パラメータを取得する。
オーバーヘッドを減らすために、パラメータはインデックス値によって参照され、すべてのパラメータ値は MP_DATA 型として定義される 32 ビットである。指定されたパラメータが整数、浮動小数点値、ブール値、または列挙型のメンバのいずれであるかを確認するには、IMediaParamInfo インターフェイスを使用する。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントの値を増やす。 Release 参照カウントの値を減らす。 IMediaParams メソッド 説明 GetParam 指定されたパラメータの最新の値を取得する。 SetParam パラメータの値を設定する。 AddEnvelope パラメータにエンベロープを追加する。 FlushEnvelope 指定されたパラメータのエンベロープ データを指定された時間の範囲でフラッシュする。 SetTimeFormat オブジェクトのタイム フォーマットを指定する。
指定されたパラメータの現在の値を取得する。パラメータが現在エンベロープ セグメント内にある場合は、戻り値は最後に処理されたサンプルの値である。
構文
HRESULT GetParam( DWORD dwParamIndex, MP_DATA *pValue );
パラメータ
- dwParamIndex
- [in] パラメータのゼロベースのインデックス。
- pValue
- [out] パラメータ値を受け取る MP_DATA 型の変数へのポインタ。
戻り値
HRESULT 値を返す。返される値は次のとおり。
S_OK 成功。 E_INVALIDARG 範囲外のインデックス。 E_POINTER NULL ポインタ引数。
注意
このオブジェクトによってサポートされるパラメータをインデックス値とともに列挙するには、IMediaParamInfo インターフェイスを使用すること。
パラメータの値を設定する。
構文
HRESULT SetParam( DWORD dwParamIndex, MP_DATA value );
パラメータ
- dwParamIndex
- [in] パラメータのゼロベースのインデックス、またはすべてのパラメータに値を適用する DWORD_ALLPARAMS。
- value
- [in] パラメータの新しい値。
戻り値
HRESULT 値を返す。返される値は次のとおり。
S_OK 成功。 E_INVALIDARG 範囲外のインデックス、またはパラメータ値が無効。
注意
パラメータが現在エンベロープ セグメント内にある場合、エンベロープ セグメントは新しい値をオーバーライドする。エンベロープ セグメントを削除するには、FlushEnvelope メソッドを呼び出すこと。
このオブジェクトによってサポートされるパラメータをインデックス値とともに列挙するには、IMediaParamInfo インターフェイスを使用すること。
パラメータにエンベロープを追加する。
構文
HRESULT AddEnvelope( DWORD dwParamIndex, DWORD cPoints, MP_ENVELOPE *pEnvelope, );
パラメータ
- dwParamIndex
- [in] インデックスのゼロベースのインデックス、またはすべてのパラメータにエンベロープを追加する DWORD_ALLPARAMS。
- cPoints
- [in] エンベロープ内のセグメントの数。
- pEnvelope
- [in] エンベロープ セグメントを定義する MP_ENVELOPE 構造体の配列。配列のサイズは cPoints パラメータで指定する。
戻り値
HRESULT 値を返す。返される値は次のとおり。
S_OK 成功。 E_INVALIDARG 範囲外のインデックス。 E_OUTOFMEMEORY メモリ不足。 E_POINTER NULL ポインタ引数。
注意
エンベロープが既存のエンベロープとオーバーラップするときは、新しいエンベロープが優先される。
このオブジェクトによってサポートされるパラメータをインデックス値とともに列挙するには、IMediaParamInfo インターフェイスを使用すること。
指定されたパラメータのエンベロープ データを指定された時間の範囲でフラッシュする。
構文
HRESULT FlushEnvelope( DWORD dwParamIndex, REFERENCE_TIME refTimeStart, REFERENCE_TIME refTimeEnd );
パラメータ
- dwParamIndex
- [in] パラメータのゼロベースのインデックス、またはすべてのパラメータのエンベロープ データをフラッシュする DWORD_ALLPARAMS。
- refTimeStart
- [in] エンベロープ データのフラッシュを開始する時間。
- refTimeEnd
- [in] エンベロープ データのフラッシュを停止する時間。
戻り値
HRESULT 値を返す。返される値は次のとおり。
S_OK 成功。 E_INVALIDARG 範囲外のインデックス。
注意
refTimeStart と refTimeEnd によって指定された時間の範囲がエンベロープ セグメントでオーバーラップする場合は、セグメント全体がフラッシュされる。一方、エンベロープ セグメントの境界にあたる場合は、セグメント全体が保持される。つまり、次のようになる。
- 開始タイムがエンベロープ セグメントの内側である場合は、セグメントはフラッシュされる。
- 終了タイムがエンベロープ セグメントの内側である場合は、セグメントはフラッシュされる。
- 開始タイムがエンベロープ セグメントの終了タイムに等しい場合は、セグメントは保持される。
- 終了タイムがエンベロープ セグメントの開始タイムに等しい場合は、セグメントは保持される。
このオブジェクトによってサポートされるパラメータをインデックス値とともに列挙するには、IMediaParamInfo インターフェイスを使用すること。
オブジェクトのタイム フォーマットを指定する。
構文
HRESULT SetTimeFormat( GUID guidTimeFormat, MP_TIMEDATA mpTimeData );
パラメータ
- guidTimeFormat
- [in] タイム フォーマットを指定するタイム フォーマット GUID。
- mpTimeData
- [in] 新しいフォーマットの単位を指定する MP_TIMEDATA 型の値。
戻り値
HRESULT 値を返す。返される値は次のとおり。
S_OK 成功。 E_DMOTIMESTAMPFORMAT オブジェクトはこのタイム フォーマットをサポートしていない。
注意
オブジェクトは複数のタイム フォーマットをサポートできる。すべてのオブジェクトは、100 ナノ秒 (ns) 単位の基準タイムをサポートする必要がある。その他のフォーマットはオプションである。アプリケーションは、入力バッファのタイム スタンプが、このメソッドを使用して設定されたタイム フォーマットに一致することを保証しなければならない。
mpTimeData パラメータの値は、guidTimeFormat パラメータの値によって異なる。
タイム フォーマット タイム データの意味 GUID_TIME_REFERENCE 無視される。 GUID_TIME_MUSIC 四分音符 1 個あたりのパート数。 GUID_TIME_SAMPLES 1 秒あたりのサンプル数。 このメソッドを呼び出す場合は、FlushEnvelope メソッドも呼び出し、前のタイム フォーマットを使用して設定されたエンベロープをフラッシュする。
オブジェクトがどのタイム フォーマットをサポートしているかを確認するには、IMediaParamInfo::GetSupportedTimeFormat メソッドを呼び出す。現在のフォーマットを取得するには、IMediaParamInfo::GetCurrentTimeFormat メソッドを呼び出す。