出力形式の割り当て
一部のコーデックでは、デジタル メディア データを複数の圧縮されていない形式に圧縮解除できます。 非同期リーダーまたは同期リーダーを使用して、特定の出力でサポートされているすべての形式を見つけることができます。
出力に使用できるすべての形式を調べるには、次の手順を実行します。 これらのプロシージャは、非同期リーダーと同期リーダーの両方で同じです。 インターフェイス名が異なる場合、同期リーダー メソッドは、非同期リーダーのメソッドの後にかっこで囲まれて一覧表示されます。
リーダー オブジェクトを作成し、読み取り用のファイルを読み込みます。 詳細については、「 リーダーを作成してファイルを開くには (または 同期リーダーを作成してファイルを開くには)」を参照してください。
使用可能な形式を検索する出力を決定します。 使用する出力がわからない場合は、「出力番号を識別するには」の手順を使用して、ファイル内の 出力を識別できます。
IWMReader::GetOutputFormatCount (または IWMSyncReader::GetOutputFormatCount) を呼び出して、目的の出力に使用できる形式の合計数を取得します。
使用可能な形式を一度に 1 つずつループ処理し、それぞれに対して次の手順を実行します。
IWMReader::GetOutputFormat (または IWMSyncReader::GetOutputFormat) を呼び出して、現在の出力形式の IWMOutputMediaProps インターフェイスを取得します。
IWMMediaProps::GetMediaType を 2 回呼び出して、出力形式のWM_MEDIA_TYPE構造を取得します。 構造体のサイズを取得する最初の呼び出しを行い、その構造体にメモリを割り当て、2 番目の呼び出しで割り当てられたメモリへのポインターを渡します。
出力形式のメディア サブタイプを WM_MEDIA_TYPE.subtype で検索します。
ビデオの場合、現在のサブタイプが出力に使用する形式である場合は、ループから抜け出します。 それ以外の場合は、次のイテレーションに進みます。
オーディオの場合は、要件に合わせて WAVEFORMATEX 構造体の値をチェックする必要があります。 WM_MEDIA_TYPE.pbFormat は、オーディオ出力の WAVEFORMATEX 構造体を指します。
必要な出力が見つかったら、 IWMReader::SetOutputProps (または IWMSyncReader::SetOutputProps ) を呼び出して、リーダーで使用されるように設定 します。 ループの最初のステップで取得した IWMOutputMediaProps インターフェイスへのポインターを渡す必要があります。
関連トピック