完全メディアタイプと部分メディアタイプ
このトピックでは、完全なメディアの種類と部分的なメディアの種類の違いについて説明します。
完全なメディアの種類
メディアの種類 完全な は、メディア ストリームの形式を完全に定義したものです。 完全なメディアの種類を指定すると、パイプライン コンポーネントは、あいまいさなしで、メディアの種類に関連付けられているストリーム データを解析できます。
圧縮されていない形式の場合、次のトピックでは、完全なメディアの種類に必要な属性を定義します。
- オーディオ: 非圧縮オーディオ メディアの種類
- ビデオ: 圧縮されていないビデオ メディアの種類 を する
圧縮 (または エンコードされた) ストリームの場合、完全なメディアタイプの定義はコーデックによって定義されます。 ただし、圧縮ストリームで圧縮されていない型属性がわかっている場合は、圧縮ストリームのメディアの種類にこれらの値を含める必要があります。 たとえば、フレーム サイズがわかっている場合は、技術的には圧縮ストリームにフレーム サイズがない場合でも、メディアの種類に MF_MT_FRAME_SIZE 属性を設定します。
部分メディアの種類
部分的な メディア タイプには、完全なメディア タイプに必要な属性が 1 つ以上不足しています。 可能なメディアの種類を列挙する場合、Microsoft Media Foundation コンポーネントは、任意の値を処理できることを示すために、値の設定を解除したままにすることができます。 たとえば、ビデオ プロセッサは、MF_MT_FRAME_RATE 属性を設定したままにして、任意のフレーム レートを処理できることを示し、必要に応じてフレーム レート変換を実行します。
部分的なメディアタイプを作成する場合は、知っている限り多くの情報を含める必要があります。 ただし、メディアの種類には、不明な情報を含めてはなりません。 情報が見つからない方が間違っているよりも良いです。
少なくとも、部分的なメディアの種類には、MF_MT_MAJOR_TYPE と MF_MT_SUBTYPEの 2 つの属性のみを含める必要があります。
Media Foundation コンポーネントは、完全なメディアの種類を提供する必要がある場合があります。
- メディア ソースは、完全な出力の種類を提供する必要があります。
- デコーダーは、入力の種類が設定された後、完全な出力の種類を提供する必要があります。 入力の種類を設定する前に、デコーダーが部分的な出力の種類を提供する場合があります。
- エンコーダーは、出力の種類が設定された後、完全な入力の種類を提供する必要があります。 出力の種類を設定する前に、エンコーダーが部分的な入力の種類を提供する場合があります。
関連トピック