مرجع ساختار camera3_stream_buffer

مرجع ساختار camera3_stream_buffer

#include < camera3.h >

فیلدهای داده

camera3_stream_t * جریان
buffer_handle_t * بافر
بین المللی وضعیت
بین المللی کسب_حصار
بین المللی انتشار_حصار

توصیف همراه با جزئیات

camera3_stream_buffer_t:

یک بافر واحد از یک جریان camera3. این شامل یک دسته برای جریان اصلی خود، دسته به خود بافر gralloc و حصارهای همگام سازی است.

بافر مشخص نمی کند که از آن برای ورودی یا خروجی استفاده شود. که بر اساس نوع جریان اصلی آن و نحوه ارسال بافر به دستگاه HAL تعیین می شود.

تعریف در خط 1755 فایل camera3.h .

مستندات میدانی

int purchase_fence

حصار همگام سازی برای این بافر. قبل از تلاش برای خواندن یا نوشتن در این بافر، HAL باید روی این حصار fd منتظر بماند.

چارچوب ممکن است روی -1 تنظیم شود تا نشان دهد که هیچ انتظاری برای این بافر لازم نیست.

هنگامی که HAL یک بافر خروجی را با process_capture_result() به فریم ورک برمی گرداند، acce_fence باید روی -1 تنظیم شود. اگر HAL به دلیل خطایی در پر کردن بافر، هرگز در acce_fence منتظر نماند، هنگام فراخوانی process_capture_result() HAL باید release_fence بافر را به عنوان purchase_fence که توسط فریم‌ورک به آن ارسال می‌شود تنظیم کند. این به چارچوب اجازه می دهد تا قبل از استفاده مجدد از بافر روی حصار منتظر بماند.

برای بافرهای ورودی، HAL نباید فیلد purchase_fence را در طول فراخوانی process_capture_request () تغییر دهد.

>= CAMERA_DEVICE_API_VERSION_3_2:

وقتی HAL یک بافر ورودی را با process_capture_result() به فریم ورک برمی گرداند، acce_fence باید روی -1 تنظیم شود. اگر HAL به دلیل یک خطا هرگز روی حصار جذب بافر ورودی منتظر نماند، حصارهای همگام‌سازی باید به همان روشی که برای بافرهای خروجی استفاده می‌شوند، مدیریت شوند.

تعریف در خط 1800 فایل camera3.h .

buffer_handle_t* بافر

دسته بومی به بافر

تعریف در خط 1764 فایل camera3.h .

int release_fence

حصار همگام سازی انتشار برای این بافر. HAL باید این حصار را هنگام بازگرداندن بافرها به فریمورک تنظیم کند، یا بنویسد -1 تا نشان دهد که برای این بافر نیازی به انتظار نیست.

برای بافرهای خروجی، حصارها باید در آرایه output_buffers تنظیم شوند که به process_capture_result().

<= CAMERA_DEVICE_API_VERSION_3_1:

برای بافر ورودی، حصار آزادسازی باید با فراخوانی ()process_capture_request تنظیم شود.

>= CAMERA_DEVICE_API_VERSION_3_2:

برای بافر ورودی، حصارها باید در input_buffer تنظیم شوند که به process_capture_result().

پس از سیگنال دادن به release_fence برای این بافر، HAL نباید هیچ تلاش دیگری برای دسترسی به این بافر انجام دهد زیرا مالکیت به طور کامل به چارچوب منتقل شده است.

اگر حصار -1 مشخص شده باشد، مالکیت این بافر بلافاصله پس از فراخوانی process_capture_result به عقب منتقل می‌شود.

تعریف در خط 1827 فایل camera3.h .

وضعیت بین المللی

وضعیت فعلی بافر، یکی از مقادیر camera3_buffer_status_t. فریم ورک بافرهایی را به HAL که در حالت خطا هستند ارسال نمی کند. در صورتی که یک بافر توسط HAL پر نشود، هنگام بازگشت به چارچوب با process_capture_result() باید وضعیت آن روی CAMERA3_BUFFER_STATUS_ERROR تنظیم شود.

تعریف در خط 1773 فایل camera3.h .

camera3_stream_t * جریان

دسته جریانی که این بافر با آن مرتبط است

تعریف در خط 1759 فایل camera3.h .


مستندات این ساختار از فایل زیر تولید شده است:
  • hardware/libhardware/include/hardware/ camera3.h