Camera_device_ops 구조체 참조

Camera_device_ops 구조체 참조

#include < camera.h >

데이터 필드

정수(* set_preview_window )(struct Camera_device *, struct Preview_stream_ops *window)
무효의(* set_callbacks )(구조 카메라_ 장치 *, 카메라_notify_callback 통지_cb, 카메라_데이터_콜백 데이터_cb, 카메라_데이터 _타임스탬프_콜백 데이터_cb_타임스탬프, 카메라_request_memory get_memory, void *user)
무효의(* 활성화_msg_type )(struct Camera_device *, int32_t msg_type)
무효의(* 비활성화_msg_type )(struct Camera_device *, int32_t msg_type)
정수(* msg_type_enabled )(struct Camera_device *, int32_t msg_type)
정수(* start_preview )(구조 카메라_장치 *)
무효의(* stop_preview )(구조 카메라_장치 *)
정수(* Preview_enabled )(구조 카메라_장치 *)
정수(* store_meta_data_in_buffers )(struct Camera_device *, int 활성화)
정수(* start_recording )(struct Camera_device *)
무효의(* stop_recording )(구조 카메라_장치 *)
정수(* Recording_enabled )(구조 카메라_장치 *)
무효의(* release_recording_frame )(struct Camera_device *, const void *opaque)
정수(* auto_focus )(구조 카메라_장치 *)
정수(* cancel_auto_focus )(구조 카메라_장치 *)
정수(* take_picture )(구조 카메라_장치 *)
정수(* cancel_picture )(구조 카메라_장치 *)
정수(* set_parameters )(struct Camera_device *, const char *parms)
문자 *(* get_parameters )(구조 카메라_장치 *)
무효의(* put_parameters )(struct Camera_device *, char *)
정수(* send_command )(struct Camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
무효의(* 릴리스 )(구조 카메라_장치 *)
정수(* 덤프 )(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(* 비활성화_msg_type)(struct Camera_device *, int32_t msg_type)

메시지 또는 메시지 세트를 비활성화합니다.

비활성화MsgType(CAMERA_MSG_VIDEO_FRAME)에 대한 호출을 수신하면 카메라 HAL은 클라이언트에서 releaseRecordingFrame()을 호출하여 비활성화MsgType(CAMERA_MSG_VIDEO_FRAME) 호출 전후에 카메라 HAL에서 전송한 동영상 녹화 프레임을 해제해서는 안 됩니다. 카메라 HAL 클라이언트는 비활성화MsgType(CAMERA_MSG_VIDEO_FRAME)을 호출한 후 동영상 녹화 프레임을 수정하거나 액세스하면 안 됩니다.

Camera.h 파일의 132 번째 줄에 정의되어 있습니다.

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

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

Camera.h 파일의 282 번째 줄에 정의되어 있습니다.

void(* 활성화_msg_type)(struct Camera_device *, int32_t msg_type)

다음 세 가지 함수는 모두 include/ui/Camera.h에 정의된 메시지의 비트마스크인 msg_type을 사용합니다. 메시지 또는 메시지 집합을 활성화합니다.

Camera.h 파일의 120 번째 줄에 정의되어 있습니다.

char*(* get_parameters)(struct Camera_device *)

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

Camera.h 파일의 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 파일의 265 번째 줄에 정의되어 있습니다.

int(* Recording_enabled)(struct Camera_device *)

녹음이 활성화된 경우 true를 반환합니다.

Camera.h 파일의 208 번째 줄에 정의되어 있습니다.

무효(* 릴리스)(구조 카메라_장치 *)

이 개체가 소유한 하드웨어 리소스를 해제합니다. 소멸자에서는 이 작업이 수행되지 않습니다 .

Camera.h 파일의 277 번째 줄에 정의되어 있습니다.

void(* release_recording_frame)(struct Camera_device *, const void *opaque)

CAMERA_MSG_VIDEO_FRAME에서 이전에 반환한 기록 프레임을 해제합니다.

카메라 HAL이 비활성화MsgType(CAMERA_MSG_VIDEO_FRAME)에 대한 호출을 수신하기 전에 카메라 HAL에서 전송한 동영상 녹화 프레임을 해제하는 것은 카메라 HAL 클라이언트의 책임입니다. 비활성화MsgType(CAMERA_MSG_VIDEO_FRAME)에 대한 호출을 수신한 후 동영상 녹화 프레임의 수명 주기를 관리하는 것은 카메라 HAL의 책임입니다.

Camera.h 파일의 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 inform_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 파일의 144 번째 줄에 정의되어 있습니다.

int(* start_recording)(struct Camera_device *)

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

Camera.h 파일의 198 번째 줄에 정의되어 있습니다.

void(* stop_preview)(구조 카메라_장치 *)

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

Camera.h 파일의 149 번째 줄에 정의되어 있습니다.

void(* stop_recording)(struct Camera_device *)

이전에 시작한 녹음을 중지합니다.

Camera.h 파일의 203 번째 줄에 정의되어 있습니다.

int(* store_meta_data_in_buffers)(struct Camera_device *, int 활성화)

녹화 세션을 위해 CAMERA_MSG_VIDEO_FRAME을 통해 전송된 비디오 버퍼에 메타데이터 또는 실제 YUV 데이터를 저장하도록 카메라 HAL에 요청합니다. 호출되지 않으면 기본 카메라 HAL 동작은 실제 YUV 데이터를 비디오 버퍼에 저장하는 것입니다.

이 메소드가 효과적이려면 startRecording() 전에 호출되어야 합니다.

메타 데이터가 비디오 버퍼에 저장된 경우 내용을 해석하고 버퍼의 메타 데이터를 사용하여 실제 프레임 데이터를 찾는 것은 비디오 버퍼의 수신자에게 달려 있습니다. 이를 수행하는 방법은 이 메서드의 범위를 벗어납니다.

일부 카메라 HAL은 비디오 버퍼에 메타데이터 저장을 지원하지 않을 수 있지만 모든 카메라 HAL은 비디오 버퍼에 실제 YUV 데이터 저장을 지원해야 합니다. 카메라 HAL이 요청 시 비디오 버퍼에 메타데이터 저장을 지원하지 않는 경우 INVALID_OPERATION이 반환되어야 합니다. 비디오 크기가 클 경우 압축되지 않은 프레임 데이터의 양이 매우 커질 수 있으므로 카메라 HAL이 실제 프레임 데이터가 아닌 메타데이터를 비디오 인코더에 직접 전달하는 것이 매우 유용합니다.

매개변수
~할 수 있게 하다 true인 경우 카메라 HAL에 비디오 버퍼에 메타데이터를 저장하도록 지시하고, 그렇지 않으면 false입니다. 카메라 HAL에 실제 YUV 데이터를 비디오 버퍼에 저장하도록 지시하려면 false입니다.
보고
성공했습니다.

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

int(* take_picture)(struct Camera_device *)

사진을 찍다.

Camera.h 파일의 240 번째 줄에 정의되어 있습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
  • hardware/libhardware/include/hardware/ camera.h