Camera2_request_queue_src_ops 構造体リファレンス
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 を返します。この時点以降、バッファーが使用可能になると、フレームワークは再度 Notice_request_queue_not_empty() を呼び出す必要があります。デバイスがデキューから 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 を呼び出してフレームワークに返す必要があります。
フィールドドキュメント
int(* dequeue_request)(const struct Camera2_request_queue_src_ops *q, Camera_metadata_t **buffer) |
フレームワークからメタデータ バッファーを取得します。エラーがなければOKを返します。キューが空の場合は、バッファに NULL を返します。その場合、デバイスは再度デキューを試行する前に、notify_request_queue_not_empty() メッセージを待つ必要があります。この方法で取得したバッファは、 free_request()を使用してフレームワークに返す必要があります。
int(* free_request)(const struct Camera2_request_queue_src_ops *q, Camera_metadata_t *old_buffer) |
int(* request_count)(const struct Camera2_request_queue_src_ops *q) |
この構造体のドキュメントは次のファイルから生成されました。