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
| enum IC4_SNAPSINK_ALLOCATION_STRATEGY strategy |
Sinkのバッファ確保ストラテジを指定します。
バッファ確保ストラテジは、事前に確保するバッファ数、追加バッファを生成するタイミング、余分なバッファを回収するタイミングを定義します。


