2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
camera_device_ops 構造体リファレンス
#include <
camera.h
>
|
int(*
|
set_preview_window
)(struct
camera_device
*, struct
preview_stream_ops
*window)
|
|
void(*
|
set_callbacks
)(struct
camera_device
*,
camera_notify_callback
notify_cb,
camera_data_callback
data_cb,
camera_data_timestamp_callback
data_cb_timestamp,
camera_request_memory
get_memory, void *user)
|
|
void(*
|
enable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
void(*
|
disable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
msg_type_enabled
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
start_preview
)(struct
camera_device
*)
|
|
void(*
|
stop_preview
)(struct
camera_device
*)
|
|
int(*
|
preview_enabled
)(struct
camera_device
*)
|
|
int(*
|
store_meta_data_in_buffers
)(struct
camera_device
*, int enable)
|
|
int(*
|
start_recording
)(struct
camera_device
*)
|
|
void(*
|
stop_recording
)(struct
camera_device
*)
|
|
int(*
|
recording_enabled
)(struct
camera_device
*)
|
|
void(*
|
release_recording_frame
)(struct
camera_device
*, const void *opaque)
|
|
int(*
|
auto_focus
)(struct
camera_device
*)
|
|
int(*
|
cancel_auto_focus
)(struct
camera_device
*)
|
|
int(*
|
take_picture
)(struct
camera_device
*)
|
|
int(*
|
cancel_picture
)(struct
camera_device
*)
|
|
int(*
|
set_parameters
)(struct
camera_device
*, const char *parms)
|
|
char *(*
|
get_parameters
)(struct
camera_device
*)
|
|
void(*
|
put_parameters
)(struct
camera_device
*, char *)
|
|
int(*
|
send_command
)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
|
void(*
|
release
)(struct
camera_device
*)
|
|
int(*
|
dump
)(struct
camera_device
*, int fd)
|
|
ファイル
camera.h
の
99 行
の定義。
自動フォーカスを開始します。フォーカスが完了すると、通知コールバック ルーティンが CAMERA_MSG_FOCUS とともに 1 回呼び出されます。別の自動フォーカスが必要な場合は、autoFocus() が再度呼び出されます。
ファイル
camera.h
の
227 行目
の定義。
自動フォーカス機能をキャンセルします。自動フォーカスがまだ進行中の場合は、この関数によってキャンセルされます。この関数は、自動フォーカスの処理中かどうかにかかわらず、フォーカス位置をデフォルトに戻します。カメラがオートフォーカスをサポートしていない場合、これは無効です。
ファイル
camera.h
の
235 行
の定義。
takePicture で開始された写真をキャンセルします。写真を撮影していないときにこのメソッドを呼び出しても、何も実行されません。
ファイル
camera.h
の
246
行の定義。
void(* disable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
メッセージまたはメッセージセットを無効にします。
disableMsgType(CAMERA_MSG_VIDEO_FRAME) の呼び出しを受け取ったカメラ HAL は、クライアントが releaseRecordingFrame() を呼び出して、disableMsgType(CAMERA_MSG_VIDEO_FRAME) の呼び出しの前後にカメラ HAL から送信された動画録画フレームを解放することを期待しないでください。カメラ HAL クライアントは、disableMsgType(CAMERA_MSG_VIDEO_FRAME) を呼び出した後に、動画録画フレームを変更またはアクセスしてはなりません。
ファイル
camera.h
の
132 行
の定義。
void(* enable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
次の 3 つの関数はすべて msg_type を受け取ります。これは、include/ui/Camera.h で定義されたメッセージのビットマスクで、メッセージを有効にします。
ファイル
camera.h
の
120
行目の定義。
カメラ パラメータを取得します。カメラ HAL から返されたバッファは、put_parameters が NULL でない場合、put_parameters を使用してカメラ HAL に返す必要があります。
ファイル
camera.h
の
258 行
の定義。
int(* msg_type_enabled)(struct
camera_device
*, int32_t msg_type)
|
メッセージまたはメッセージセットが有効かどうかをクエリします。これは AND として動作し、クエリされたメッセージのいずれかがオフになっている場合は false を返します。
ファイル
camera.h
の
139 行
の定義。
カメラ HAL は、get_parameters を呼び出すときに独自のメモリを使用してパラメータを渡します。put_parameters が NULL でない場合、この関数を使用してメモリを camera HAL に戻します。put_parameters が NULL の場合は、free() を使用してメモリを解放する必要があります。
ファイル
camera.h
の
265
行の定義。
録画が有効な場合は true を返します。
ファイル
camera.h
の 208 行目
に定義されています。
このオブジェクトが所有するハードウェア リソースを解放します。これはデストラクタで行われません。
ファイル
camera.h
の
277 行目
の定義。
void(* release_recording_frame)(struct
camera_device
*, const void *opaque)
|
CAMERA_MSG_VIDEO_FRAME によって以前に返されたレコード フレームを解放します。
カメラ HAL が disableMsgType(CAMERA_MSG_VIDEO_FRAME) の呼び出しを受け取る前に、カメラ HAL から送信された動画録画フレームを解放するのはカメラ HAL クライアントの責任です。disableMsgType(CAMERA_MSG_VIDEO_FRAME) の呼び出しを受け取った後、動画録画フレームのライフサイクルを管理するのはカメラ HAL の責任です。
ファイル
camera.h
の
219 行
の定義。
int(* send_command)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
カメラ パラメータを設定します。いずれかのパラメータが無効またはサポートされていない場合、BAD_VALUE が返されます。
ファイル
camera.h
の
252 行
の定義。
プレビュー フレームが送信される ANativeWindow を設定します。
ファイル
camera.h
の行
101
の定義。
録画モードを開始します。記録画像が利用可能になると、対応するフレームとともに CAMERA_MSG_VIDEO_FRAME メッセージが送信されます。クライアントが disableMsgType(CAMERA_MSG_VIDEO_FRAME) を呼び出す前に、カメラ HAL クライアントが releaseRecordingFrame() を介してすべてのレコード フレームを解放する必要があります。クライアントが disableMsgType(CAMERA_MSG_VIDEO_FRAME) を呼び出した後、動画録画フレームのライフサイクルを管理するのはカメラ HAL の責任であり、クライアントは動画録画フレームを変更またはアクセスしてはなりません。
ファイル
camera.h
の
198 行目
の定義。
int(* store_meta_data_in_buffers)(struct
camera_device
*, int enable)
|
カメラ HAL に、記録セッションの CAMERA_MSG_VIDEO_FRAME を介して送信される動画バッファにメタデータまたは実際の YUV データを保存するようリクエストします。呼び出されない場合、デフォルトのカメラ HAL の動作では、実際の YUV データを動画バッファに保存します。
このメソッドを有効にするには、startRecording() の前に呼び出す必要があります。
メタデータが動画バッファに保存されている場合、コンテンツを解釈し、バッファ内のメタデータを使用して実際のフレームデータを検索するのは、動画バッファの受信側に委ねられます。具体的な方法については、このメソッドの範囲外です。
一部のカメラ HAL は動画バッファへのメタデータの保存をサポートしていない場合がありますが、すべてのカメラ HAL は動画バッファへの実際の YUV データの保存をサポートする必要があります。カメラ HAL が、リクエストされたときに動画バッファへのメタデータの保存をサポートしていない場合は、INVALID_OPERATION を返す必要があります。動画サイズが大きい場合、非圧縮フレームデータの量が非常に大きくなるため、カメラ HAL が実際のフレームデータではなくメタデータを動画エンコーダに直接渡すことは非常に有用です。
-
パラメータ
-
有効にする
|
true の場合、動画バッファにメタデータを保存するようにカメラ HAL に指示します。false の場合、動画バッファに実際の YUV データを保存するようにカメラ HAL に指示します。 |
-
戻り値
-
OK(成功した場合)。
ファイル
camera.h
の
186 行
の定義。
この構造体のドキュメントは、次のファイルから生成されました。
-
hardware/libhardware/include/hardware/
camera.h
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[]]