MFCreateTranscodeTopology 関数 (mfidl.h)

部分トランスコード トポロジを作成します。

基になるトポロジ ビルダーは、必要なパイプライン オブジェクト (ソース、エンコーダー、シンク) を接続して、部分的なトポロジを作成します。 エンコーダーとシンクは、トランスコード プロファイルで呼び出し元によって指定された設定に従って構成されます。

トランスコード プロファイル オブジェクトを作成するには、 MFCreateTranscodeProfile 関数を呼び出し、適切な IMFTranscodeProfile メソッドを呼び出して必要な属性を設定します。

構成されたトランスコード プロファイルは MFCreateTranscodeTopology 関数に渡され、適切な設定でトランスコード トポロジが作成されます。 呼び出し元は、メディア セッションでこのトポロジを設定し、エンコード プロセスを開始するセッションを開始できます。 メディア セッションが終了すると、トランスコードされたファイルが生成されます。

構文

HRESULT MFCreateTranscodeTopology(
  [in]  IMFMediaSource      *pSrc,
  [in]  LPCWSTR             pwszOutputFilePath,
  [in]  IMFTranscodeProfile *pProfile,
  [out] IMFTopology         **ppTranscodeTopo
);

パラメーター

[in] pSrc

トランスコードされるソース ファイルをカプセル化するメディア ソースへのポインター。 メディア ソース オブジェクトは IMFMediaSource インターフェイスを公開し、ソース リゾルバーを使用して作成できます。 詳細については、「 ソース リゾルバーの使用」を参照してください。

[in] pwszOutputFilePath

生成される出力ファイルの名前とパスを含む null で終わる文字列へのポインター。

[in] pProfile

オーディオ ストリーム、ビデオ ストリーム、ファイルの書き込み先コンテナーの構成設定を含むトランスコード プロファイルへのポインター。 トランスコード プロファイル オブジェクトは IMFTranscodeProfile インターフェイスを公開し、 MFCreateTranscodeProfile 関数を呼び出して作成する必要があります。 オブジェクトが作成されたら、呼び出し元は適切な IMFTranscodeProfile メソッドを呼び出して構成設定を指定する必要があります。

[out] ppTranscodeTopo

トランスコード トポロジ オブジェクトの IMFTopology インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

戻り値

関数は HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
関数呼び出しが成功し、 ppTranscodeTopo はトランスコード トポロジへのポインターを受け取ります。
E_INVALIDARG
pwszOutputFilePath に無効な文字が含まれています。
MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED
メディア ソースでストリームが選択されていません。
MF_E_TRANSCODE_NO_CONTAINERTYPE
プロファイルに MF_TRANSCODE_CONTAINERTYPE 属性が含まれていません。
MF_E_TRANSCODE_NO_MATCHING_ENCODER
1 つ以上のストリームの場合、プロファイルで指定されたメディアの種類を受け入れるエンコーダーが見つかりません。
MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS
プロファイルでは、メディア ソースで選択されているストリームのメディアの種類は指定されません。

注釈

この関数を使用するコード例については、次のトピックを参照してください。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfidl.h
Library Mf.lib
[DLL] Mf.dll

こちらもご覧ください

IMFTopology

メディア ファンデーション機能

トポロジ

トランスコード API