مرجع بنية camera3_stream

مرجع بنية camera3_stream

#include < camera3.h >

حقول البيانات

int  stream_type
 
uint32_t  width
 
uint32_t  height
 
int  format
 
uint32_t  الاستخدام
 
uint32_t  max_buffers
 
void *  priv
 
android_dataspace_t  data_space
 
int  التدوير
 
void *  reserved [7]
 

وصف مفصّل

camera3_stream_t:

معرّف لبث إدخال أو إخراج كاميرا واحد يحدِّد إطار العمل البث من خلال دقة المخزن المؤقت وتنسيقه، بالإضافة إلى HAL مع علامات استخدام gralloc والحد الأقصى لعدد المخزن المؤقت أثناء التشغيل.

تكون هياكل البث مملوكة للإطار العمل، ولكن تكون الإشارات إلى camera3_stream التي تم تمريرها إلى HAL من خلال دالة configure_streams() صالحة حتى نهاية أول طلب لاحق لدالة configure_streams() الذي لا يتضمّن camera3_stream كوسيطة، أو حتى نهاية طلب دالة close().

إنّ جميع العناصر التي يتحكم فيها إطار العمل في camera3_stream غير قابلة للتغيير بعد تمرير camera3_stream إلى دالة configure_streams(). ولا يمكن لواجهة 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 إلى ما إذا كان يتم طلب بيانات مستندة إلى الصور أو العمق. اطّلِع على system/core/include/system/graphics.h لمعرفة تفاصيل التنسيقات وقيم dataSpace الصالحة لكل تنسيق.

معلومات الإصدار:

< CAMERA_DEVICE_API_VERSION_3_3:

لم يتم تحديده ويجب عدم الوصول إليه. يجب افتراض أنّ dataSpace هي HAL_DATASPACE_UNKNOWN، ويجب تحديد مساحة اللون المناسبة وما إلى ذلك من علامات الاستخدام والتنسيق.

= CAMERA_DEVICE_API_VERSION_3_3:

يتم ضبطه دائمًا من خلال خدمة الكاميرا. يجب أن يستخدم HAL مساحة البيانات هذه لضبط البث على مساحة الألوان الصحيحة، أو للاختيار بين مخرجات اللون والعمق إذا كان ذلك متاحًا. قيم مساحة البيانات هي التعريفات القديمة في graphics.h

‫>= CAMERA_DEVICE_API_VERSION_3_4:

يتم ضبطه دائمًا من خلال خدمة الكاميرا. يجب أن يستخدم HAL مساحة البيانات هذه لضبط البث على مساحة الألوان الصحيحة، أو للاختيار بين مخرجات اللون والعمق إذا كان ذلك متاحًا. يتم ضبط قيم مساحة البيانات باستخدام تعريفات مساحة البيانات 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 height

ارتفاع وحدات التخزين المؤقت بالبكسل في هذا البث

التعريف في السطر 1542 من الملف camera3.h .

uint32_t max_buffers

الحد الأقصى لعدد وحدات التخزين المؤقت التي قد يحتاج جهاز HAL إلى إزالة صفها في الوقت نفسه. لا يمكن أن يتضمّن جهاز HAL عددًا أكبر من وحدات التخزين المؤقت في أثناء نقل هذا البث أكثر من هذه القيمة.

التعريف في السطر 1608 من الملف camera3.h .

void* priv

معرّف للمعلومات الخاصة بواجهة HAL لبث الوسائط لن يتم فحصها من خلال رمز الإطار.

التعريف في السطر 1614 من الملف camera3.h .

void* reserved[7]

التعريف في السطر 1677 من الملف camera3.h .

int rotation

اتجاه الإخراج المطلوب للبث، وهو إحدى قيم camera3_stream_rotation_t. يجب أن يتحقّق HAL من ذلك بالإضافة إلى عرض البث وارتفاعه. على سبيل المثال، إذا كانت عملية التدوير 90 درجة وكان عرض البث وارتفاعه 720 و1280 على التوالي، ستقدّم خدمة الكاميرا وحدات تخزين مؤقت بحجم 720×1280، ومن المفترض أن تلتقط HAL صورة بحجم 1280×720 وتدير الصورة 90 درجة بعكس عقارب الساعة. لا يُستخدَم حقل "العرض بالتناوب" عندما يكون نوع البث هو "إدخال". يجب أن تتجاهل Camera HAL حقل التدوير لمصدر بيانات الإدخال.

‫<= CAMERA_DEVICE_API_VERSION_3_2:

لم يتم تحديده ويجب عدم الوصول إليه. يجب ألا يطبّق HAL أيّ عملية تدوير على صور الإخراج.

‫>= CAMERA_DEVICE_API_VERSION_3_3:

يتم ضبطه دائمًا من خلال خدمة الكاميرا. يجب أن يتحقّق HAL من هذا الحقل أثناء ضبط البث ويعرض الخطأ -EINVAL إذا تعذّر على HAL تنفيذ هذا التناوب. يجب أن يكون HAL متوافقًا دائمًا مع CAMERA3_STREAM_ROTATION_0، لذا يجب ألا يتعذّر إكمال طلب configure_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. سيتم تجميع علامات الاستخدام من المنتج والمستهلك معًا ثم تمريرها إلى وحدة HAL gralloc للنظام الأساسي لتخصيص مخازن gralloc لكل بث.

معلومات الإصدار:

== CAMERA_DEVICE_API_VERSION_3_0:

لا يمكن ضمان أي قيمة أولية عند تمريرها من خلال دالة configure_streams(). قد لا يستخدم HAL هذا الحقل كمدخل، ويجب الكتابة فوق هذا الحقل باستخدام علامات الاستخدام.

‫>= CAMERA_DEVICE_API_VERSION_3_1:

بالنسبة إلى stream_type OUTPUT وBIDIRECTIONAL، عند تمريرها من خلال configure_streams()، تكون القيمة الأولية لهذا هي علامات استخدام المستهلِك. قد يستخدم HAL علامات المستهلك هذه لتحديد إعدادات البث. بالنسبة إلى stream_type INPUT، تكون القيمة الأولية لهذا العنصر هي 0 عند تمريرها من خلال configure_streams(). بالنسبة إلى جميع أحداث البث التي يتم تمريرها من خلال دالة configure_streams()، يجب أن تُعيد HAL كتابة هذا الحقل باستخدام علامات الاستخدام.

التعريف في السطر 1601 من الملف camera3.h .

‫uint32_t width

العرض بالبكسل لمخازن الوسائط المؤقتة في هذا البث

التعريف في السطر 1537 من الملف camera3.h .


تم إنشاء مستندات هذه البنية من الملف التالي: