MF_TRANSCODE_ADJUST_PROFILE_FLAGS列挙 (mfidl.h)

MF_TRANSCODE_ADJUST_PROFILE属性で設定されるプロファイル フラグを定義します。

これらのフラグは、トポロジの構築中 に MFCreateTranscodeTopology によってチェックされます。 これらのフラグに基づいて、 MFCreateTranscodeTopology は、トポロジで使用されるエンコーダーの入力要件に従ってストリームの構成設定を変更することで、トランスコード プロファイルを調整します。

アプリケーションで指定できるストリーム設定の詳細については、「 Transcode API の使用」を参照してください。

構文

typedef enum _MF_TRANSCODE_ADJUST_PROFILE_FLAGS {
  MF_TRANSCODE_ADJUST_PROFILE_DEFAULT = 0,
  MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES = 1
} MF_TRANSCODE_ADJUST_PROFILE_FLAGS;

定数

 
MF_TRANSCODE_ADJUST_PROFILE_DEFAULT
値: 0
Media Foundation では、オーディオ ストリームとビデオ ストリームに対してアプリケーション指定の設定が使用されます。 必要な設定がアプリケーションによって提供されない場合、トポロジは作成されますが、エンコード セッションは失敗します。 ビデオ ストリームの場合、フレーム レートとインターレース モードの設定が変更されます。 詳細については、「解説」を参照してください。
MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES
値: 1
オーディオ ストリームとビデオ ストリームの両方で、不足しているストリーム設定は、入力ソース属性をコピーすることによって入力されます。 このフラグにより、トランスコードされた出力ファイルが入力ファイルに最も近いものになります。

解説

MF_TRANSCODE_ADJUST_PROFILE_DEFAULT フラグを指定すると、ビデオ ストリームに対して次の変更が行われます。

  • MFCreateTranscodeTopologypSrc パラメーターで指定されたメディア ソースのフレーム レートと、MF_MT_FRAME_RATE 属性のアプリケーションで指定されたフレーム レートが 1/1000 未満と異なる場合、プロファイルはメディア ソースのフレーム レートを使用します。 これは、パイプラインで違いがごくわずかであると見なされるためです。
  • アプリケーションで MF_MT_INTERLACE_MODE 属性を設定してインターレース モードを指定しない場合は、プログレッシブ フレームを使用するようにプロファイルが変更されます。
MF_TRANSCODE_ADJUST_PROFILE_DEFAULT フラグには、アプリケーションによって提供される必須のオーディオおよびビデオ ストリーム属性が付属している必要があります。 オーディオ ストリームの場合、必要な属性は次のとおりです。 ビデオ ストリームの場合、必要な属性は次のとおりです。 これらの属性が設定されていない場合、 MFCreateTranscodeTopology はトポロジを作成しますが、メディア セッションではエンコードされたファイルの生成に失敗します。 エラー コードは、トポロジ内の MFT ノードによって異なります。 たとえば、アプリケーションでフレーム サイズが設定されていない場合、WMV エンコーダーはコンテンツのエンコードに失敗し、アプリケーションはメディア セッションを介してMF_E_INVALIDMEDIATYPEエラー コードを取得します。

入力ストリーム属性を使用してファイルをトランスコードする場合は、 MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES フラグを使用します。 MFT ノードがトポロジに挿入される前に、入力ソース ストリーム属性が出力メディアの種類にコピーされます。 追加のストリーム属性を設定した場合、このフラグは設定値を上書きしません。 不足している属性のみが入力ソースの属性値で埋められます。 このフラグは、入力ソースと同じ形式で出力ファイルを生成する再多重化シナリオで役立ちます。 形式変換を実行する場合は、トポロジ ビルダーで使用する必要があるエンコーダーを指定するために、ストリームの MF_MT_SUBTYPE 属性を設定してください。 MF_TRANSCODE_DONOT_INSERT_ENCODERが 設定されていない限 り、変換ノードがトポロジに追加されます。 この場合、 と のコンテンツはエンコードされません。 代わりに、コンテナーで許可されている場合、コンテンツは指定されたコンテナーに埋め込まれます。

たとえば、入力ソースが MP3 ファイルであるとします。 コンテナーを MFTranscodeContainerType_ASFに設定し、ストリーム属性を設定せず、 MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES フラグを設定します。 この場合、生成される出力ファイルは、MP3 メディア データを含む ASF ファイル (.wma) です。 このフラグを使用する場合、特定の入力ストリーム属性とコンテナーの種類に互換性がない可能性があることに注意してください。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header mfidl.h

関連項目

Media Foundation 列挙

トランスコード API