2026년부터 트렁크 안정 개발 모델과 일치하고 생태계의 플랫폼 안정성을 보장하기 위해 2분기와 4분기에 AOSP에 소스 코드를 게시합니다. AOSP를 빌드하고 기여하려면 aosp-main 대신 android-latest-release를 사용하는 것이 좋습니다. android-latest-release 매니페스트 브랜치는 항상 AOSP에 푸시된 최신 버전을 참조합니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
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-07-27(UTC)
[null,null,["최종 업데이트: 2025-07-27(UTC)"],[],[]]