Tham chiếu cấu trúc camera3_stream

Tham chiếu cấu trúc camera3_stream

#include < camera3.h >

Trường dữ liệu

int stream_type
uint32_t bề rộng
uint32_t Chiều cao
int định dạng
uint32_t cách sử dụng
uint32_t max_buffers
void * priv
android_dataspace_t data_space
int Vòng xoay
void * dành riêng [7]

miêu tả cụ thể

camera3_stream_t:

Một tay cầm cho một luồng đầu vào hoặc đầu ra của máy ảnh. Luồng được xác định bởi khung công tác bằng độ phân giải và định dạng bộ đệm của nó, và thêm vào đó bởi HAL với các cờ sử dụng gralloc và số lượng bộ đệm trong chuyến bay tối đa.

Cấu trúc luồng thuộc sở hữu của khung, nhưng con trỏ đến camera3_stream được truyền vào HAL bởi config_streams () có hiệu lực cho đến khi kết thúc lệnh gọi config_streams () đầu tiên không bao gồm camera3_stream đó làm đối số hoặc cho đến khi kết thúc cuộc gọi close ().

Tất cả các thành viên được kiểm soát bởi khung camera3_stream là không thể thay đổi khi camera3_stream được chuyển vào config_streams (). HAL chỉ có thể thay đổi các tham số do HAL kiểm soát trong cuộc gọi config_streams (), ngoại trừ nội dung của con trỏ riêng.

Nếu lệnh gọi config_streams () trả về lỗi không nghiêm trọng, thì tất cả các luồng hoạt động vẫn hợp lệ như thể config_streams () chưa được gọi.

Thiết bị HAL của máy ảnh không hiển thị điểm cuối của luồng. Trong DEVICE_API_VERSION_3_1, điều này đã được thay đổi để chia sẻ cờ sử dụng của người tiêu dùng trên các luồng mà máy ảnh là nhà sản xuất (loại luồng OUTPUT và BIDIRECTIONAL) xem trường sử dụng bên dưới.

Định nghĩa ở dòng 1523 của tệp camera3.h .

Tài liệu thực địa

android_dataspace_t data_space

Một trường mô tả nội dung của bộ đệm. Định dạng và kích thước bộ đệm xác định bố cục bộ nhớ và cấu trúc của bộ đệm luồng, trong khi dataSpace xác định ý nghĩa của dữ liệu trong bộ đệm.

Đối với hầu hết các định dạng, dataSpace xác định không gian màu của dữ liệu hình ảnh. Ngoài ra, đối với một số định dạng, dataSpace cho biết liệu dữ liệu dựa trên hình ảnh hoặc độ sâu có được yêu cầu hay không. Xem system / core / include / system / graphics.h để biết chi tiết về các định dạng và giá trị dataSpace hợp lệ cho từng định dạng.

Thông tin phiên bản:

<CAMERA_DEVICE_API_VERSION_3_3:

Không được xác định và không nên được truy cập. dataSpace phải được giả định là HAL_DATASPACE_UNKNOWN và không gian màu thích hợp, v.v., phải được xác định từ các cờ sử dụng và định dạng.

= CAMERA_DEVICE_API_VERSION_3_3:

Luôn được đặt bởi dịch vụ camera. HAL phải sử dụng không gian dữ liệu này để định cấu hình luồng theo không gian màu chính xác hoặc để chọn giữa các đầu ra màu và độ sâu nếu được hỗ trợ. Các giá trị không gian dữ liệu là các định nghĩa kế thừa trong Graphics.h

> = CAMERA_DEVICE_API_VERSION_3_4:

Luôn được đặt bởi dịch vụ camera. HAL phải sử dụng không gian dữ liệu này để định cấu hình luồng theo không gian màu chính xác hoặc để chọn giữa các đầu ra màu và độ sâu nếu được hỗ trợ. Các giá trị không gian dữ liệu được đặt bằng cách sử dụng các định nghĩa không gian dữ liệu V0 trong graphics.h

Định nghĩa ở dòng 1648 của tệp camera3.h .

định dạng int

Định dạng pixel cho vùng đệm trong luồng này. Định dạng là một giá trị từ danh sách HAL_PIXEL_FORMAT_ * trong system / core / include / system / graphics.h hoặc từ các tiêu đề dành riêng cho thiết bị.

Nếu HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED được sử dụng, thì mô-đun gralloc nền tảng sẽ chọn định dạng dựa trên cờ sử dụng được cung cấp bởi thiết bị camera và điểm cuối khác của luồng.

<= CAMERA_DEVICE_API_VERSION_3_1:

Thiết bị HAL camera phải kiểm tra các bộ đệm được trao cho nó trong lệnh gọi register_stream_buffers () tiếp theo để có được chi tiết định dạng triển khai cụ thể, nếu cần.

> = CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers () sẽ không được gọi bởi khuôn khổ, vì vậy HAL phải định cấu hình ISP và đường ống cảm biến hoàn toàn dựa trên kích thước, cờ sử dụng và định dạng cho các luồng đã định cấu hình.

Định nghĩa ở dòng 1565 của tệp camera3.h .

chiều cao uint32_t

Chiều cao tính bằng pixel của vùng đệm trong luồng này

Định nghĩa ở dòng 1542 của tệp camera3.h .

uint32_t max_buffers

Số lượng bộ đệm tối đa mà thiết bị HAL có thể cần phải được khử hóa cùng một lúc. Thiết bị HAL có thể không có nhiều bộ đệm đang hoạt động từ luồng này hơn giá trị này.

Định nghĩa ở dòng 1608 của tệp camera3.h .

void * priv

Xử lý thông tin riêng tư HAL cho luồng. Sẽ không được kiểm tra bởi mã khung.

Định nghĩa ở dòng 1614 của tệp camera3.h .

void * dành riêng [7]

Định nghĩa ở dòng 1677 của tệp camera3.h .

int quay

Vòng quay đầu ra bắt buộc của luồng, một trong các giá trị camera3_stream_rotation_t. Điều này phải được HAL kiểm tra cùng với chiều rộng và chiều cao của luồng. Ví dụ: nếu xoay 90 độ và chiều rộng và chiều cao luồng tương ứng là 720 và 1280, dịch vụ máy ảnh sẽ cung cấp bộ đệm có kích thước 720x1280 và HAL sẽ chụp hình ảnh 1280x720 và xoay hình ảnh 90 độ ngược chiều kim đồng hồ. Trường xoay vòng không hoạt động khi loại luồng được nhập. Máy ảnh HAL phải bỏ qua trường xoay đối với luồng đầu vào.

<= CAMERA_DEVICE_API_VERSION_3_2:

Không được xác định và không được truy cập. HAL không được áp dụng bất kỳ thao tác xoay nào trên hình ảnh đầu ra.

> = CAMERA_DEVICE_API_VERSION_3_3:

Luôn đặt bởi dịch vụ camera. HAL phải kiểm tra trường này trong quá trình cấu hình luồng và trả về -EINVAL nếu HAL không thể thực hiện việc xoay vòng như vậy. HAL phải luôn hỗ trợ CAMERA3_STREAM_ROTATION_0, vì vậy lệnh gọi config_streams () không được thất bại đối với xoay vòng không được hỗ trợ nếu trường xoay vòng của tất cả các luồng là CAMERA3_STREAM_ROTATION_0.

Định nghĩa ở dòng 1674 của tệp camera3.h .

int stream_type

Loại luồng, một trong các giá trị camera3_stream_type_t.

Định nghĩa ở dòng 1532 của tệp camera3.h .

sử dụng uint32_t

Các cờ sử dụng gralloc cho luồng này, khi HAL cần. Các cờ sử dụng được xác định trong gralloc.h (GRALLOC_USAGE_ *) hoặc trong các tiêu đề dành riêng cho thiết bị.

Đối với các luồng đầu ra, đây là các cờ sử dụng của nhà sản xuất HAL. Đối với các luồng đầu vào, đây là các cờ sử dụng của người tiêu dùng của HAL. Các cờ sử dụng từ nhà sản xuất và người tiêu dùng sẽ được kết hợp với nhau và sau đó được chuyển đến mô-đun gralloc HAL của nền tảng để phân bổ bộ đệm gralloc cho mỗi luồng.

Thông tin phiên bản:

== CAMERA_DEVICE_API_VERSION_3_0:

Không có giá trị ban đầu nào được đảm bảo khi được truyền qua config_streams (). HAL không được sử dụng trường này làm đầu vào và phải ghi trên trường này bằng các cờ sử dụng của nó.

> = CAMERA_DEVICE_API_VERSION_3_1:

Đối với stream_type OUTPUT và BIDIRECTIONAL, khi được truyền qua config_streams (), giá trị ban đầu của giá trị này là cờ sử dụng của người tiêu dùng. HAL có thể sử dụng các cờ tiêu dùng này để quyết định cấu hình luồng. Đối với stream_type INPUT, khi được truyền qua config_streams (), giá trị ban đầu của giá trị này là 0. Đối với tất cả các luồng được truyền qua config_streams (), HAL phải ghi lên trường này với các cờ sử dụng của nó.

Định nghĩa ở dòng 1601 của tệp camera3.h .

chiều rộng uint32_t

Chiều rộng tính bằng pixel của vùng đệm trong luồng này

Định nghĩa ở dòng 1537 của tệp camera3.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau:
  • phần cứng / libhardware / bao gồm / phần cứng / camera3.h