קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

הפנייה למבנה camera_device_ops

הפנייה למבנה camera_device_ops

#include < camera.h >

שדות נתונים

int(* set_preview_window )(struct camera_device *, struct preview_stream_ops *window)
בָּטֵל(* set_callbacks )(struct camera_device *, camera_notify_callback notify_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)
בָּטֵל(* enable_msg_type )(struct camera_device *, int32_t msg_type)
בָּטֵל(* disable_msg_type )(struct camera_device *, int32_t msg_type)
int(* msg_type_enabled )(struct camera_device *, int32_t msg_type)
int(* start_preview )(struct camera_device *)
בָּטֵל(* stop_preview )(struct camera_device *)
int(* preview_enabled )(struct camera_device *)
int(* store_meta_data_in_buffers )(struct camera_device *, int enable)
int(* start_recording )(struct camera_device *)
בָּטֵל(* stop_recording )(struct camera_device *)
int(* recording_enabled )(struct camera_device *)
בָּטֵל(* release_recording_frame )(struct camera_device *, const void *אטום)
int(* auto_focus )(struct camera_device *)
int(* cancel_auto_focus )(struct camera_device *)
int(* take_picture )(struct camera_device *)
int(* cancel_picture )(struct camera_device *)
int(* set_parameters )(struct camera_device *, const char *parms)
char *(* get_parameters )(struct camera_device *)
בָּטֵל(* put_parameters )(struct camera_device *, char *)
int(* send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
בָּטֵל(* release )(struct camera_device *)
int(* dump )(struct camera_device *, int fd)

תיאור מפורט

הגדרה בשורה 99 של הקובץ camera.h .

תיעוד שטח

int(* auto_focus)(struct camera_device *)

התחל מיקוד אוטומטי, שגרת ההתקשרות חזרה של הודעות נקראת עם CAMERA_MSG_FOCUS פעם אחת כשהמיקוד הושלם. autoFocus() ייקרא שוב אם יש צורך בפוקוס אוטומטי אחר.

הגדרה בשורה 227 של הקובץ camera.h .

int(* cancel_auto_focus)(struct camera_device *)

מבטל את פונקציית הפוקוס האוטומטי. אם המיקוד האוטומטי עדיין בעיצומו, פונקציה זו תבטל אותו. בין אם הפוקוס האוטומטי מתבצע או לא, פונקציה זו תחזיר את מיקום המיקוד לברירת המחדל. אם המצלמה אינה תומכת בפוקוס אוטומטי, מדובר בפעולה ללא הפעלה.

הגדרה בשורה 235 של הקובץ camera.h .

int(* cancel_picture)(struct camera_device *)

בטל תמונה שהתחילה עם takePicture. קריאה לשיטה זו כשלא מצלמים תמונה היא לא הפעלה.

הגדרה בשורה 246 של הקובץ camera.h .

void(* disable_msg_type)(struct camera_device *, int32_t msg_type)

השבת הודעה, או קבוצה של הודעות.

לאחר קבלת קריאה ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME), המצלמה HAL לא צריכה לסמוך על הלקוח שלה שיקרא releaseRecordingFrame() כדי לשחרר פריימים להקלטת וידאו שנשלחו על ידי ה-HAL של המצלמה לפני ואחרי הקריאה disableMsgType(CAMERA_MSG_VIDEO_FRAME). לקוחות HAL של מצלמה אינם רשאים לשנות/לגשת לאף מסגרת הקלטת וידאו לאחר קריאת disableMsgType(CAMERA_MSG_VIDEO_FRAME).

הגדרה בשורה 132 של הקובץ camera.h .

int(* dump)(struct camera_device *, int fd)

מצב dump של חומרת המצלמה

הגדרה בשורה 282 של הקובץ camera.h .

void(* enable_msg_type)(struct camera_device *, int32_t msg_type)

שלוש הפונקציות הבאות כולן לוקחות את msg_type, שהוא מסכת סיביות של ההודעות המוגדרות ב- include/ui/Camera.h אפשר הודעה, או קבוצה של הודעות.

הגדרה בשורה 120 של הקובץ camera.h .

char*(* get_parameters)(struct camera_device *)

אחזר את פרמטרי המצלמה. יש להחזיר אליו את המאגר המוחזר על ידי המצלמה HAL עם put_parameters, אם put_parameters אינו NULL.

הגדרה בשורה 258 של הקובץ camera.h .

int(* msg_type_enabled)(struct camera_device *, int32_t msg_type)

שאל אם הודעה, או קבוצה של הודעות, מופעלת. שים לב שזה פועל כ-AND, אם אחת מההודעות שנשאלו כבויה, זה יחזיר false.

הגדרה בשורה 139 של הקובץ camera.h .

int(* preview_enabled)(struct camera_device *)

מחזירה true אם התצוגה המקדימה מופעלת.

הגדרה בשורה 154 של הקובץ camera.h .

void(* put_parameters)(struct camera_device *, char *)

המצלמה HAL משתמשת בזיכרון משלה כדי להעביר לנו את הפרמטרים כאשר אנו קוראים get_parameters. השתמש בפונקציה זו כדי להחזיר את הזיכרון ל-HAL של המצלמה, אם put_parameters אינו NULL. אם put_parameters הוא NULL, אז אתה צריך להשתמש ב-free() כדי לשחרר את הזיכרון.

הגדרה בשורה 265 של הקובץ camera.h .

int(* recording_enabled)(struct camera_device *)

מחזירה אמת אם ההקלטה מופעלת.

הגדרה בשורה 208 של הקובץ camera.h .

void(* release)(struct camera_device *)

שחרר את משאבי החומרה שבבעלות אובייקט זה. שימו לב שזה לא נעשה בהרס.

הגדרה בשורה 277 של הקובץ camera.h .

void(* release_recording_frame)(struct camera_device *, const void *אטום)

שחרר מסגרת שיא שהוחזרה בעבר על ידי CAMERA_MSG_VIDEO_FRAME.

באחריות לקוח HAL המצלמה לשחרר פריימים להקלטת וידאו שנשלחו על ידי HAL המצלמה לפני שה-HAL של המצלמה יקבל קריאה ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME). לאחר שהוא מקבל את הקריאה ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME), באחריות המצלמה HAL לנהל את מחזור החיים של הפריימים של הקלטת הווידאו.

הגדרה בשורה 219 של הקובץ camera.h .

int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)

שלח פקודה למנהל המצלמה.

הגדרה בשורה 270 של הקובץ camera.h .

void(* set_callbacks)(struct camera_device *, camera_notify_callback notify_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)

הגדר את ההתראות וההתקשרויות חוזרות בנתונים

הגדרה בשורה 105 של הקובץ camera.h .

int(* set_parameters)(struct camera_device *, const char *parms)

הגדר את פרמטרי המצלמה. זה מחזיר BAD_VALUE אם פרמטר כלשהו אינו חוקי או אינו נתמך.

הגדרה בשורה 252 של הקובץ camera.h .

int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window)

הגדר את ANativeWindow שאליו נשלחות מסגרות תצוגה מקדימה

הגדרה בשורה 101 של הקובץ camera.h .

int(* start_preview)(struct camera_device *)

התחל מצב תצוגה מקדימה.

הגדרה בשורה 144 של הקובץ camera.h .

int(* start_recording)(struct camera_device *)

התחל את מצב הקלטה. כאשר תמונת שיא זמינה, נשלחת הודעת CAMERA_MSG_VIDEO_FRAME עם המסגרת המתאימה. כל מסגרת רשומה חייבת להיות משוחררת על ידי לקוח HAL של מצלמה באמצעות releaseRecordingFrame() לפני שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME). לאחר שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME), באחריות המצלמה HAL לנהל את מחזור החיים של מסגרות הקלטת הווידאו, וללקוח אסור לשנות/לגשת לאף מסגרות הקלטת וידאו.

הגדרה בשורה 198 של הקובץ camera.h .

void(* stop_preview)(struct camera_device *)

עצור תצוגה מקדימה שהחלה בעבר.

הגדרה בשורה 149 של הקובץ camera.h .

void(* stop_recording)(struct camera_device *)

עצור הקלטה שהחלה קודם לכן.

הגדרה בשורה 203 של הקובץ camera.h .

int(* store_meta_data_in_buffers)(struct camera_device *, int enable)

בקש מהמצלמה HAL לאחסן מטא נתונים או נתוני YUV אמיתיים במאגרי הווידאו הנשלחים דרך CAMERA_MSG_VIDEO_FRAME לסשן הקלטה. אם זה לא נקרא, התנהגות ה-HAL של מצלמת ברירת המחדל היא אחסון נתוני YUV אמיתיים במאגרי הווידאו.

יש לקרוא לשיטה זו לפני startRecording() כדי להיות יעילה.

אם מטא נתונים מאוחסנים במאגרי הווידאו, זה תלוי במקלט של מאגרי הווידאו לפרש את התוכן ולמצוא את נתוני הפריימים בפועל בעזרת המטא נתונים במאגר. איך זה נעשה מחוץ לתחום של שיטה זו.

ייתכן שחלק מה-HALs של מצלמות לא יתמכו באחסון מטא נתונים במאגרי הווידיאו, אבל כל ה-HAL של המצלמה אמור לתמוך באחסון נתוני YUV אמיתיים במאגרי הווידאו. אם המצלמה HAL אינה תומכת באחסון המטא נתונים במאגרי הווידאו כאשר היא מתבקשת לעשות זאת, יש להחזיר את INVALID_OPERATION. זה מאוד שימושי עבור המצלמה HAL להעביר מטא נתונים ולא את נתוני הפריימים בפועל ישירות לקודד הווידאו, מכיוון שכמות נתוני המסגרת הלא דחוסים יכולה להיות גדולה מאוד אם גודל הווידאו גדול.

פרמטרים
לְאַפשֵׁר אם נכון להורות למצלמה HAL לאחסן מטא נתונים במאגרי הווידאו; false להורות למצלמה HAL לאחסן נתוני YUV אמיתיים במאגרי הווידאו.
החזרות
בסדר לגבי ההצלחה.

הגדרה בשורה 186 של הקובץ camera.h .

int(* take_picture)(struct camera_device *)

לצלם תמונה.

הגדרה בשורה 240 של הקובץ camera.h .


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