camera_module構造体リファレンス

camera_module構造体リファレンス

#include < camera_common.h >

データフィールド

hw_module_t一般
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)
空所(* 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 )()
空所 *予約済み[5]

詳細な説明

ファイルcamera_common.h646行で定義されています。

フィールドドキュメント

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

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

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

-ENODEV:内部エラーのため、カメラデバイスを開くことができません。

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

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

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

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

ファイルcamera_common.h674行で定義されています。

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.h727行で定義されています。

int(* get_number_of_cameras)(void)

get_number_of_cameras:

カメラモジュールを介してアクセス可能なカメラデバイスの数を返します。カメラデバイスには0からN-1までの番号が付けられています。ここで、Nはこの呼び出しによって返される値です。 open()のカメラデバイスの名前は、単に文字列に変換された数値です。つまり、カメラID 0の場合は「0」、カメラID1の場合は「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.faceing )を持つ組み込みカメラのみをカウントする必要があります。 HALは、この呼び出しの戻り値に外部カメラ( camera_info.faceing == 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(* 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モジュールでは提供されません。 Frameworkはこの関数を呼び出しません。

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

戻り値:

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)

open_legacy:

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

これはオプションの方法です。 Camera 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モジュールでは提供されません。 Frameworkはこの関数を呼び出しません。

CAMERA_MODULE_API_VERSION_2_3:フレームワークによって呼び出されるのに有効です。

戻り値:

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

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

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

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

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

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

ファイルcamera_common.h824行で定義されています。

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.h758行で定義されています。

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

set_torch_mode:

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

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

フレームワークが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モジュールでは提供されません。 Frameworkはこの関数を呼び出しません。

CAMERA_MODULE_API_VERSION_2_4:フレームワークによって呼び出されるのに有効です。

戻り値:

0:操作が成功した場合。

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

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

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

-EINVAL:camera_idが無効です。

ファイルcamera_common.h878行で定義されています。


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