camera2_request_queue_src_ops סימוכין למבנה

camera2_request_queue_src_ops סימוכין למבנה

#include < camera2.h >

שדות נתונים

int(* request_count )(const struct camera2_request_queue_src_ops *q)
int(* dequeue_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)
int(* free_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

תיאור מפורט

בקשת פרוטוקול תור קלט:

המסגרת מחזיקה את התור ואת תוכנו. בהתחלה, התור ריק.

  1. כאשר מאגר המטא נתונים הראשון ממוקם בתור, המסגרת מאותתת למכשיר על ידי קריאה ל-notify_request_queue_not_empty().
  2. לאחר קבלת notify_request_queue_not_empty, המכשיר חייב לקרוא ל-dequeue() ברגע שהוא מוכן לטפל במאגר הבא.
  3. לאחר שהמכשיר עיבד מאגר, והוא מוכן למאגר הבא, עליו לקרוא שוב ל-dequeue() במקום לחכות להתראה. אם אין עוד מאגרים זמינים, dequeue() יחזיר NULL. לאחר נקודה זו, כאשר מאגר זמין, המסגרת חייבת לקרוא שוב ל-notify_request_queue_not_empty(). אם המכשיר מקבל החזרת NULL מ-dequeue, הוא לא צריך לבצע שאילתה שוב על התור עד שתתקבל קריאה notify_request_queue_not_empty() מהמקור.
  4. אם המכשיר קורא buffer_count() ומקבל 0, אין זה אומר שהמסגרת תספק קריאה notify_request_queue_not_empty() . המסגרת תספק הודעה כזו רק לאחר שהמכשיר יקבל NULL מ-dequeue, או בהפעלה ראשונית.
  5. הקריאה dequeue() בתגובה ל-notify_request_queue_not_empty() עשויה להיות באותו שרשור כמו הקריאה notify_request_queue_not_empty(), וניתן לבצע אותה מתוך קריאת ה-notify.
  6. יש להחזיר את כל מאגרי הבקשות שהותרו למסגרת על ידי קריאה ל-free_request, כולל כאשר מתרחשות שגיאות, מתבקשת שטיפת מכשיר או כאשר המכשיר נכבה.

הגדרה בשורה 220 של הקובץ camera2.h .

תיעוד שטח

int(* dequeue_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)

קבל מאגר מטא נתונים מהמסגרת. מחזיר אישור אם אין שגיאה. אם התור ריק, מחזירה NULL במאגר. במקרה זה, ההתקן חייב להמתין להודעת notify_request_queue_not_empty() לפני ניסיון לעמוד בתור שוב. יש להחזיר מאגרים שהושגו בדרך זו למסגרת עם free_request() .

הגדרה בשורה 237 של קובץ camera2.h .

int(* free_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

החזר מאגר מטא נתונים למסגרת לאחר השימוש בו, או אם מתרחשת שגיאה או כיבוי.

הגדרה בשורה 243 של הקובץ camera2.h .

int(* request_count)(const struct camera2_request_queue_src_ops *q)

קבל את ספירת מאגרי הבקשות הממתינים בתור. עשוי להחזיר CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS אם מוגדרת כעת בקשה חוזרת (בקשת זרם). קריאה לשיטה זו אינה משפיעה על האם השיטה notify_request_queue_not_empty() תיקרא על ידי המסגרת.

הגדרה בשורה 228 של הקובץ camera2.h .


התיעוד עבור מבנה זה נוצר מהקובץ הבא:
  • hardware/libhardware/include/hardware/ camera2.h