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を返します。この時点以降、バッファが使用可能になると、フレームワークはnotify_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を呼び出してフレームワークに返す必要があります。
ファイル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行で定義されています。
この構造体のドキュメントは、次のファイルから生成されました。