次の方法で共有


IAMTimelineGroup::SetSmartRecompressFormat

SetSmartRecompressFormat メソッドは、スマート再圧縮で使うビデオ圧縮フォーマットを指定する。

スマート再圧縮は、オーディオ グループに対してはサポートされない。

構文

  HRESULT SetSmartRecompressFormat(
    long *pFormat
);

パラメータ

pFormat

圧縮フォーマットを記述する構造体へのポインタ。現在は、SCompFmt0 構造体のみが有効である。この引数は、long 型のポインタにキャストしなければならない。

戻り値

次のいずれかの HRESULT 値を返す。

戻りコード 説明
S_OK 成功。
E_POINTER NULL ポインタ引数。
E_INVALIDARG 無効な引数。

注意

このメソッドを呼び出す前に、同じグループの IAMTimelineGroup::SetMediaType メソッドを呼び出して非圧縮フォーマットを指定すること。

SetSmartRecompressFormat メソッドが成功した場合は、スマート レンダリング エンジンを使って圧縮ビデオ ストリームを出力できる。圧縮ビデオの幅、高さ、フレーム レートは、pFormat 引数で指定した値になる。これらの値は、SetMediaType メソッドで非圧縮フォーマットに指定された値をオーバーライドする。ただし、スマート再圧縮を活用するには、2 つのフォーマットが一致している必要がある。つまり、圧縮フォーマットと非圧縮フォーマットは、幅、高さ、およびフレーム レートが同じでなければならない。

スマート レンダリング エンジンが圧縮フォーマットを生成できない場合、代わりに非圧縮ビデオ ストリームを生成する。そうなった場合、スマート レンダリング エンジンは、IRenderEngine::ConnectFrontEnd メソッドの実行中に DEX_IDS_CANT_FIND_COMPRESSOR レンダリング エラーをレポートする。アプリケーションは、IAMErrorLog::LogError メソッドの実行中にこのエラーを捕捉できる。(詳細については、「エラーのログ」および「レンダリング エラー」を参照すること。)

スマート再圧縮フォーマットは、永続的ではない。アプリケーションでスマート再圧縮を使う場合、プロジェクト ファイルをロードするときに必ず再圧縮フォーマットを設定しなければならない。

要件

ヘッダー : Qedit.h をインクルードする。このヘッダー ファイルは、バージョン 7 以降の Microsoft® Direct3D® のヘッダーとは互換性がない。

ライブラリ : strmiids.lib を使用。

参照