مرجع هيكل الكاميرا3_stream_buffer
#include < camera3.h >
حقول البيانات | |
كاميرا3_ستريم_ت * | تدفق |
buffer_handle_t * | متعادل |
كثافة العمليات | حالة |
كثافة العمليات | aquiry_fence |
كثافة العمليات | Release_fence |
وصف تفصيلي
Camera3_stream_buffer_t:
مخزن مؤقت واحد من دفق Camera3. يتضمن مقبضًا للدفق الأصلي الخاص به، ومقبضًا لمخزن granalloc المؤقت نفسه، وأسوار المزامنة
لا يحدد المخزن المؤقت ما إذا كان سيتم استخدامه للإدخال أو الإخراج؛ يتم تحديده حسب نوع الدفق الأصلي وكيفية تمرير المخزن المؤقت إلى جهاز HAL.
التوثيق الميداني
كثافة العمليات المكتسبة_السياج |
الحصول على سياج المزامنة لهذا المخزن المؤقت. يجب أن ينتظر HAL على هذا السياج fd قبل محاولة القراءة من هذا المخزن المؤقت أو الكتابة إليه.
يمكن ضبط إطار العمل على -1 للإشارة إلى عدم الحاجة إلى الانتظار لهذا المخزن المؤقت.
عندما يقوم HAL بإرجاع مخزن مؤقت للإخراج إلى إطار العمل باستخدام Process_capture_result()، يجب تعيين Acquis_fence على -1. إذا لم تنتظر HAL مطلقًا على Acquis_fence بسبب خطأ في ملء المخزن المؤقت، فعند استدعاء Process_capture_result()، يجب على HAL تعيين Release_fence الخاص بالمخزن المؤقت ليكون Acquis_fence الذي تم تمريره إليه بواسطة إطار العمل. سيسمح هذا للإطار بالانتظار على السياج قبل إعادة استخدام المخزن المؤقت.
بالنسبة إلى المخازن المؤقتة للإدخال، يجب ألا يقوم HAL بتغيير حقل Acquisition_fence أثناء استدعاء Process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
عندما يقوم HAL بإرجاع مخزن مؤقت للإدخال إلى إطار العمل باستخدام Process_capture_result()، يجب تعيين Acquis_fence على -1. إذا لم ينتظر HAL مطلقًا الحصول على سياج المخزن المؤقت للإدخال بسبب خطأ، فيجب التعامل مع أسوار المزامنة بشكل مشابه للطريقة التي يتم التعامل بها مع المخازن المؤقتة للإخراج.
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.
حالة كثافة العمليات |
الحالة الحالية للمخزن المؤقت، إحدى قيم Camera3_buffer_status_t. لن يقوم إطار العمل بتمرير المخازن المؤقتة إلى HAL الموجودة في حالة خطأ. في حالة عدم إمكانية ملء المخزن المؤقت بواسطة HAL، يجب تعيين حالته إلى CAMERA3_BUFFER_STATUS_ERROR عند إعادته إلى إطار العمل باستخدامprocess_capture_result().
Camera3_stream_t * تيار |
تم إنشاء وثائق هذه البنية من الملف التالي:
- الأجهزة/libhardware/تشمل/الأجهزة/ الكاميرا3.h