Camera3_stream 構造体のリファレンス
#include < camera3.h >
データフィールド | |
整数 | ストリームタイプ |
uint32_t | 幅 |
uint32_t | 身長 |
整数 | フォーマット |
uint32_t | 使用法 |
uint32_t | max_buffers |
空所 * | プライベート |
android_dataspace_t | データスペース |
整数 | 回転 |
空所 * | 予約済み[7] |
詳細な説明
カメラ3_ストリーム_t:
単一のカメラの入力または出力ストリームへのハンドル。ストリームは、フレームワークによってそのバッファ解像度と形式によって定義され、さらに HAL によって gralloc 使用フラグと最大インフライト バッファ数によって定義されます。
ストリーム構造はフレームワークによって所有されますが、configure_streams() によって HAL に渡されるCamera3_streamへのポインタは、そのCamera3_streamを引数として含まない後続の最初の configure_streams() 呼び出しが終了するまで、または終了するまで有効です。 close() 呼び出し。
Camera3_streamがconfigure_streams() に渡されると、フレームワークで制御されるすべてのCamera3_streamメンバーは不変になります。 HAL は、プライベート ポインタの内容を除き、configure_streams() 呼び出し中に HAL 制御のパラメータのみを変更できます。
configure_streams() 呼び出しが致命的ではないエラーを返した場合、すべてのアクティブなストリームは、configure_streams() が呼び出されていないかのように有効なままになります。
ストリームのエンドポイントはカメラ HAL デバイスには認識されません。 DEVICE_API_VERSION_3_1 では、カメラがプロデューサーであるストリーム (OUTPUT および BIDIRECTIONAL ストリーム タイプ) でコンシューマー使用フラグを共有するように変更されました。以下の使用フィールドを参照してください。
フィールドドキュメント
android_dataspace_t データスペース |
バッファの内容を説明するフィールド。フォーマットとバッファーの次元はストリーム バッファーのメモリ レイアウトと構造を定義し、dataSpace はバッファー内のデータの意味を定義します。
ほとんどの形式では、dataSpace によって画像データの色空間が定義されます。さらに、一部の形式では、dataSpace は画像ベースのデータが要求されるか深度ベースのデータが要求されるかを示します。形式と各形式の有効な dataSpace 値の詳細については、system/core/include/system/graphics.h を参照してください。
バージョン情報:
< CAMERA_DEVICE_API_VERSION_3_3:
定義されていないため、アクセスしないでください。 dataSpace は HAL_DATASPACE_UNKNOWN とし、使用フラグやフォーマットから適切なカラースペースなどを決定する必要があります。
= CAMERA_DEVICE_API_VERSION_3_3:
常にカメラサービスによって設定されます。 HAL は、ストリームを正しい色空間に設定するか、サポートされている場合は色出力と深度出力の間で選択するために、この dataSpace を使用する必要があります。データスペースの値は、graphics.h 内の従来の定義です。
>= CAMERA_DEVICE_API_VERSION_3_4:
常にカメラサービスによって設定されます。 HAL は、ストリームを正しい色空間に設定するか、サポートされている場合は色出力と深度出力の間で選択するために、この dataSpace を使用する必要があります。データスペースの値は、graphics.h の V0 データスペース定義を使用して設定されます。
int形式 |
このストリーム内のバッファのピクセル形式。形式は、system/core/include/system/graphics.h の HAL_PIXEL_FORMAT_* リストの値、またはデバイス固有のヘッダーの値です。
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED が使用されている場合、プラットフォームの gralloc モジュールは、カメラ デバイスおよびストリームの他のエンドポイントによって提供される使用フラグに基づいて形式を選択します。
<= CAMERA_DEVICE_API_VERSION_3_1:
カメラ HAL デバイスは、必要に応じて、後続の register_stream_buffers() 呼び出しで渡されたバッファを検査して、実装固有の形式の詳細を取得する必要があります。
>= CAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers() はフレームワークによって呼び出されないため、HAL は、構成されたストリームのサイズ、使用フラグ、および形式にのみ基づいて ISP とセンサーのパイプラインを構成する必要があります。
uint32_t max_buffers |
整数回転 |
ストリームの必要な出力回転。camera3_stream_rotation_t 値の 1 つ。これは、ストリームの幅と高さとともに HAL によって検査される必要があります。たとえば、回転が 90 度で、ストリームの幅と高さがそれぞれ 720 と 1280 の場合、カメラ サービスはサイズ 720x1280 のバッファを提供し、HAL は 1280x720 の画像をキャプチャし、その画像を反時計回りに 90 度回転する必要があります。ストリーム タイプが入力された場合、回転フィールドは何も行われません。カメラ HAL は、入力ストリームの回転フィールドを無視する必要があります。
<= CAMERA_DEVICE_API_VERSION_3_2:
定義されていないため、アクセスしてはなりません。 HAL は出力イメージに回転を適用してはなりません。
>= CAMERA_DEVICE_API_VERSION_3_3:
常にカメラサービスによって設定されます。 HAL はストリーム設定中にこのフィールドを検査する必要があり、HAL がそのようなローテーションを実行できない場合は -EINVAL を返します。 HAL は常に CAMERA3_STREAM_ROTATION_0 をサポートする必要があるため、すべてのストリームの回転フィールドが CAMERA3_STREAM_ROTATION_0 である場合、サポートされていない回転に対して configure_streams() 呼び出しが失敗してはなりません。
uint32_t の使用法 |
HAL で必要な、このストリームの gralloc 使用フラグ。使用フラグは、 gralloc.h (GRALLOC_USAGE_*) またはデバイス固有のヘッダーで定義されます。
出力ストリームの場合、これらは HAL のプロデューサー使用フラグです。入力ストリームの場合、これらは HAL のコンシューマ使用フラグです。プロデューサとコンシューマからの使用フラグは結合されて、各ストリームに gralloc バッファを割り当てるためにプラットフォームの gralloc HAL モジュールに渡されます。
バージョン情報:
== CAMERA_DEVICE_API_VERSION_3_0:
configure_streams() 経由で渡される場合、初期値は保証されません。 HAL はこのフィールドを入力として使用できないため、このフィールドを使用フラグで上書きする必要があります。
>= CAMERA_DEVICE_API_VERSION_3_1:
stream_type OUTPUT および BIDIRECTIONAL の場合、configure_streams() 経由で渡される場合、この初期値はコンシューマの使用フラグです。 HAL は、これらのコンシューマ フラグを使用してストリーム構成を決定できます。 stream_type INPUT の場合、configure_streams() 経由で渡される場合、この初期値は 0 です。configure_streams() 経由で渡されるすべてのストリームについて、HAL はこのフィールドを使用フラグで上書きする必要があります。
この構造体のドキュメントは次のファイルから生成されました。