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)

詳細な説明

リクエスト入力キュープロトコル:

フレームワークはキューとその内容を保持します。開始時、キューは空です。

  1. 最初のメタデータ バッファーがキューに配置されると、フレームワークは、notify_request_queue_not_empty() を呼び出してデバイスに通知します。
  2. デバイスは、notify_request_queue_not_empty を受信した後、次のバッファを処理する準備ができたら dequeue() を呼び出す必要があります。
  3. デバイスがバッファを処理し、次のバッファの準備ができたら、通知を待つ代わりに dequeue() を再度呼び出す必要があります。使用可能なバッファがもうない場合、dequeue() は NULL を返します。この時点以降、バッファーが使用可能になると、フレームワークは再度 Notice_request_queue_not_empty() を呼び出す必要があります。デバイスがデキューから NULL の戻りを受け取った場合、ソースから notify_request_queue_not_empty() 呼び出しを受信するまで、キューを再度クエリする必要はありません。
  4. デバイスがbuffer_count()を呼び出して0を受け取った場合、これはフレームワークがnotify_request_queue_not_empty()呼び出しを提供することを意味するものではありません。フレームワークは、デバイスがデキューから NULL を受信した後、または最初の起動時にのみそのような通知を提供します。
  5. notify_request_queue_not_empty() に応答する dequeue() 呼び出しは、notify_request_queue_not_empty() 呼び出しと同じスレッド上にある場合があり、notify 呼び出し内から実行される場合があります。
  6. デキューされたすべてのリクエスト バッファは、エラーが発生したとき、デバイスのフラッシュがリクエストされたとき、またはデバイスがシャットダウンしているときを含め、free_request を呼び出してフレームワークに返す必要があります。

ファイルCamera2.h220行目の定義。

フィールドドキュメント

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.h237行目の定義。

int(* free_request)(const struct Camera2_request_queue_src_ops *q, Camera_metadata_t *old_buffer)

メタデータ バッファーが使用された後、またはエラーやシャットダウンが発生した場合は、メタデータ バッファーをフレームワークに返します。

ファイルCamera2.h243行目の定義。

int(* request_count)(const struct Camera2_request_queue_src_ops *q)

キュー内で保留中のリクエスト バッファの数を取得します。繰り返しリクエスト (ストリームリクエスト) が現在設定されている場合は、CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS を返す場合があります。このメソッドを呼び出しても、notify_request_queue_not_empty() メソッドがフレームワークによって呼び出されるかどうかには影響しません。

ファイルCamera2.h228行目の定義。


この構造体のドキュメントは次のファイルから生成されました。