IC4_ALLOCATOR_CALLBACKS 構造体リファレンス

ImageBuffer用のカスタムアロケータを設定するために使用する関数ポインタを格納します。 詳細...

Data Fields

void(*  release )(void *context)

アロケータがこれ以上コールバック関数の呼び出しを受け取らないことをユーザーに通知します。

bool(*  allocate_buffer )(void *context, size_t buffer_size, size_t alignment, void **buffer_ptr, void **user_data)

アロケータにメモリバッファの確保を要求します。

void(*  free_buffer )(void *context, void *buffer_ptr, void *user_data

アロケータに、以前に確保したメモリバッファの解放を要求します。

詳細説明

ImageBuffer用のカスタムアロケータを設定するために使用する関数ポインタを格納します。

フィールドドキュメント

◆ allocate_buffer

bool(* allocate_buffer) (void *context, size_t buffer_size, size_t alignment, void **buffer_ptr, void **user_data)

アロケータにメモリバッファの確保を要求します。

パラメータ
[in]contextSink作成関数に渡されたallocator_contextパラメータ
[in]buffer_size要求されたメモリバッファのサイズ
[in]alignment特定のアライメント境界でメモリを確保することを要求します。
この値は常に2のべき乗です。
[out]buffer_ptr新しく確保されたバッファのアドレスを受け取るポインタへのポインタ
[out]user_dataバッファに関連付けるユーザーデータ。このユーザーデータは、確保されたメモリが再び解放される際にfree_bufferに渡されます。
戻り値
成功した場合はtrue。メモリ確保を実行できなかった場合はfalseを返します。

◆ free_buffer

void(* free_buffer) (void *context, void *buffer_ptr, void *user_data)

アロケータに、以前に確保したメモリバッファの解放を要求します。

パラメータ
[in]contextSink作成関数に渡されたallocator_contextパラメータ
[in]buffer_ptr解放するメモリバッファへのポインタ
[in]user_dataメモリバッファが確保された際にallocate_bufferから返されたユーザーデータ

◆ release

void(* release) (void *context)

アロケータがこれ以上コールバック関数の呼び出しを受け取らないことをユーザーに通知します。

contextパラメータに関連付けられたリソースは解放できます。

パラメータ
[in]contextSink作成関数に渡されたallocator_contextパラメータ。
注意
releaseコールバック関数は、ic4_sink_unref()への最後の呼び出しによってSinkを破棄するスレッド上で実行されます。