מידע על המבנה 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) |
אחזור מאגר נתונים זמני (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