[パラメーター ヒント]
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
IMediaParamInfo::GetParamInfo メソッドは、パラメーターを記述するMP_PARAMINFO構造体を返します。 この構造体には、次の情報が含まれています。
- mpType メンバーは、パラメーター値のデータ型を示します。 効率を高める目的で、すべてのパラメーターは 32 ビット浮動小数点値として実装されます。 MP_TYPE列挙では、値を整数、浮動小数点値、ブール値、または列挙型 (整数系列) として解釈するかどうかを定義します。
- mopCaps メンバーは、このパラメーターがサポートする曲線を示します。 データ型が Boolean または列挙型の場合、パラメーターでサポートできる曲線は "Jump" だけです。
- mpdMinValue メンバーと mpdMaxValue メンバーは、このパラメーターの最小値と最大値を定義します。 このパラメータの曲線は、この範囲内に収まる必要があります。
- mpdNeutralValue メンバーは、 パラメーターの既定値です。
- szLabel メンバーはパラメーターの名前で、szUnitText メンバーはパラメーターの測定単位の名前です。 たとえば、"Volume" や "Decibels"、"Frequency" や "kHz" などがあります。どちらの文字列も英語であり、ローカライズされません。 DMO は、 IMediaParamInfo::GetParamText メソッドを使用してローカライズされたバージョンを提供できます。
各パラメーターの情報は、DMO の有効期間全体にわたって固定されたままです。 そのため、クライアントはこの情報を 1 回クエリしてキャッシュできます。
時刻形式
クライアントは、DMO が対応するパラメーター値を計算できるように、入力データにタイム スタンプを設定する必要があります。 既定では、タイム スタンプは 100 ナノ秒 ( 参照時間とも呼ばれます) の単位を表します。 ただし、この時間単位はすべてのアプリケーションに適しているわけではありません。そのため、DMO には他の時刻形式をサポートするオプションがあります。 時刻形式は GUID で識別されます。
GUID | 説明 |
---|---|
GUID_TIME_REFERENCE | 参照時間 |
GUID_TIME_MUSIC | 四半期ごとの部品数 (PPQN) |
GUID_TIME_SAMPLES | 1 秒あたりのサンプル数 |
サード パーティは、必要に応じて独自の時間形式を定義することをお勧めします。 ただし、すべての DMO は参照時間をサポートする必要があります。 これにより、すべてのユーザーが使用できる標準ベースラインが提供されます。 DMO でサポートされる時間形式の数を確認するには、 IMediaParamInfo::GetNumTimeFormats メソッドを 呼び出します。 サポートされている形式を列挙するには、 IMediaParamInfo::GetSupportedTimeFormat メソッドを呼び出します。
時刻形式を設定するには、 IMediaParams::SetTimeFormat を呼び出します。 このメソッドは、時刻形式 GUID と 時刻データを指定します。これは、クロック ティックあたりの単位数です。 たとえば、時間形式が 1 秒あたりのサンプルであり、時間データが 32 の場合、タイム スタンプ値 10 は 320 サンプルに対応します。
関連トピック