IC4_BUFFER_POOL 構造体リファレンス

BufferPoolを使用すると、プログラムで使用する追加のImageBufferを確保できます。 詳細...

詳細説明

BufferPoolを使用すると、プログラムで使用する追加のImageBufferを確保できます。

この型は不透明型であり、プログラムはIC4_BUFFER_POOL*型のポインタのみを使用します。

ほとんどのプログラムは、いずれかのSinkタイプが提供するImageBufferのみを使用します。ただし、一部のプログラムでは、例えば画像処理の出力先として使用するために追加のバッファが必要になります。

追加のバッファを作成するには、まずic4_bufferpool_create()を使用してBufferPoolを作成します。次に、ic4_bufferpool_get_buffer()を使用して、指定した画像タイプの新しいImageBufferを作成します。メモリ確保オプションを指定して、ImageBufferのメモリアライメント、ピッチ、バッファ全体のサイズをカスタマイズできます。

ImageBufferが不要になったら、それに対してic4_imagebuffer_unrefを呼び出します。これにより、バッファはBufferPoolに返却されます。

BufferPoolのキャッシュ動作は設定可能です。デフォルトでは、BufferPoolは1つのImageBufferをキャッシュし、次回一致するImageBufferが要求されたときにそれを返します。

BufferPoolオブジェクトは参照カウント方式であり、初期参照カウント1で作成されます。BufferPoolオブジェクトをプログラムの複数の部分で共有するには、ic4_bufferpool_ref()を呼び出して新しい参照を作成します。参照が不要になったら、ic4_bufferpool_unref()を呼び出します。

BufferPoolオブジェクトの内部参照カウントがゼロに達すると、BufferPoolオブジェクトは破棄されます。その後も、BufferPoolによって作成されたImageBufferは、ic4_imagebuffer_unrefを呼び出して解放されるまで有効です。