การขนส่งบัฟเฟอร์กล้องสำหรับผู้บริโภคหลายรายสำหรับผู้ผลิตรายเดียว

คุณสมบัตินี้จะแนะนำชุดวิธีการที่ช่วยให้ไคลเอนต์กล้องสามารถเพิ่มและลบพื้นผิวเอาต์พุตแบบไดนามิกในขณะที่เซสชั่นการถ่ายภาพทำงานอยู่และการสตรีมของกล้องยังดำเนินอยู่ เอาต์พุตใหม่สามารถแมปกับสตรีม กล้องที่ใช้ร่วมกัน เฉพาะเจาะจงที่ผู้ใช้เลือก หลังจากเพิ่มพื้นผิวแล้ว ก็สามารถลบออกได้ตลอดเวลา

แนวคิดทั่วไปคือการแบ่งปันบัฟเฟอร์ที่เกี่ยวข้องกับสตรีมของกล้องเฉพาะภายในพื้นผิวเอาต์พุตหลายแบบ ตัวนับอ้างอิงภายในจะติดตามบัฟเฟอร์เมื่อพร้อมสำหรับการประมวลผลเพิ่มเติมในฝั่งผู้บริโภค เมื่อผู้บริโภคทั้งหมดทำงานของตนเสร็จสิ้น บัฟเฟอร์จะถูกแยกออกและพร้อมใช้งานสำหรับกล้อง

การแบ่งปันบัฟเฟอร์

รูปที่ 1. การแบ่งใช้บัฟเฟอร์

รูปที่ 1 แสดงให้เห็นสถานการณ์ตัวอย่างหนึ่งที่บัฟเฟอร์ที่ประมวลผลโดยสตรีมกล้อง 2 แนบและแยกออกแบบไดนามิก นับการอ้างอิง และจัดการโดยส่วนประกอบตัวแยกสตรีมภายในสตรีมเอาต์พุตที่ใช้ร่วมกันโดยเฉพาะภายในบริการกล้อง

ตัวอย่างและที่มา

การใช้งานหลักของคุณสมบัตินี้สามารถพบได้ในโมดูล Camera3StreamSplitter เอกสารเกี่ยวกับคุณสมบัตินี้สามารถพบได้ในข้อมูลอ้างอิงของนักพัฒนา:

การนำไปปฏิบัติ

ไม่จำเป็นต้องดำเนินการใดๆ ในฝั่ง Camera HAL เนื่องจากคุณลักษณะนี้ถูกนำไปใช้ในด้านเฟรมเวิร์ก

การตรวจสอบ

การใช้งานของคุณจะต้องผ่านกรณี CTS ที่ครอบคลุมคุณลักษณะนี้จากโมดูล MultiViewTest และ ไลบรารี JNI ดั้งเดิม สำหรับ API ดั้งเดิม