camera_module 構造体リファレンス

camera_module 構造体リファレンス

#include < camera_common.h >

データ フィールド

hw_module_t   common
 
int(*  get_number_of_cameras )(void)
 
int(*  get_camera_info )(int camera_id, struct camera_info *info)
 
int(*  set_callbacks )(const camera_module_callbacks_t *callbacks)
 
void(*  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, bool enabled)
 
int(*  init )()
 
void * 予約済み [5]
 

詳細な説明

ファイル camera_common.h 646 行 の定義。

フィールドのドキュメント

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

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

0: カメラ デバイスが正常に開かれたとき。

-ENODEV: 内部エラーによりカメラデバイスを開くことができません。

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

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

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

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

ファイル camera_common.h 674 行 の定義。

int(* get_camera_info)(int camera_id, struct camera_info *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.h 727 行の定義。

int(* get_number_of_cameras)(void)

get_number_of_cameras:

カメラ モジュールからアクセスできるカメラデバイスの数を返します。カメラデバイスには 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_info.facing )が CAMERA_FACING_BACK または CAMERA_FACING_FRONT の内蔵カメラのみをカウントする必要があります。HAL は、この呼び出しの戻り値に外部カメラ( camera_info.facing == CAMERA_FACING_EXTERNAL)を含めてはなりません。フレームワークは camera_device_status_change コールバックを使用して外部カメラの数を管理します。

ファイル camera_common.h 701 行の定義。

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.h 778 行の定義。

int(* init)()

init:

このメソッドは、カメラ 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.h 909 行の定義。

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

open_legacy:

このカメラ HAL モジュールで複数のデバイス HAL API バージョンがサポートされている場合は、特定のレガシー カメラ HAL デバイスを開きます。たとえば、カメラ モジュールが同じカメラ ID の CAMERA_DEVICE_API_VERSION_1_0 デバイス API と 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 バージョンに関係なく、このカメラ ID に対してすでに開かれています(このメソッドまたは common.methods->open メソッドを使用)。

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

ファイル camera_common.h 824 行の定義。

void* reserved[5]

ファイル camera_common.h 912 行 の定義。

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.h 758 行 の定義。

int(* set_torch_mode)(const char *camera_id, bool enabled)

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: camera_id が無効です。

ファイル camera_common.h 878 行 の定義。


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