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を返します。この時点以降、バッファが使用可能になると、フレームワークはnotify_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.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行で定義されています。


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