CRI Sofdec
Last Updated: 2024-09-25 20:36 p
|
PC版Sofdec で使用可能なビデオ出力フォーマットについて説明します。
Sofdec ライブラリのデコード結果は、独自フォーマットで保持しています。
ビデオフレーム出力バッファーにビデオフレームをコピーする際に、描画に適したフォーマットに変換します。
PC(Windows)プラットフォームでは次の2種類のビデオフレーム出力フォーマットをサポートしています。
デコード結果を変換するビデオフレーム出力バッファーは、アプリケーションが確保してください。
バッファーのサイズはムービーの解像度や描画のフォーマットに依存します。
出力先がテクスチャバッファーの場合、ムービーの横ピクセル数とバッファーの横幅(ピッチ)が異なる場合があります。
Sofdec のビデオフレームを変換/コピーする時は、基本的にバッファーポインタ、バッファーサイズ、ピッチの3つのパラメーターが必要となります。
32bit ARGBテクスチャフォーマットでビデオフレームを取得します。
criManaPlayer_CopyFrameToBufferARGB32 関数を使用してください。
ただし、本フォーマットでの取得には::criMana_InitializeFrameARGB32関数をライブラリ初期化直後に呼び出す必要があります。
32bit ARGBフォーマットの具体的なデータの並びは、最も汎用的なテクスチャフォーマットに準拠します。
PCの場合は、ビデオカード等の制約によりテクスチャサイズが2のべき乗に制限される場合がありますので、ピッチ指定に注意してください。
ビデオフレーム取得関数の引数pitch には実際のメモリ幅を指定します。
Yバッファー、Uバッファー、Vバッファーの3つのバッファーにビデオフレームを取得します。
criManaPlayer_CopyFrameToBuffersYUV 関数を使用してください。関数引数には CriManaTextureBuffersYUV 構造体を使います。
このフォーマットは、Pixel Shader でYUV→RGBの色変換を行いながら描画するのに適しています。
Pixel Shader はアプリケーションで実装・制御する必要があります。