完全メディアタイプと部分メディアタイプ

このトピックでは、完全なメディアタイプと部分メディアタイプの違いについて説明します。

完全なメディアの種類

完全なメディアの種類は、メディア ストリームの形式を完全に定義したものです。 完全なメディアの種類を指定すると、パイプライン コンポーネントは、メディアの種類に関連付けられているストリーム データをあいまいさなしで解析できます。

圧縮されていない形式の場合、次のトピックでは、完全なメディアの種類に必要な属性を定義します。

圧縮された (または エンコードされた) ストリームの場合、完全なメディアの種類の定義はコーデックによって定義されます。 ただし、圧縮ストリームに対して圧縮されていない型属性がわかっている場合は、これらの値を圧縮ストリームのメディアの種類に含める必要があります。 たとえば、フレーム サイズがわかっている場合は、技術的には圧縮ストリームにフレーム サイズがない場合でも、メディア の種類に MF_MT_FRAME_SIZE 属性を設定します。

部分メディアの種類

部分メディアタイプには、完全なメディアタイプに必要な属性が1つ以上欠けています。 使用可能なメディアの種類を列挙する場合、Microsoft Media Foundation コンポーネントは値を設定解除したままにして、任意の値を処理できることを示します。 たとえば、ビデオ プロセッサは 、MF_MT_FRAME_RATE 属性を設定解除したままにして、任意のフレーム レートを処理できることを示し、必要に応じてフレーム レート変換を実行します。

部分的なメディアの種類を作成する場合でも、知っている限り多くの情報を含める必要があります。 ただし、メディアの種類には、不確実な情報を含めてはなりません。 間違っているよりも、情報が欠落している方が良いです。

少なくとも、部分的なメディアの種類には、 MF_MT_MAJOR_TYPEMF_MT_SUBTYPEの 2 つの属性のみを含める必要があります。

Media Foundation コンポーネントは、完全なメディアの種類を提供する必要がある場合があります。

  • メディア ソースは、完全な出力の種類を提供する必要があります。
  • デコーダーは、入力の種類が設定された後に、完全な出力の種類を提供する必要があります。 入力の種類を設定する前に、デコーダーによって部分的な出力の種類が提供される場合があります。
  • エンコーダーは、出力の種類が設定された後、完全な入力の種類を提供する必要があります。 出力の種類を設定する前に、エンコーダーが部分的な入力の種類を提供する場合があります。

メディアの種類