camera3_stream Struct مرجع

camera3_stream Struct مرجع

#include < camera3.h >

فیلدهای داده

بین المللی stream_type
uint32_t عرض
uint32_t ارتفاع
بین المللی قالب
uint32_t استفاده
uint32_t max_buffers
خالی * خصوصی
android_dataspace_t فضای_داده
بین المللی چرخش
خالی * رزرو شده [7]

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

camera3_stream_t:

یک دسته برای یک جریان ورودی یا خروجی دوربین. یک جریان توسط چارچوب با وضوح بافر و قالب آن، و علاوه بر این توسط HAL با پرچم‌های استفاده از gralloc و حداکثر تعداد بافر در پرواز تعریف می‌شود.

ساختارهای جریان متعلق به فریمورک هستند، اما اشاره گرهای یک camera3_stream که توسط configure_streams() به HAL منتقل می شود تا پایان اولین فراخوانی configure_streams() بعدی که شامل آن camera3_stream به عنوان آرگومان نمی شود ، یا تا پایان فراخوانی ()close.

پس از اینکه camera3_stream به configure_streams () منتقل شود، همه اعضای کنترل شده توسط frame3_stream غیرقابل تغییر هستند. HAL فقط ممکن است پارامترهای کنترل شده با HAL را در طول یک فراخوانی configure_streams() تغییر دهد، به جز محتویات اشاره گر خصوصی.

اگر یک فراخوانی configure_streams() یک خطای غیرمرگبار را برگرداند، تمام جریان‌های فعال مانند اینکه configure_streams () فراخوانی نشده باشد معتبر می‌مانند.

نقطه پایان جریان برای دستگاه HAL دوربین قابل مشاهده نیست. در DEVICE_API_VERSION_3_1، این تغییر برای به اشتراک گذاشتن پرچم‌های مصرف مصرف‌کننده در جریان‌هایی که دوربین تولیدکننده آن است (نوع‌های جریانی OUTPUT و BIDIRECTIONAL) به فیلد استفاده در زیر مراجعه کنید.

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

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

android_dataspace_t data_space

فیلدی که محتویات بافر را توصیف می کند. ابعاد قالب و بافر، چیدمان و ساختار حافظه بافرهای جریانی را مشخص می کند، در حالی که dataSpace معنای داده های درون بافر را مشخص می کند.

برای اکثر فرمت ها، dataSpace فضای رنگی داده های تصویر را مشخص می کند. علاوه بر این، برای برخی از فرمت‌ها، dataSpace نشان می‌دهد که داده‌های مبتنی بر تصویر یا عمق درخواست شده است. برای جزئیات فرمت ها و مقادیر معتبر dataSpace برای هر قالب، به system/core/include/system/graphics.h مراجعه کنید.

اطلاعات نسخه:

< 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

قالب پیکسل برای بافرهای این جریان. Format مقداری از لیست 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 .

void* رزرو شده[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 باید این فیلد را در طول پیکربندی جریان بررسی کند و اگر HAL نتواند چنین چرخشی را انجام دهد -EINVAL را برمی‌گرداند. HAL باید همیشه CAMERA3_STREAM_ROTATION_0 را پشتیبانی کند، بنابراین اگر فیلد چرخش همه جریان‌ها CAMERA3_STREAM_ROTATION_0 باشد، تماس configure_streams() نباید برای چرخش پشتیبانی‌نشده از کار بیفتد.

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

int stream_type

نوع جریان، یکی از مقادیر camera3_stream_type_t.

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

استفاده از uint32_t

طبق نیاز HAL، پرچم استفاده از gralloc برای این جریان. پرچم‌های استفاده در gralloc.h (GRALLOC_USAGE_*) یا در سرصفحه‌های خاص دستگاه تعریف شده‌اند.

برای جریان‌های خروجی، اینها پرچم‌های استفاده تولیدکننده HAL هستند. برای جریان‌های ورودی، اینها پرچم‌های استفاده مصرف‌کننده HAL هستند. پرچم‌های استفاده از تولیدکننده و مصرف‌کننده با هم ترکیب می‌شوند و سپس به ماژول gralloc HAL برای تخصیص بافرهای gralloc برای هر جریان منتقل می‌شوند.

اطلاعات نسخه:

== CAMERA_DEVICE_API_VERSION_3_0:

هنگامی که از طریق configure_streams () ارسال می شود، هیچ مقدار اولیه تضمین نمی شود. HAL ممکن است از این فیلد به عنوان ورودی استفاده نکند و باید روی این فیلد با پرچم های استفاده آن بنویسد.

>= CAMERA_DEVICE_API_VERSION_3_1:

برای OUTPUT stream_type و BIDIRECTIONAL، وقتی از configure_streams() ارسال می‌شود، مقدار اولیه آن پرچم‌های استفاده مصرف‌کننده است. HAL ممکن است از این پرچم های مصرف کننده برای تصمیم گیری در مورد پیکربندی جریان استفاده کند. برای stream_type INPUT، زمانی که از طریق configure_streams () ارسال می شود، مقدار اولیه این 0 است. برای تمام جریان های ارسال شده از طریق configure_streams()، HAL باید روی این فیلد با پرچم های استفاده خود بنویسد.

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

عرض uint32_t

عرض بافرها در این جریان بر حسب پیکسل

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


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