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를 사용하여 한 번 호출됩니다. 다른 자동 초점이 필요한 경우 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)
|
다음 세 함수는 모두 msg_type을 사용합니다. msg_type은 include/ui/Camera.h에 정의된 메시지의 비트 마스크로, 메시지 또는 메시지 세트를 사용 설정합니다.
camera.h
파일의
120
줄에 정의되어 있습니다.
카메라 매개변수를 검색합니다. 카메라 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
줄에 정의가 있습니다.
미리보기가 사용 설정된 경우 true를 반환합니다.
camera.h
파일의
154
строке에 정의가 있습니다.
카메라 HAL은 get_parameters를 호출할 때 자체 메모리를 사용하여 매개변수를 전달합니다. put_parameters가 NULL이 아닌 경우 이 함수를 사용하여 메모리를 카메라 HAL로 다시 반환합니다. put_parameters가 NULL이면 free()를 사용하여 메모리를 해제해야 합니다.
camera.h
FILE의
265
라인에 정의가 있습니다.
녹화가 사용 설정된 경우 true를 반환합니다.
camera.h
파일의
208
행에 정의가 있습니다.
이 객체가 소유한 하드웨어 리소스를 해제합니다. 이는 소멸자의
실행되지 않습니다.
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)
|
카메라 매개변수를 설정합니다. 매개변수가 잘못되었거나 지원되지 않는 경우 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
FILE의
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이면 카메라 HAL에 동영상 버퍼에 실제 YUV 데이터를 저장하도록 지시합니다.
|
-
반환 값
-
성공 시 OK를 반환합니다.
camera.h
파일의
186
번 줄에 정의되어 있습니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
-
hardware/libhardware/include/hardware/
camera.h
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 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)"],[],[]]