camera2_request_queue_src_ops 構造体リファレンス
#include <
camera2.h
>
データ フィールド |
|
int(* | request_count )(const struct camera2_request_queue_src_ops *q) |
int(* | dequeue_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer) |
int(* | free_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer) |
詳細な説明
リクエスト入力キュー プロトコル:
フレームワークはキューとその内容を保持します。開始時にキューは空です。
- 最初のメタデータ バッファがキューに配置されると、フレームワークは notify_request_queue_not_empty() を呼び出してデバイスにシグナルを送信します。
- notify_request_queue_not_empty を受け取った後、デバイスは次のバッファを処理する準備ができたら dequeue() を呼び出す必要があります。
- デバイスがバッファを処理して次のバッファの準備ができたら、通知を待つのではなく、再度 dequeue() を呼び出す必要があります。使用可能なバッファがなくなった場合、dequeue() は NULL を返します。この時点以降、バッファが使用可能になったら、フレームワークは notify_request_queue_not_empty() を再度呼び出す必要があります。デバイスが dequeue から NULL を返された場合、ソースから notify_request_queue_not_empty() 呼び出しが受信されるまで、キューを再度クエリする必要はありません。
- デバイスが buffer_count() を呼び出して 0 を受信した場合、フレームワークが notify_request_queue_not_empty() 呼び出しを提供するわけではありません。フレームワークは、デバイスがキューから NULL を受信した後、または最初の起動時にのみ、このような通知を提供します。
- notify_request_queue_not_empty() への応答として呼び出される dequeue() は、notify_request_queue_not_empty() 呼び出しと同じスレッドで行われ、notify 呼び出し内から実行される場合があります。
- キューから削除されたリクエスト バッファはすべて、エラーが発生した場合、デバイスのフラッシュがリクエストされた場合、デバイスがシャットダウンする場合など、free_request を呼び出してフレームワークに返す必要があります。
ファイル camera2.h の 220 行目 に定義されています。
フィールドのドキュメント
int(* dequeue_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer) |
フレームワークからメタデータ バッファを取得します。エラーがなければ OK を返します。キューが空の場合、バッファ内の NULL を返します。その場合、デバイスは notify_request_queue_not_empty() メッセージを待ってから、キューから再度削除を試行する必要があります。この方法で取得したバッファは、 free_request() を使用してフレームワークに返す必要があります。
ファイル camera2.h の 237 行 に定義されています。
int(* free_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer) |
メタデータ バッファは、使用した後、またはエラーやシャットダウンが発生した場合にフレームワークに返します。
ファイル camera2.h の 243 行 に定義されています。
int(* request_count)(const struct camera2_request_queue_src_ops *q) |
キュー内に保留中のリクエスト バッファの数を取得します。繰り返しリクエスト(ストリーム リクエスト)が現在構成されている場合は、CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS を返すことがあります。このメソッドを呼び出しても、notify_request_queue_not_empty() メソッドがフレームワークによって呼び出されるかどうかには影響しません。
ファイル camera2.h の 228 行目 に定義されています。
この構造体のドキュメントは、次のファイルから生成されました。
- hardware/libhardware/include/hardware/ camera2.h