tham chiếu cấu trúc camera_info

tham chiếu cấu trúc camera_info

#include < camera_common.h >

Trường dữ liệu

int đối mặt
int định hướng
uint32_t phiên bản thiết bị
const camera_metadata_t * tĩnh_máy ảnh_đặc điểm
int tài nguyên_chi phí
char ** xung đột_thiết bị
kích thước_t xung đột_devices_length

miêu tả cụ thể

Định nghĩa tại dòng 161 của file camera_common.h .

Tài liệu hiện trường

char** xung đột_devices

Một dãy ID thiết bị máy ảnh được biểu thị dưới dạng chuỗi kết thúc bằng NULL cho biết các thiết bị khác không thể mở đồng thời khi thiết bị máy ảnh này đang được sử dụng.

Trường này nhằm mục đích sử dụng để chỉ ra rằng thiết bị camera này là sự kết hợp của một số thiết bị camera khác hoặc có phần phụ thuộc phần cứng cấm sử dụng đồng thời. Nếu không có phần phụ thuộc nào, giá trị NULL có thể được trả về trong trường này để biểu thị điều này.

Dịch vụ camera sẽ không bao giờ mở đồng thời bất kỳ thiết bị nào trong danh sách này khi thiết bị camera này đang mở.

Các chuỗi được trỏ đến trong trường này sẽ không được dịch vụ camera dọn sạch và phải được giữ nguyên trong khi thiết bị này được cắm vào.

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 trở xuống:

Không hợp lệ. Có thể được coi là NULL. Không đọc lĩnh vực này.

CAMERA_MODULE_API_VERSION_2_4 trở lên:

Luôn luôn hợp lệ.

Định nghĩa tại dòng 404 của file camera_common.h .

size_t xung đột_devices_length

Độ dài của mảng được cung cấp trong trường xung đột_devices.

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 trở xuống:

Không hợp lệ. Có thể giả định là 0. Không đọc trường này.

CAMERA_MODULE_API_VERSION_2_4 trở lên:

Luôn luôn hợp lệ.

Định nghĩa tại dòng 419 của file camera_common.h .

uint32_t device_version

Giá trị của camera_device_t.common.version.

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0:

Không hợp lệ. Có thể giả định là CAMERA_DEVICE_API_VERSION_1_0. Không đọc lĩnh vực này.

CAMERA_MODULE_API_VERSION_2_0 trở lên:

Luôn hợp lệ

Định nghĩa tại dòng 219 của file camera_common.h .

int đối mặt

Hướng mà camera hướng tới. Xem system/core/include/system/Camera.h để biết các định nghĩa về camera.

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 trở xuống:

Nó phải là CAMERA_FACING_BACK hoặc CAMERA_FACING_FRONT.

CAMERA_MODULE_API_VERSION_2_4 trở lên:

Nó phải là CAMERA_FACING_BACK, CAMERA_FACING_FRONT hoặc CAMERA_FACING_EXTERNAL.

Định nghĩa tại dòng 177 của file camera_common.h .

định hướng int

Hướng của hình ảnh camera. Giá trị là góc mà hình ảnh camera cần được xoay theo chiều kim đồng hồ để nó hiển thị chính xác trên màn hình theo hướng tự nhiên. Nó phải là 0, 90, 180 hoặc 270.

Ví dụ: giả sử một thiết bị có màn hình cao tự nhiên. Cảm biến camera mặt sau được gắn ở chế độ nằm ngang. Bạn đang nhìn vào màn hình. Nếu mặt trên của cảm biến máy ảnh được căn chỉnh với cạnh phải của màn hình theo hướng tự nhiên thì giá trị sẽ là 90. Nếu mặt trên của cảm biến máy ảnh mặt trước được căn chỉnh với bên phải màn hình thì giá trị sẽ là 270.

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 trở xuống:

Hợp lệ trong tất cả các phiên bản camera_module .

CAMERA_MODULE_API_VERSION_2_4 trở lên:

Hợp lệ nếu hướng camera là CAMERA_FACING_BACK hoặc CAMERA_FACING_FRONT, không hợp lệ nếu hướng camera là CAMERA_FACING_EXTERNAL.

Định nghĩa tại dòng 202 của file camera_common.h .

int tài nguyên_chi phí

Tổng "chi phí" tài nguyên của việc sử dụng máy ảnh này, được biểu thị dưới dạng giá trị số nguyên trong phạm vi [0, 100] trong đó 100 biểu thị tổng mức sử dụng tài nguyên được chia sẻ vốn là điểm nghẽn hạn chế của hệ thống con máy ảnh. Đây có thể là một ước tính rất sơ bộ và được dùng làm gợi ý cho dịch vụ camera để xác định thời điểm không cho phép nhiều ứng dụng mở đồng thời các camera khác nhau được dịch vụ camera quảng cáo.

Dịch vụ camera phải có khả năng mở và sử dụng đồng thời bất kỳ tổ hợp thiết bị camera nào được HAL cung cấp trong đó tổng chi phí tài nguyên của các camera này là <= 100. Để xác định chi phí, mỗi thiết bị camera phải được giả định là đã được định cấu hình và vận hành ở cài đặt tốc độ khung hình và kích thước luồng tiêu tốn tài nguyên tối đa có sẵn trong cài đặt cấu hình được hiển thị cho thiết bị đó thông qua siêu dữ liệu máy ảnh.

Dịch vụ camera vẫn có thể cố gắng mở đồng thời các tổ hợp thiết bị camera có tổng chi phí tài nguyên > 100. Việc này có thể thành công hoặc thất bại. Nếu điều này thành công, các tổ hợp cấu hình không được hỗ trợ do hạn chế về tài nguyên do có nhiều thiết bị mở sẽ không thành công trong các lệnh gọi định cấu hình. Nếu tổng chi phí tài nguyên <= 100, việc mở và định cấu hình sẽ không bao giờ thất bại đối với mọi cài đặt cấu hình luồng hoặc các khả năng khác của thiết bị thường thành công đối với thiết bị khi đó là thiết bị camera mở duy nhất.

Trường này sẽ được sử dụng để xác định xem các ứng dụng nền có được phép sử dụng thiết bị camera này hay không trong khi các ứng dụng khác đang sử dụng thiết bị camera khác. Lưu ý: dịch vụ camera sẽ không bao giờ cho phép nhiều ứng dụng mở đồng thời cùng một thiết bị camera.

Các trường hợp sử dụng ví dụ:

Bán tại. 1: Thiết bị camera 0 = Camera sau Thiết bị camera 1 = Camera trước

  • Việc sử dụng cả hai thiết bị camera sẽ gây ra hiện tượng chậm tốc độ khung hình lớn do băng thông ISP hạn chế.

Cấu hình:

Thiết bị máy ảnh 0 - tài nguyên_cost = 51 xung đột_devices = null Thiết bị máy ảnh 1 - tài nguyên_cost = 51 xung đột_devices = null

Kết quả:

Vì tổng chi phí tài nguyên là > 100, nên nếu một ứng dụng có mức độ ưu tiên cao hơn mở một trong hai thiết bị thì dịch vụ camera sẽ không cho phép ứng dụng có mức độ ưu tiên thấp hơn mở một trong hai thiết bị. Nếu một ứng dụng có mức độ ưu tiên thấp hơn đang sử dụng một thiết bị mà sau đó có mức độ ưu tiên cao hơn cố gắng mở thì ứng dụng có mức độ ưu tiên thấp hơn sẽ buộc phải ngắt kết nối thiết bị đó.

Nếu ứng dụng có mức ưu tiên cao nhất chọn, ứng dụng đó vẫn có thể cố mở cả hai thiết bị (vì các thiết bị này không được liệt kê là xung đột trong trường xung đột_thiết bị), nhưng việc sử dụng các thiết bị này có thể không thành công trong lệnh gọi mở hoặc định cấu hình.

Bán tại. 2: Thiết bị camera 0 = Thiết bị camera phía sau bên trái 1 = Thiết bị camera phía sau bên phải 2 = Camera âm thanh nổi kết hợp sử dụng cả cảm biến camera phía sau bên phải và bên trái được sử dụng bởi các thiết bị 0 và 1 Thiết bị camera 3 = Camera trước

  • Do hạn chế về phần cứng, có thể mở tối đa hai camera cùng một lúc. Không bao giờ được sử dụng camera âm thanh nổi kết hợp cùng lúc với một trong hai thiết bị camera sau (thiết bị 0, 1) và thường yêu cầu quá nhiều băng thông để sử dụng cùng lúc với camera trước (thiết bị 3).

Cấu hình:

Thiết bị máy ảnh 0 - Resource_cost = 50 Thiết bị xung đột = { 2 } Thiết bị máy ảnh 1 - Resource_cost = 50 thiết bị xung đột = { 2 } Thiết bị máy ảnh 2 - Resource_cost = 100 Thiết bị xung đột = { 0, 1 } Thiết bị máy ảnh 3 - Resource_cost = 50 Thiết bị xung đột = null

Kết quả:

Dựa trên các trường xung đột_thiết bị, dịch vụ camera đảm bảo rằng các nhóm thiết bị mở sau đây sẽ không bao giờ được phép: { 1, 2 }, { 0, 2 }.

Dựa trên các trường Resource_cost, nếu ứng dụng nền trước có mức độ ưu tiên cao đang sử dụng thiết bị camera 0 thì ứng dụng nền sẽ được phép mở thiết bị camera 1 hoặc 3 (nhưng sẽ buộc phải ngắt kết nối lại nếu ứng dụng nền trước mở thiết bị khác).

Ứng dụng có mức ưu tiên cao nhất vẫn có thể cố gắng mở đồng thời các thiết bị 0, 2 và 3, nhưng HAL có thể không thực hiện được lệnh gọi mở hoặc định cấu hình cho sự kết hợp này.

Bán tại. 3: Thiết bị camera 0 = Thiết bị camera phía sau 1 = Thiết bị camera phía trước 2 = Camera phía trước năng lượng thấp sử dụng cùng cảm biến như thiết bị 1, nhưng chỉ hiển thị độ phân giải luồng hình ảnh có thể được sử dụng ở chế độ năng lượng thấp

  • Việc sử dụng đồng thời cả hai camera trước (máy 1, 2) là không thể do dùng chung cảm biến vật lý. Việc sử dụng camera sau và camera trước "năng lượng cao" (thiết bị 1) có thể không thực hiện được đối với một số cấu hình phát trực tuyến do hạn chế về phần cứng, nhưng tùy chọn camera trước "năng lượng thấp" luôn có thể được sử dụng vì nó có phần cứng chuyên dụng đặc biệt.

    Cấu hình:

    Thiết bị máy ảnh 0 - Resource_cost = 100 Thiết bị máy ảnh xung đột 1 - Resource_cost = 100 Thiết bị máy ảnh xung đột = { 2 } Thiết bị máy ảnh 2 - Resource_cost = 0 Thiết bị máy ảnh xung đột = { 1 } Kết quả:

    Dựa trên các trường xung đột_thiết bị, dịch vụ camera đảm bảo rằng các nhóm thiết bị mở sau đây sẽ không bao giờ được phép: { 1, 2 }.

    Dựa trên các trường Resource_cost, chỉ ứng dụng có mức ưu tiên cao nhất mới có thể cố gắng mở cả thiết bị 0 và 1 cùng một lúc. Nếu ứng dụng có mức độ ưu tiên cao hơn không sử dụng thiết bị 1 hoặc 2, thì ứng dụng nền có mức độ ưu tiên thấp có thể mở thiết bị 2 (nhưng sẽ buộc phải ngắt kết nối nếu ứng dụng có mức độ ưu tiên cao hơn sau đó mở thiết bị 1 hoặc 2).

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 trở xuống:

Không hợp lệ. Có thể giả định là 100. Không đọc trường này.

CAMERA_MODULE_API_VERSION_2_4 trở lên:

Luôn luôn hợp lệ.

Định nghĩa tại dòng 376 của file camera_common.h .

const camera_metadata_t * static_máy ảnh_characteristic

Các đặc điểm cố định của máy ảnh, bao gồm tất cả siêu dữ liệu máy ảnh tĩnh được chỉ định trong system/media/máy ảnh/docs/docs.html. Đây phải là bộ đệm siêu dữ liệu được sắp xếp và người gọi không được sửa đổi hoặc giải phóng. Con trỏ phải duy trì hiệu lực trong suốt vòng đời của mô-đun máy ảnh và các giá trị trong nó không được thay đổi sau khi được trả về bởi get_Camera_info().

Thông tin phiên bản (dựa trên camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0:

Không hợp lệ. Các đặc điểm bổ sung không có sẵn. Không đọc lĩnh vực này.

CAMERA_MODULE_API_VERSION_2_0 trở lên:

Hợp lệ nếu device_version >= CAMERA_DEVICE_API_VERSION_2_0. Đừng đọc khác.

Định nghĩa tại dòng 241 của file camera_common.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau: