次の方法で共有


[パラメーター ヒント]

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/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 サンプルに対応します。

メディア パラメーター