การอ้างอิงโครงสร้าง camera3_stream

การอ้างอิงโครงสร้าง camera3_stream

#include < camera3.h >

เขตข้อมูล

ภายใน stream_type
uint32_t ความกว้าง
uint32_t ความสูง
ภายใน รูปแบบ
uint32_t การใช้งาน
uint32_t max_buffers
เป็นโมฆะ * ส่วนตัว
android_dataspace_t data_space
ภายใน การหมุน
เป็นโมฆะ * สงวนไว้ [7]

คำอธิบายโดยละเอียด

กล้อง3_stream_t:

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

โครงสร้างสตรีมเป็นของเฟรมเวิร์ก แต่ตัวชี้ไปยัง camera3_stream ที่ส่งผ่านไปยัง HAL โดย configuration_streams() จะใช้ได้จนกระทั่งสิ้นสุดการเรียก configuration_streams() ครั้งแรกที่ตามมาซึ่ง ไม่ รวม camera3_stream นั้นเป็นอาร์กิวเมนต์ หรือจนกว่าจะสิ้นสุด การโทรปิด ()

สมาชิกที่ควบคุมด้วยเฟรมเวิร์ก camera3_stream ทั้งหมดจะไม่เปลี่ยนรูปเมื่อส่งผ่าน camera3_stream ไปยัง configuration_streams() HAL อาจเปลี่ยนเฉพาะพารามิเตอร์ที่ควบคุมโดย HAL ระหว่างการเรียก configuration_streams() ยกเว้นเนื้อหาของตัวชี้ส่วนตัว

หากการเรียก configuration_streams() ส่งกลับข้อผิดพลาดที่ไม่ร้ายแรง สตรีมที่ใช้งานอยู่ทั้งหมดจะยังคงใช้ได้ราวกับว่าไม่มีการเรียก configuration_streams()

อุปกรณ์ HAL ของกล้องไม่สามารถมองเห็นจุดสิ้นสุดของสตรีมได้ ใน DEVICE_API_VERSION_3_1 สิ่งนี้ได้รับการเปลี่ยนแปลงเพื่อแชร์แฟล็กการใช้งานของผู้บริโภคบนสตรีมที่กล้องเป็นผู้ผลิต (ประเภทสตรีม OUTPUT และ BIDIRECTIONAL) ดูฟิลด์การใช้งานด้านล่าง

คำจำกัดความที่บรรทัด 1523 ของไฟล์ camera3.h

เอกสารภาคสนาม

android_dataspace_t data_space

ฟิลด์ที่อธิบายเนื้อหาของบัฟเฟอร์ ขนาดรูปแบบและบัฟเฟอร์จะกำหนดเค้าโครงหน่วยความจำและโครงสร้างของบัฟเฟอร์สตรีม ในขณะที่ dataSpace จะกำหนดความหมายของข้อมูลภายในบัฟเฟอร์

สำหรับรูปแบบส่วนใหญ่ dataSpace จะกำหนดปริภูมิสีของข้อมูลรูปภาพ นอกจากนี้ สำหรับบางรูปแบบ dataSpace จะระบุว่ามีการร้องขอข้อมูลตามรูปภาพหรือเชิงลึกหรือไม่ โปรดดู system/core/include/system/graphics.h สำหรับรายละเอียดของรูปแบบและค่า dataSpace ที่ถูกต้องสำหรับแต่ละรูปแบบ

ข้อมูลเวอร์ชัน:

< CAMERA_DEVICE_API_VERSION_3_3:

ไม่ได้กำหนดไว้และไม่ควรเข้าถึง dataSpace ควรถือเป็น HAL_DATASPACE_UNKNOWN และปริภูมิสีที่เหมาะสม ฯลฯ ควรพิจารณาจากแฟล็กการใช้งานและรูปแบบ

= CAMERA_DEVICE_API_VERSION_3_3:

ตั้งค่าโดยบริการกล้องเสมอ HAL ต้องใช้ dataSpace นี้เพื่อกำหนดค่าสตรีมให้เป็นพื้นที่สีที่ถูกต้อง หรือเพื่อเลือกระหว่างเอาต์พุตสีและความลึก หากรองรับ ค่าดาต้าสเปซเป็นคำจำกัดความดั้งเดิมใน Graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

ตั้งค่าโดยบริการกล้องเสมอ HAL ต้องใช้ dataSpace นี้เพื่อกำหนดค่าสตรีมให้เป็นพื้นที่สีที่ถูกต้อง หรือเพื่อเลือกระหว่างเอาต์พุตสีและความลึก หากรองรับ ค่าของดาต้าสเปซถูกตั้งค่าโดยใช้คำจำกัดความของดาต้าสเปซ V0 ใน Graphics.h

คำจำกัดความที่บรรทัด 1648 ของไฟล์ camera3.h

รูปแบบ int

รูปแบบพิกเซลสำหรับบัฟเฟอร์ในสตรีมนี้ รูปแบบเป็นค่าจากรายการ HAL_PIXEL_FORMAT_* ใน system/core/include/system/graphics.h หรือจากส่วนหัวเฉพาะอุปกรณ์

หากใช้ HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED โมดูลแพลตฟอร์ม gralloc จะเลือกรูปแบบตามแฟล็กการใช้งานที่ได้รับจากอุปกรณ์กล้องและจุดสิ้นสุดอื่นๆ ของสตรีม

<= CAMERA_DEVICE_API_VERSION_3_1:

อุปกรณ์ HAL ของกล้องจะต้องตรวจสอบบัฟเฟอร์ที่มอบให้ในการเรียก register_stream_buffers() ครั้งต่อไปเพื่อรับรายละเอียดรูปแบบเฉพาะการใช้งาน หากจำเป็น

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() จะไม่ถูกเรียกโดยเฟรมเวิร์ก ดังนั้น HAL ควรกำหนดค่า ISP และไปป์ไลน์เซ็นเซอร์ตามขนาด แฟล็กการใช้งาน และรูปแบบสำหรับสตรีมที่กำหนดค่าเพียงอย่างเดียว

คำจำกัดความที่บรรทัด 1565 ของไฟล์ camera3.h

ความสูง uint32_t

ความสูงเป็นพิกเซลของบัฟเฟอร์ในสตรีมนี้

คำจำกัดความที่บรรทัด 1542 ของไฟล์ camera3.h

uint32_t max_buffers

จำนวนบัฟเฟอร์สูงสุดที่อุปกรณ์ HAL อาจจำเป็นต้องแยกคิวในเวลาเดียวกัน อุปกรณ์ HAL อาจไม่มีบัฟเฟอร์ระหว่างดำเนินการจากสตรีมนี้มากกว่าค่านี้

คำจำกัดความที่บรรทัด 1608 ของไฟล์ camera3.h

เป็นโมฆะ* เอกชน

ตัวจัดการข้อมูลส่วนตัว HAL สำหรับสตรีม จะไม่ถูกตรวจสอบโดยโค้ดกรอบงาน

คำจำกัดความที่บรรทัด 1614 ของไฟล์ camera3.h

เป็นโมฆะ* สงวนไว้[7]

คำจำกัดความที่บรรทัด 1677 ของไฟล์ camera3.h

การหมุนภายใน

การหมุนเอาต์พุตที่ต้องการของสตรีม ซึ่งเป็นหนึ่งในค่าของ camera3_stream_rotation_t สิ่งนี้จะต้องได้รับการตรวจสอบโดย HAL พร้อมด้วยความกว้างและความสูงของสตรีม ตัวอย่างเช่น หากการหมุนเป็น 90 องศา และความกว้างและความสูงของสตรีมคือ 720 และ 1280 ตามลำดับ บริการกล้องจะจัดหาบัฟเฟอร์ขนาด 720x1280 และ HAL ควรจับภาพขนาด 1280x720 และหมุนรูปภาพ 90 องศาทวนเข็มนาฬิกา ฟิลด์การหมุนจะไม่ดำเนินการเมื่อมีการป้อนประเภทสตรีม กล้อง HAL ต้องละเว้นฟิลด์การหมุนสำหรับสตรีมอินพุต

<= CAMERA_DEVICE_API_VERSION_3_2:

ไม่ได้กำหนดไว้และจะต้องไม่สามารถเข้าถึงได้ HAL ต้องไม่ใช้การหมุนใดๆ กับภาพที่ส่งออก

>= CAMERA_DEVICE_API_VERSION_3_3:

ตั้งค่าโดยบริการกล้องเสมอ HAL ต้องตรวจสอบฟิลด์นี้ระหว่างการกำหนดค่าสตรีมและส่งกลับ -EINVAL หาก HAL ไม่สามารถดำเนินการหมุนเวียนดังกล่าวได้ HAL ต้องรองรับ CAMERA3_STREAM_ROTATION_0 เสมอ ดังนั้นการเรียก configuration_streams() จะต้องไม่ล้มเหลวสำหรับการหมุนที่ไม่รองรับ หากฟิลด์การหมุนของสตรีมทั้งหมดคือ CAMERA3_STREAM_ROTATION_0

คำจำกัดความที่บรรทัด 1674 ของไฟล์ camera3.h

int stream_type

ประเภทของสตรีม หนึ่งในค่า camera3_stream_type_t

คำจำกัดความที่บรรทัด 1532 ของไฟล์ camera3.h

การใช้งาน uint32_t

การใช้ gralloc จะตั้งค่าสถานะสำหรับสตรีมนี้ ตามที่ HAL ต้องการ แฟล็กการใช้งานถูกกำหนดไว้ใน gralloc.h (GRALLOC_USAGE_*) หรือในส่วนหัวเฉพาะอุปกรณ์

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

ข้อมูลเวอร์ชัน:

== CAMERA_DEVICE_API_VERSION_3_0:

ไม่มีการรับประกันค่าเริ่มต้นเมื่อส่งผ่าน configuration_streams() HAL ไม่สามารถใช้ฟิลด์นี้เป็นอินพุต และต้องเขียนทับฟิลด์นี้พร้อมกับแฟล็กการใช้งาน

>= CAMERA_DEVICE_API_VERSION_3_1:

สำหรับ stream_type OUTPUT และ BIDIRECTIONAL เมื่อส่งผ่าน configuration_streams() ค่าเริ่มต้นของค่านี้คือแฟล็กการใช้งานของผู้ใช้บริการ HAL อาจใช้แฟล็กผู้บริโภคเหล่านี้เพื่อตัดสินใจกำหนดค่าสตรีม สำหรับ stream_type INPUT เมื่อส่งผ่าน configuration_streams() ค่าเริ่มต้นจะเป็น 0 สำหรับสตรีมทั้งหมดที่ส่งผ่าน configuration_streams() HAL จะต้องเขียนบนฟิลด์นี้พร้อมกับแฟล็กการใช้งาน

คำจำกัดความที่บรรทัด 1601 ของไฟล์ camera3.h

ความกว้าง uint32_t

ความกว้างเป็นพิกเซลของบัฟเฟอร์ในสตรีมนี้

คำจำกัดความที่บรรทัด 1537 ของไฟล์ camera3.h


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / กล้อง 3.h