مرجع بنية camera2_stream_ops
#include <
camera2.h
>
حقول البيانات |
|
int(* | dequeue_buffer )(const struct camera2_stream_ops *w, buffer_handle_t **buffer) |
int(* | enqueue_buffer )(const struct camera2_stream_ops *w, int64_t timestamp, buffer_handle_t *buffer) |
int(* | cancel_buffer )(const struct camera2_stream_ops *w, buffer_handle_t *buffer) |
int(* | set_crop )(const struct camera2_stream_ops *w, int left, int top, int right, int bottom) |
وصف مفصّل
واجهة قائمة انتظار مصدر بيانات الصور يتم توفير مجموعة من هذه الطرق لجهاز HAL في allocate_stream()، ويتم استخدامها للتفاعل مع قائمة انتظار مخزن مؤقت gralloc لهذا البث. وقد لا يتم استدعاؤها إلا بعد أن تُرجع allocate_stream.
مستندات الحقل
int(* cancel_buffer)(const struct camera2_stream_ops *w, buffer_handle_t *buffer) |
int(* dequeue_buffer)(const struct camera2_stream_ops *w, buffer_handle_t **buffer) |
الحصول على مخزن مؤقت لملء البيانات من قائمة الانتظار يكون حجم المخزن المؤقت وتنسيقه ثابتَين لمصدر بيانات معيّن (يتم تحديدهما في allocate_stream)، ويجب الاستعلام عن الخطوة من وحدة gralloc في النظام الأساسي. سيتم تخصيص وحدة تخزين gralloc استنادًا إلى علامات الاستخدام التي يوفّرها allocate_stream، وسيتم قفلها لاستخدامها.
int(* enqueue_buffer)(const struct camera2_stream_ops *w, int64_t timestamp, buffer_handle_t *buffer) |
ادفع ذاكرة تخزين مؤقتة ممتلئة إلى البث لاستخدامها من قِبل المستهلِك.
يمثّل الطابع الزمني وقت بدء تعريض الصف الأول من الصورة، ويجب أن يكون من ساعة أحادية القيمة، ويتم قياسه بالنانو ثانية. ولا يلزم أن تكون الطوابع الزمنية مشابهة بين الكاميرات المختلفة أو بين عمليات التسجيل المتتالية للكاميرا نفسها. ومع ذلك، يجب أن تكون هذه القيم متشابهة بين أحداث البث من الكاميرا نفسها. إذا كان الإجراء الواحد لالتقاط المحتوى ينتج عن وحدات تخزين مؤقت لعمليات بث متعددة، يجب أن يتضمّن كل بث الطابع الزمني نفسه لوحدة التخزين المؤقت هذه، ويجب أن يتطابق هذا الطابع الزمني مع الطابع الزمني في البيانات الوصفية لإطار الإخراج.
int(* set_crop)(const struct camera2_stream_ops *w, int left, int top, int right, int bottom) |
تم إنشاء مستندات هذه البنية من الملف التالي:
- hardware/libhardware/include/hardware/ camera2.h