Camera_module 構造体リファレンス

Camera_module 構造体リファレンス

#include < camera_common.h >

データフィールド

hw_module_t一般
int(* get_number_of_cameras )(void)
int(* get_camera_info )(int カメラ ID, structカメラ情報 *info)
int(* set_callbacks )(const Camera_module_callbacks_t *callbacks)
空所(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
int(* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
int(* set_torch_mode )(const char *camera_id、ブール値が有効)
int(*初期化)()
空所 *予約済み[5]

詳細な説明

ファイルCamera_common.h646行目の定義。

フィールドドキュメント

カメラモジュールの一般的なメソッド。この構造体のユーザーは、 hw_module_tCamera_moduleを参照することがわかっているコンテキストで hw_module_t をCamera_moduleポインタにキャストするため、これはCamera_moduleの最初のメンバーである必要があります

Camera_moduleの common.methods->open の戻り値は次のとおりです。

0: カメラデバイスが正常にオープンしたとき。

-ENODEV: 内部エラーのため、カメラ デバイスを開けません。

-EINVAL: 入力引数が無効です。つまり、ID が無効であるか、モジュールが無効です。

-EBUSY: カメラ デバイスは、開かれたデバイスの HAL バージョンに関係なく、(このメソッドまたは open_legacy を使用して) このカメラ ID に対してすでに開かれています。

-EUSERS: 同時に開くことができる最大数のカメラ デバイスが、このメソッドまたは open_legacy メソッドによってすでに開かれています。

common.methods->open からのその他の戻り値はすべて -ENODEV として扱われます。

ファイルCamera_common.h674行目の定義。

int(* get_camera_info)(int カメラ ID, structカメラ情報 *info)

get_camera_info:

指定されたカメラ デバイスの静的カメラ情報を返します。この情報はカメラ デバイスでは変更されない可能性があります。

戻り値:

0: 操作が成功したとき

-ENODEV: 内部エラーのため、情報を提供できません。

-EINVAL: 入力引数が無効です。つまり、ID が無効であるか、モジュールが無効です。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_2_4 以降:

カメラが切断されると、そのカメラ ID は無効になります。この無効なカメラ ID でこのメソッドを呼び出すと、-EINVAL および NULL のカメラ静的メタデータ ( Camera_info.static_camera_characteristics ) が取得されます。

ファイルCamera_common.h727行目の定義。

int(* カメラの番号を取得)(void)

カメラの数を取得:

カメラ モジュールを通じてアクセスできるカメラ デバイスの数を返します。カメラ デバイスには 0 から N-1 までの番号が付けられます。N はこの呼び出しによって返される値です。 open() のカメラ デバイスの名前は、単に数値を文字列に変換したものです。つまり、カメラ ID 0 の場合は「0」、カメラ ID 1 の場合は「1」になります。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_2_3 以下:

ここでの値は静的である必要があり、このメソッドの最初の呼び出し後に変更することはできません。

CAMERA_MODULE_API_VERSION_2_4 以降:

ここの値は静的である必要があり、CAMERA_FACING_BACK または CAMERA_FACING_FRONT のカメラ向きの値 ( camera_info.facing ) を持つ内蔵カメラのみをカウントする必要があります。 HAL は、この呼び出しの戻り値に外部カメラ ( camera_info.facing == CAMERA_FACING_EXTERNAL) を含めてはなりません。フレームワークは、camera_device_status_change コールバックを使用して外部カメラの数を管理します。

ファイルCamera_common.h701行目の定義。

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

ベンダー拡張メタデータ タグ情報をクエリするためのメソッドを取得します。 HAL は、ベンダー タグの操作メソッドをすべて入力するか、ベンダー タグが定義されていない場合は操作を変更しないままにしておく必要があります。

ここで使用されるvendor_tag_ops構造体はsystem/media/camera/include/system/vendor_tags.hで定義されています。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: HAL モジュールでは提供されません。フレームワークはこの関数を呼び出すことができない場合があります。

CAMERA_MODULE_API_VERSION_2_2: フレームワークによる呼び出しが有効です。

ファイルCamera_common.h778行目の定義。

int(*初期化)()

初期化:

このメソッドは、カメラ HAL ライブラリが正常にロードされた直後、他のメソッドが呼び出される前にカメラ サービスによって呼び出されます。初期化が必要ない場合は、HAL モジュールによって NULL のままにすることができます。

HAL 実装で初期化やその他の 1 回限りの操作を実行するために使用できます。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL モジュールでは提供されません。フレームワークはこの関数を呼び出しません。

CAMERA_MODULE_API_VERSION_2_4: NULL でない場合、HAL モジュールがロードされた後、他の HAL モジュール メソッドが呼び出される前に、フレームワークによって常に 1 回呼び出されます。

戻り値:

0: 操作が成功したとき。

-ENODEV: 内部エラーのため初期化を完了できません。 HAL は非機能状態にあると想定する必要があります。

ファイルCamera_common.h909行目の定義。

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

オープンレガシー:

このカメラ HAL モジュールで複数のデバイス HAL API バージョンがサポートされている場合は、特定のレガシー カメラ HAL デバイスを開きます。たとえば、カメラ モジュールが同じカメラ ID の CAMERA_DEVICE_API_VERSION_1_0 と CAMERA_DEVICE_API_VERSION_3_2 の両方のデバイス API をサポートしている場合、フレームワークはこの関数を呼び出してカメラ デバイスを CAMERA_DEVICE_API_VERSION_1_0 デバイスとして開くことができます。

これはオプションの方法です。カメラ HAL モジュールは、デバイスごとに複数のデバイス HAL バージョンをサポートする必要はなく、そのようなモジュールは、このメソッドへのすべての呼び出しに対して -ENOSYS を返すことができます。サポートされていないすべての古い HAL デバイス API バージョンでは、-EOPNOTSUPP が返される場合があります。上記のケースが発生した場合、代わりに通常の open() メソッド (common.methods->open) がフレームワークによって使用されます。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: HAL モジュールでは提供されません。フレームワークはこの関数を呼び出しません。

CAMERA_MODULE_API_VERSION_2_3: フレームワークによる呼び出しが有効です。

戻り値:

0: カメラデバイスが正常にオープンしたとき。

-ENOSYS このメソッドはサポートされていません。

-EOPNOTSUPP: 要求された HAL バージョンは、このメソッドではサポートされていません。

-EINVAL: 入力引数が無効です。つまり、ID が無効であるか、モジュールが無効です。

-EBUSY: カメラ デバイスは、開かれたデバイスの HAL バージョンに関係なく、(このメソッドまたは common.methods->open メソッドを使用して) このカメラ ID に対してすでに開かれています。

-EUSERS: 同時に開くことができるカメラ デバイスの最大数が、このメソッドまたは common.methods->open メソッドによってすでに開かれています。

ファイルCamera_common.h824行目の定義。

void* 予約済み[5]

ファイルCamera_common.h912行目の定義。

int(* set_callbacks)(const Camera_module_callbacks_t *callbacks)

set_callbacks:

非同期カメラ モジュール イベントをフレームワークに通知するために、HAL モジュールへのコールバック関数ポインターを提供します。フレームワークは、最初のカメラ HAL モジュールのロード後、 get_number_of_cameras()メソッドが初めて呼び出された後、およびモジュールへの他の呼び出しの前に、この関数を 1 回呼び出します。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_1_0、CAMERA_MODULE_API_VERSION_2_0:

HAL モジュールでは提供されません。フレームワークはこの関数を呼び出すことができない場合があります。

CAMERA_MODULE_API_VERSION_2_1:

フレームワークから呼び出すことができます。

戻り値:

0: 操作が成功したとき

-ENODEV: 内部エラーのため操作を完了できません。

-EINVAL: 入力引数が無効です。つまり、コールバックが null です。

ファイルCamera_common.h758行目の定義。

int(* set_torch_mode)(const char *camera_id、ブール値が有効)

set_torch_mode:

特定のカメラ ID に関連付けられたフラッシュ ユニットのトーチ モードをオンまたはオフにします。操作が成功した場合、HAL は新しい状態でCamera_module_callbacks.torch_mode_status_change()を呼び出して、フレームワークのトーチ状態を通知する必要があります。

カメラ デバイスはフラッシュ ユニットにアクセスする優先順位が高くなります。カメラ デバイスを開くために open() が呼び出されるなど、リソースの競合がある場合、HAL モジュールは、トーチ モードがオフになり、トーチ モードの状態が TORCH_MODE_STATUS_NOT_AVAILABLE になったことを、 camera_module_callbacks.torch_mode_status_change()を通じてフレームワークに通知する必要があります。トーチ モードをオンにするリソースが再び利用可能になったら、HAL モジュールはset_torch_mode()を呼び出すために、トーチ モードの状態が TORCH_MODE_STATUS_AVAILABLE_OFF になったことを、 camera_module_callbacks.torch_mode_status_change()を通じてフレームワークに通知する必要があります。

フレームワークがset_torch_mode()を呼び出してフラッシュ ユニットのトーチ モードをオンにするとき、HAL が複数のトーチ モードを同時にオンに維持できない場合、HAL は前のset_torch_mode()呼び出しによってオンになったトーチ モードをオフにし、フレームワークに通知する必要があります。そのフラッシュユニットのトーチモード状態がTORCH_MODE_STATUS_AVAILABLE_OFFになったことを示します。

バージョン情報 (camera_module_t.common.module_api_version に基づく):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL モジュールでは提供されません。フレームワークはこの関数を呼び出しません。

CAMERA_MODULE_API_VERSION_2_4: フレームワークによる呼び出しが有効です。

戻り値:

0: 操作が成功したとき。

-ENOSYS: カメラ デバイスはこの操作をサポートしていません。 android.flash.info.available が false の場合にのみ返されます。

-EBUSY: カメラデバイスはすでに使用されています。

-EUSERS: トーチ モードをオンにするために必要なリソースが利用できません。これは通常、他のカメラ デバイスがフラッシュ ユニットの使用を不可能にするリソースを保持しているためです。

-EINVAL: カメラ ID が無効です。

ファイルCamera_common.h878行目の定義。


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