2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
단일 제작자, 다중 소비자 카메라 버퍼 전송
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 기능에는 캡처 세션이 활성화되고 카메라 스트리밍이 진행되는 동안 카메라 클라이언트가 출력 노출 영역을 동적으로 추가 및 삭제할 수 있도록 하는 메서드가 도입되었습니다. 새로운 출력은 사용자가 선택한 특정 공유 카메라 스트림에 매핑될 수 있습니다. 노출 영역은 추가한 후에 언제든지 삭제할 수 있습니다.
일반적인 개념은 특정 카메라 스트림과 연결된 버퍼를 여러 출력 노출 영역에서 공유하는 것입니다. 내부 참조 카운터는 소비자 측에서 추가 처리를 위해 준비되는 과정 중에 있는 버퍼를 추적합니다.
모든 소비자가 각각의 작업을 완료하면 버퍼는 대기열에서 제외되고 카메라에서 사용 가능합니다.
그림 1. 버퍼 공유
그림 1은 카메라 스트림 2에 의해 처리된 버퍼가 카메라 서비스에 있는 전용 공유 출력 스트림 내부의 스트림 분배기 구성요소에 의해 동적으로 연결되고, 분리되고, 참조 계수되고, 관리되는 시나리오의 한 예를 보여줍니다.
예시 및 소스
이 기능의 핵심 구현은 Camera3StreamSplitter
모듈에서 확인할 수 있습니다. 이 기능에 관한 문서는 개발자 참조에서 확인할 수 있습니다.
구현
이 기능은 프레임워크 측에서 구현되므로 카메라 HAL 측에서는 구현할 필요가 없습니다.
유효성 검사
구현은 MultiViewTest 모듈 및 네이티브 API용 네이티브 JNI 라이브러리에서 이 기능을 지원하는 CTS 사례를 전달해야 합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 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)"],[],[]]