camera_device_ops 구조체 참조

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 번 라인에 정의가 있습니다.

필드 문서

int(* auto_focus)(struct camera_device *)

자동 초점을 시작합니다. 초점이 완료되면 알림 콜백 루틴이 CAMERA_MSG_FOCUS를 사용하여 한 번 호출됩니다. 다른 자동 초점이 필요한 경우 autoFocus()가 다시 호출됩니다.

camera.h 파일의 227 행에 정의가 있습니다.

int(* cancel_auto_focus)(struct camera_device *)

자동 초점 기능을 취소합니다. 자동 초점이 아직 진행 중이면 이 함수가 자동 초점을 취소합니다. 자동 초점이 진행 중인지 여부와 관계없이 이 함수는 초점 위치를 기본값으로 반환합니다. 카메라가 자동 초점을 지원하지 않으면 아무 일도 일어나지 않습니다.

camera.h 파일의 235 строке에 정의가 있습니다.

int(* cancel_picture)(struct camera_device *)

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 строке에 정의가 있습니다.

int(* dump)(struct camera_device *, int fd)

카메라 하드웨어의 덤프 상태

camera.h 파일의 282 행에 정의되어 있습니다.

void(* enable_msg_type)(struct camera_device *, int32_t msg_type)

다음 세 함수는 모두 msg_type을 사용합니다. msg_type은 include/ui/Camera.h에 정의된 메시지의 비트 마스크로, 메시지 또는 메시지 세트를 사용 설정합니다.

camera.h 파일의 120 줄에 정의되어 있습니다.

char*(* get_parameters)(struct camera_device *)

카메라 매개변수를 검색합니다. 카메라 HAL에서 반환한 버퍼는 put_parameters가 NULL이 아닌 경우 put_parameters를 사용하여 다시 반환해야 합니다.

camera.h FILE의 258 줄에 정의되어 있습니다.

int(* msg_type_enabled)(struct camera_device *, int32_t msg_type)

메시지 또는 메시지 집합이 사용 설정되어 있는지 쿼리합니다. 이 메서드는 AND로 작동하므로 쿼리된 메시지 중 하나라도 사용 중지되어 있으면 false를 반환합니다.

camera.h 파일의 139 줄에 정의가 있습니다.

int(* preview_enabled)(struct camera_device *)

미리보기가 사용 설정된 경우 true를 반환합니다.

camera.h 파일의 154 строке에 정의가 있습니다.

void(* put_parameters)(struct camera_device *, char *)

카메라 HAL은 get_parameters를 호출할 때 자체 메모리를 사용하여 매개변수를 전달합니다. put_parameters가 NULL이 아닌 경우 이 함수를 사용하여 메모리를 카메라 HAL로 다시 반환합니다. put_parameters가 NULL이면 free()를 사용하여 메모리를 해제해야 합니다.

camera.h FILE의 265 라인에 정의가 있습니다.

int(* recording_enabled)(struct camera_device *)

녹화가 사용 설정된 경우 true를 반환합니다.

camera.h 파일의 208 행에 정의가 있습니다.

void(* release)(struct camera_device *)

이 객체가 소유한 하드웨어 리소스를 해제합니다. 이는 소멸자의 실행되지 않습니다.

camera.h FILE의 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 FILE의 219 라인에 정의가 있습니다.

int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)

카메라 드라이버에 명령어를 전송합니다.

camera.h 파일의 270 줄에 정의되어 있습니다.

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)

알림 및 데이터 콜백 설정

camera.h 파일의 105 строке에 정의

int(* set_parameters)(struct camera_device *, const char *parms)

카메라 매개변수를 설정합니다. 매개변수가 잘못되었거나 지원되지 않는 경우 BAD_VALUE를 반환합니다.

camera.h 파일의 252 번 라인에 정의가 있습니다.

int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window)

미리보기 프레임이 전송되는 ANativeWindow 설정

camera.h 파일의 101 행에 정의가 있습니다.

int(* start_preview)(struct camera_device *)

미리보기 모드를 시작합니다.

camera.h FILE의 144 라인에 정의가 있습니다.

int(* start_recording)(struct camera_device *)

녹화 모드를 시작합니다. 녹화 이미지를 사용할 수 있으면 해당 프레임과 함께 CAMERA_MSG_VIDEO_FRAME 메시지가 전송됩니다. 클라이언트가 disableMsgType(CAMERA_MSG_VIDEO_FRAME)을 호출하기 전에 카메라 HAL 클라이언트는 releaseRecordingFrame()을 통해 모든 녹화 프레임을 해제해야 합니다. 클라이언트가 disableMsgType(CAMERA_MSG_VIDEO_FRAME)을 호출한 후에는 동영상 녹화 프레임의 수명 주기를 관리하는 것이 카메라 HAL의 책임이며 클라이언트는 동영상 녹화 프레임을 수정하거나 액세스해서는 안 됩니다.

camera.h FILE의 198 라인에 정의가 있습니다.

void(* stop_preview)(struct camera_device *)

이전에 시작한 미리보기를 중지합니다.

camera.h 파일의 149 번 라인에 정의가 있습니다.

void(* stop_recording)(struct camera_device *)

이전에 시작된 녹화를 중지합니다.

camera.h 파일의 203 행에 있는 정의입니다.

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이면 카메라 HAL에 동영상 버퍼에 실제 YUV 데이터를 저장하도록 지시합니다.
반환 값
성공 시 OK를 반환합니다.

camera.h 파일의 186 번 줄에 정의되어 있습니다.

int(* take_picture)(struct camera_device *)

사진을 찍습니다.

camera.h 파일의 240 라인에 정의되어 있습니다.


이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.