IC4_SNAPSINK_CONFIG 構造体リファレンス

SnapSinkの動作を設定します。 詳細...

データフィールド

enum IC4_SNAPSINK_ALLOCATION_STRATEGY strategy

Sinkのバッファ確保ストラテジを指定します。

size_t num_buffers_alloc_on_connect

ストリームのセットアップ時に自動確保するバッファ数を定義します。

size_t num_buffers_allocation_threshold

必要な空きバッファの最小数を定義します。

size_t num_buffers_free_threshold

空きバッファの最大数を定義します。

size_t num_buffers_max

このSinkが確保するバッファの合計最大数を定義します。

enum IC4_PIXEL_FORMAT * pixel_formats

Sinkが受け取れるピクセルフォーマットの候補を格納した配列です。

size_t num_pixel_formats

pixel_formats 配列の長さです。

struct IC4_ALLOCATOR_CALLBACKS allocator

Sinkのアロケータをカスタマイズするための関数ポインタを格納した構造体です。

void * allocator_context

アロケータコールバックに渡されるユーザー定義の値です。

詳細説明

SnapSinkの動作を設定します。

IC4_SNAPSINK_CONFIG へのポインタを ic4_snapsink_create() に渡します。

フィールドドキュメント

◆ allocator

struct IC4_ALLOCATOR_CALLBACKS allocator

Sinkのアロケータをカスタマイズするための関数ポインタを格納した構造体です。

このパラメータは省略可能で、デフォルトのアロケータを使用するにはすべてのコールバック関数を to に設定します。

IC4_ALLOCATOR_CALLBACKS::allocate_buffer を設定する場合は、IC4_ALLOCATOR_CALLBACKS::free_buffer も設定する必要があります。

◆ allocator_context

void* allocator_context

アロケータコールバックに渡されるユーザー定義の値です。

callback_context がメモリ領域を指していて、コールバック関数がそのメモリにアクセスする場合は、IC4_ALLOCATOR_CALLBACKS::release コールバックが実行されるまでそのメモリが有効であることをプログラム側で保証する必要があります。

◆ num_buffers_alloc_on_connect

size_t num_buffers_alloc_on_connect

ストリームのセットアップ時に自動確保するバッファ数を定義します。

strategy が IC4_SNAPSINK_ALLOCATION_STRATEGY_CUSTOM に設定されていない限り、この値は無視されます。

◆ num_buffers_allocation_threshold

size_t num_buffers_allocation_threshold

必要な空きバッファの最小数を定義します。

空きバッファ数がこれを下回ると、新しいバッファが確保されます。

strategy が IC4_SNAPSINK_ALLOCATION_STRATEGY_CUSTOM に設定されていない限り、この値は無視されます。

◆ num_buffers_free_threshold

size_t num_buffers_free_threshold

空きバッファの最大数を定義します。

空きバッファ数がこれを上回ると、バッファが解放されます。

0 に設定すると、バッファは自動的に解放されません。

strategy が IC4_SNAPSINK_ALLOCATION_STRATEGY_CUSTOM に設定されていない限り、この値は無視されます。

注意
num_buffers_free_threshold が 0 でない場合は、num_buffers_allocation_threshold + 2 より大きくする必要があります。

◆ num_buffers_max

size_t num_buffers_max

このSinkが確保するバッファの合計最大数を定義します。

これにはSinkが管理する空きバッファと、プログラムが所有する充填済みバッファの両方が含まれます。

0 に設定すると、バッファの合計数に制限はありません。

strategy が IC4_SNAPSINK_ALLOCATION_STRATEGY_CUSTOM に設定されていない限り、この値は無視されます。

◆ num_pixel_formats

size_t num_pixel_formats

pixel_formats 配列の長さです。

この値が 0 の場合、Sinkは任意のピクセルフォーマットを受け入れます。

◆ pixel_formats

enum IC4_PIXEL_FORMAT* pixel_formats

Sinkが受け取れるピクセルフォーマットの候補を格納した配列です。

画像タイプは部分的に指定することもできます。

◆ strategy

Sinkのバッファ確保ストラテジを指定します。

バッファ確保ストラテジは、事前に確保するバッファ数、追加バッファを生成するタイミング、余分なバッファを回収するタイミングを定義します。