Referensi Struktur camera_device_ops
#include < camera.h >
Bidang Data | |
int(* | set_preview_window )(struct camera_device *, struct preview_stream_ops *window) |
ruang kosong(* | 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) |
ruang kosong(* | enable_msg_type )(struct camera_device *, int32_t msg_type) |
ruang kosong(* | 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 *) |
ruang kosong(* | stop_preview )(struct camera_device *) |
int(* | preview_enabled )(struct camera_device *) |
int(* | store_meta_data_in_buffers )(struct camera_device *, int aktifkan) |
int(* | start_recording )(struct camera_device *) |
ruang kosong(* | stop_recording )(struct camera_device *) |
int(* | recording_enabled )(struct camera_device *) |
ruang kosong(* | release_recording_frame )(struct camera_device *, const void *opaque) |
int(* | auto_focus )(struktur camera_device *) |
int(* | cancel_auto_focus )(struct camera_device *) |
int(* | take_picture )(struktur camera_device *) |
int(* | cancel_picture )(struct camera_device *) |
int(* | set_parameters )(struct camera_device *, const char *parms) |
karakter *(* | get_parameters )(struct camera_device *) |
ruang kosong(* | put_parameters )(struct camera_device *, char *) |
int(* | send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
ruang kosong(* | rilis )(struct camera_device *) |
int(* | dump )(struct camera_device *, int fd) |
Detil Deskripsi
Dokumentasi Lapangan
int(* auto_focus)(struct camera_device *) |
int(* cancel_auto_focus)(struct camera_device *) |
Membatalkan fungsi fokus otomatis. Jika fokus otomatis masih berlangsung, fungsi ini akan membatalkannya. Apakah fokus otomatis sedang berlangsung atau tidak, fungsi ini akan mengembalikan posisi fokus ke default. Jika kamera tidak mendukung fokus otomatis, ini adalah larangan.
int(* cancel_picture)(struct camera_device *) |
void(* disable_msg_type)(struct camera_device *, int32_t msg_type) |
Nonaktifkan pesan, atau sekumpulan pesan.
Setelah menerima panggilan ke disableMsgType(CAMERA_MSG_VIDEO_FRAME), kamera HAL tidak boleh bergantung pada kliennya untuk memanggil releaseRecordingFrame() untuk melepaskan bingkai perekaman video yang dikirim oleh HAL kamera sebelum dan setelah panggilan disableMsgType(CAMERA_MSG_VIDEO_FRAME). Klien kamera HAL tidak boleh mengubah/mengakses bingkai perekaman video apa pun setelah memanggil disableMsgType(CAMERA_MSG_VIDEO_FRAME).
int(* dump)(struct camera_device *, int fd) |
void(* enable_msg_type)(struct camera_device *, int32_t msg_type) |
char*(* get_parameters)(struct camera_device *) |
int(* msg_type_enabled)(struct camera_device *, int32_t msg_type) |
int(* preview_enabled)(struct camera_device *) |
void(* put_parameters)(struct camera_device *, char *) |
Kamera HAL menggunakan memorinya sendiri untuk meneruskan parameter saat kita memanggil get_parameters. Gunakan fungsi ini untuk mengembalikan memori ke HAL kamera, jika put_parameters bukan NULL. Jika put_parameters adalah NULL, maka Anda harus menggunakan free() untuk melepaskan memori.
int(* recording_enabled)(struct camera_device *) |
void(* release)(struct camera_device *) |
void(* release_recording_frame)(struct camera_device *, const void *opaque) |
Lepaskan bingkai rekaman yang sebelumnya dikembalikan oleh CAMERA_MSG_VIDEO_FRAME.
Klien kamera HAL bertanggung jawab untuk melepaskan bingkai rekaman video yang dikirim oleh HAL kamera sebelum HAL kamera menerima panggilan ke disableMsgType(CAMERA_MSG_VIDEO_FRAME). Setelah menerima panggilan ke disableMsgType(CAMERA_MSG_VIDEO_FRAME), adalah tanggung jawab HAL kamera untuk mengelola siklus hidup bingkai perekaman video.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
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) |
int(* set_parameters)(struct camera_device *, const char *parms) |
int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window) |
int(* start_preview)(struct camera_device *) |
int(* start_recording)(struct camera_device *) |
Mulai mode perekaman. Saat gambar rekaman tersedia, pesan CAMERA_MSG_VIDEO_FRAME dikirim dengan bingkai yang sesuai. Setiap bingkai rekaman harus dilepaskan oleh klien HAL kamera melalui releaseRecordingFrame() sebelum klien memanggil disableMsgType(CAMERA_MSG_VIDEO_FRAME). Setelah klien memanggil disableMsgType(CAMERA_MSG_VIDEO_FRAME), adalah tanggung jawab HAL kamera untuk mengelola siklus hidup bingkai perekaman video, dan klien tidak boleh mengubah/mengakses bingkai perekaman video apa pun.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
int(* store_meta_data_in_buffers)(struct camera_device *, int aktifkan) |
Minta kamera HAL untuk menyimpan data meta atau data YUV nyata dalam buffer video yang dikirim melalui CAMERA_MSG_VIDEO_FRAME untuk sesi perekaman. Jika tidak dipanggil, perilaku HAL kamera default adalah menyimpan data YUV nyata dalam buffer video.
Metode ini harus dipanggil sebelum startRecording() agar efektif.
Jika data meta disimpan di buffer video, terserah kepada penerima buffer video untuk menafsirkan konten dan untuk menemukan data bingkai yang sebenarnya dengan bantuan data meta di buffer. Bagaimana hal ini dilakukan berada di luar cakupan metode ini.
Beberapa HAL kamera mungkin tidak mendukung penyimpanan data meta di buffer video, tetapi semua HAL kamera harus mendukung penyimpanan data YUV nyata di buffer video. Jika kamera HAL tidak mendukung penyimpanan data meta dalam buffer video saat diminta untuk melakukannya, INVALID_OPERATION harus dikembalikan. Hal ini sangat berguna untuk kamera HAL untuk melewatkan data meta daripada data bingkai yang sebenarnya langsung ke encoder video, karena jumlah data bingkai yang tidak terkompresi bisa sangat besar jika ukuran video besar.
- Parameter
memungkinkan jika benar untuk menginstruksikan kamera HAL untuk menyimpan data meta dalam buffer video; false untuk menginstruksikan kamera HAL untuk menyimpan data YUV nyata dalam buffer video.
- Kembali
- Oke sukses.
int(* take_picture)(struct camera_device *) |
Dokumentasi untuk struct ini dibuat dari file berikut:
- hardware/libhardware/include/hardware/ camera.h