Camera2_device_ops 構造体のリファレンス
#include < camera2.h >
データフィールド | |
int(* | set_request_queue_src_ops )(const struct Camera2_device *, const Camera2_request_queue_src_ops_t *request_src_ops) |
int(* | Notice_request_queue_not_empty )(const struct Camera2_device *) |
int(* | set_frame_queue_dst_ops )(const struct Camera2_device *, const Camera2_frame_queue_dst_ops_t *frame_dst_ops) |
int(* | get_in_progress_count )(const struct Camera2_device *) |
int(* | flash_captures_in_progress )(const struct Camera2_device *) |
int(* | construct_default_request )(const struct Camera2_device *, int request_template, Camera_metadata_t **request) |
int(* | assign_stream )(const struct Camera2_device *, uint32_t width, uint32_t height, int format, const Camera2_stream_ops_t *stream_ops, uint32_t *stream_id, uint32_t *format_actual, uint32_t *usage, uint32_t *max_buffers) |
int(* | register_stream_buffers )(const struct Camera2_device *, uint32_t stream_id, int num_buffers,buffer_handle_t *buffers) |
int(* | release_stream )(const struct Camera2_device *, uint32_t stream_id) |
int(* | assign_reprocess_stream )(const struct Camera2_device *, uint32_t width, uint32_t height, uint32_t format, const Camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers) |
int(* | assign_reprocess_stream_from_stream )(const struct Camera2_device *, uint32_t Output_stream_id, const Camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id) |
int(* | release_reprocess_stream )(const struct Camera2_device *, uint32_t stream_id) |
int(* | トリガー_アクション)(const structカメラ 2_デバイス*, uint32_t トリガー ID, int32_t ext1, int32_t ext2) |
int(* | set_notify_callback )(const struct Camera2_device *, Camera2_notify_callback Notice_cb, void *user) |
int(* | get_metadata_vendor_tag_ops )(const struct Camera2_device *、vendor_tag_query_ops_t **ops) |
int(* | ダンプ)(const struct Camera2_device *, int fd) |
int(* | get_instance_metadata )(const struct Camera2_device *, Camera_metadata **instance_metadata) |
詳細な説明
フィールドドキュメント
int(* assign_reprocess_stream)(const struct Camera2_device *, uint32_t width, uint32_t height, uint32_t format, const Camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers) |
assign_reprocess_stream:
出力バッファの幅、高さ、ピクセル形式によって定義された、使用する新しい入力ストリームを割り当てます。成功した場合は、新しいストリームの ID、gralloc 使用フラグ、および必要な同時取得可能なバッファ数を返します。エラー条件:
- センサーの静的特性でサポートされているものとしてリストされていない幅/高さ/形式の組み合わせをリクエストしています
- 一度に構成できる再処理ストリームが多すぎます。
入力パラメータ:
- width、height、format: このストリームを通じて送信されるバッファの仕様。形式は、HAL_PIXEL_FORMAT_* リストの値である必要があります。
- reprocess_stream_ops: このストリームのバッファを取得および解放するための関数ポインタの構造体。基礎となるストリームは、使用状況と max_buffers の出力に基づいて構成されます。
出力パラメータ:
- stream_id: このストリームを識別する符号なし整数。この値は、受信リクエストでストリームを識別するときと、ストリームを解放するときに使用されます。これらの ID には、入力ストリーム ID とは別に番号が付けられます。
- Consumer_usage: 要求されたタイプのデータを消費するために HAL デバイスが必要とする gralloc 使用マスク。これは、ストリーム バッファ キューに新しい gralloc バッファを割り当てる際に使用されます。
- max_buffers: HAL デバイスが同時に取得する必要があるバッファの最大数。デバイスは、この値を超えるバッファを同時に取得することはできません。
int(* assign_reprocess_stream_from_stream)(const struct Camera2_device *, uint32_t Output_stream_id, const Camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id) |
assign_reprocess_stream_from_stream:
使用する新しい入力ストリームを割り当てます。これは、既存の出力ストリームに割り当てられたバッファを使用します。つまり、HAL が出力ストリームにバッファをエンキューした後、同じバッファがこの入力再処理ストリームから渡されることがわかります。 HAL がバッファを再処理ストリームに解放した後、バッファは再利用のために出力キューに戻されます。
エラー条件:
- 再処理ストリームのベースとして不適切なサイズ/形式の出力ストリームを使用している。
- 一度に多すぎる再処理ストリームを割り当てようとしています。
入力パラメータ:
- Output_stream_id: 再処理に適したサイズと形式を持つ既存の出力ストリームの ID。
- reprocess_stream_ops: このストリームのバッファを取得および解放するための関数ポインタの構造体。基礎となるストリームは、出力ストリームが使用するのと同じグラフィックス バッファー ハンドルを使用します。
出力パラメータ:
- stream_id: このストリームを識別する符号なし整数。この値は、受信リクエストでストリームを識別するときと、ストリームを解放するときに使用されます。これらの ID には、入力ストリーム ID とは別に番号が付けられます。
HAL クライアントは、ベースとなる出力ストリームを解放する前に、常に再処理ストリームを解放する必要があります。
int(* assign_stream)(const struct Camera2_device *,uint32_t width, uint32_t height, int format, const Camera2_stream_ops_t *stream_ops,uint32_t *stream_id, uint32_t *format_actual,uint32_t *usage, uint32_t *max_buffers) |
割り当てストリーム:
出力バッファーの幅、高さ、ターゲット、および場合によってはピクセル形式によって定義された、使用する新しい出力ストリームを割り当てます。成功すると、新しいストリームの ID、gralloc 使用フラグ、最小キュー バッファ数、および場合によってはピクセル形式を返します。エラー条件:
- センサーの静的特性でサポートされているものとしてリストされていない幅/高さ/形式の組み合わせをリクエストしています
- 特定の形式タイプのストリームが多すぎる (たとえば、2 つのベイヤーの生ストリーム)。
入力パラメータ:
- width、height、format: このストリームを通じて送信されるバッファの仕様。形式は、HAL_PIXEL_FORMAT_* リストの値です。 HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED が使用されている場合、プラットフォームの gralloc モジュールは、カメラ HAL とストリームのコンシューマによって提供される使用フラグに基づいて形式を選択します。カメラ HAL は、register_stream_buffers 呼び出しで渡されたバッファを検査して、必要に応じて実装固有の形式を取得する必要があります。
- stream_ops: このストリームのバッファを取得してキューに入れるための関数ポインタの構造体。基礎となるストリームは、使用状況と max_buffers の出力に基づいて構成されます。この構造体のメソッドは、allocate_stream が返されるまで呼び出すことができません。
出力パラメータ:
- stream_id: このストリームを識別する符号なし整数。この値は、受信リクエストでストリームを識別するときと、ストリームを解放するときに使用されます。
- 使用法: 要求されたタイプのデータを生成するために HAL デバイスが必要とする gralloc 使用法マスク。これは、ストリーム バッファ キューに新しい gralloc バッファを割り当てる際に使用されます。
- max_buffers: HAL デバイスが同時にデキューする必要があるバッファの最大数。デバイスは、この値を超えるバッファを同時にデキューすることはできません。
int(*construct_default_request)(const struct Camera2_device *, int request_template, Camera_metadata_t **request) |
int(* dump)(const struct Camera2_device *, int fd) |
int(* flash_captures_in_progress)(const struct Camera2_device *) |
int(* get_in_progress_count)(const struct Camera2_device *) |
int(* get_instance_metadata)(const struct Camera2_device *, Camera_metadata **instance_metadata) |
デバイスインスタンス固有のメタデータを取得します。このメタデータはカメラ デバイスの単一インスタンスに対して一定である必要がありますが、open() 呼び出しごとに異なる場合があります。返された Camera_metadata ポインタは、デバイスの close() メソッドが呼び出されるまで有効である必要があります。
バージョン情報:
CAMERA_DEVICE_API_VERSION_2_0:
利用不可。フレームワークはこの関数ポインターにアクセスできない可能性があります。
CAMERA_DEVICE_API_VERSION_2_1:
有効。フレームワークから呼び出すことができます。
int(* get_metadata_vendor_tag_ops)(const struct Camera2_device *、vendor_tag_query_ops_t **ops) |
int(*notify_request_queue_not_empty)(const struct Camera2_device *) |
int(* register_stream_buffers)(const struct Camera2_device *, uint32_t stream_id, int num_buffers,buffer_handle_t *buffers) |
指定されたストリームのバッファーを登録します。これは、allocate_stream 呼び出しが成功した後、ストリームを参照する最初のリクエストがキューに入れられる前に呼び出されます。このメソッドは、HAL デバイスが後で使用するためにバッファをマッピングまたは準備できるようにすることを目的としています。 num_buffers は、少なくとも max_buffers (allocate_stream から) であることが保証されていますが、それより大きくなる可能性があります。バッファは使用のためにすでにロックされています。呼び出しの終了時には、すべてのバッファをキューに戻す準備ができている必要があります。ストリーム形式が HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED に設定されている場合、カメラ HAL はここで渡されたバッファを検査して、プラットフォームのプライベート ピクセル形式情報を判断する必要があります。
int(* release_reprocess_stream)(const struct Camera2_device *, uint32_t stream_id) |
int(* release_stream)(const struct Camera2_device *, uint32_t stream_id) |
int(* set_frame_queue_dst_ops)(const struct Camera2_device *, const Camera2_frame_queue_dst_ops_t *frame_dst_ops) |
int(* set_notify_callback)(const struct Camera2_device *, Camera2_notify_callback Notice_cb, void *user) |
int(* set_request_queue_src_ops)(const struct Camera2_device *, const Camera2_request_queue_src_ops_t *request_src_ops) |
int(* トリガーアクション)(const structカメラ 2_デバイス*、uint32_t トリガー ID、int32_t ext1、int32_t ext2) |
この構造体のドキュメントは次のファイルから生成されました。
- ハードウェア/libhardware/include/hardware/camera2.h