ASF スプリッター オブジェクトの作成
ASF スプリッタ ー オブジェクトは、Advanced Systems Format (ASF) ファイルの ASF データ オブジェクトを解析する WMContainer レイヤー オブジェクトです。 ASF スプリッター オブジェクトの新しいインスタンスを作成するには、 MFCreateASFSplitter 関数を 呼び出します。 この関数は、空のスプリッター オブジェクトを表す IMFASFSplitter インターフェイスへのポインターを返します。
スプリッターの解析を開始する前に、アプリケーションは ASF ヘッダー オブジェクトからの情報を使用してスプリッターを初期化する必要があります。 スプリッターを初期化するには、 IMFASFSplitter::Initialize メソッドを呼び出します。 このメソッドは、解析する ASF ファイルのヘッダー情報を含む ASF ContentInfo オブジェクト へのポインターを受け取ります。 メディア ファイルの特性がアプリケーションに認識されるように、アプリケーションは、スプリッターに渡す前に ContentInfo オブジェクトを初期化する必要があります。 スプリッターの Initialize メソッドは、ストリーム番号などの ContentInfo オブジェクトからストリーム情報を抽出するため、スプリッターはデータ パケットを解析できます。
例
次のコード例は、スプリッターを作成し、既存の ContentInfo オブジェクトで初期化する方法を示しています。
// Create and initialize the ASF splitter.
HRESULT CreateASFSplitter (IMFASFContentInfo* pContentInfo,
IMFASFSplitter** ppSplitter)
{
IMFASFSplitter *pSplitter = NULL;
// Create the splitter object.
HRESULT hr = MFCreateASFSplitter(&pSplitter);
// Initialize the splitter to work with specific ASF data.
if (SUCCEEDED(hr))
{
hr = pSplitter->Initialize(pContentInfo);
}
if (SUCCEEDED(hr))
{
// Return the object to the caller.
*ppSplitter = pSplitter;
(*ppSplitter)->AddRef();
}
SafeRelease(&pSplitter);
return hr;
}
注意
この例では、 SafeRelease 関数を使用してインターフェイス ポインターを解放します。
関連トピック