הפנייה למבנה 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) |
תיאור מפורט
תיעוד שטח
int(* auto_focus)(struct camera_device *) |
int(* cancel_auto_focus)(struct camera_device *) |
int(* cancel_picture)(struct camera_device *) |
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).
int(* dump)(struct camera_device *, int fd) |
void(* enable_msg_type)(struct camera_device *, int32_t msg_type) |
char*(* get_parameters)(struct camera_device *) |
int(* msg_type_enabled)(struct camera_device *, int32_t msg_type) |
int(* preview_enabled)(struct camera_device *) |
void(* put_parameters)(struct camera_device *, char *) |
int(* recording_enabled)(struct camera_device *) |
void(* release)(struct camera_device *) |
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 לנהל את מחזור החיים של מסגרות הקלטת הווידאו.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
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) |
int(* set_parameters)(struct camera_device *, const char *parms) |
int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window) |
int(* start_preview)(struct camera_device *) |
int(* start_recording)(struct camera_device *) |
התחל את מצב הקלטה. כאשר תמונת שיא זמינה, נשלחת הודעת CAMERA_MSG_VIDEO_FRAME עם המסגרת המתאימה. כל פריים להקלטה חייב להיות משוחרר על ידי לקוח HAL של מצלמה דרך releaseRecordingFrame() לפני שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME). לאחר שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME), באחריות המצלמה HAL לנהל את מחזור החיים של מסגרות הקלטת הווידאו, וללקוח אסור לשנות/לגשת לאף מסגרות הקלטת וידאו.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
int(* store_meta_data_in_buffers)(struct camera_device *, int enable) |
בקש מהמצלמה HAL לאחסן מטא נתונים או נתוני YUV אמיתיים במאגרי הווידאו הנשלחים דרך CAMERA_MSG_VIDEO_FRAME לסשן הקלטה. אם זה לא נקרא, התנהגות ה-HAL של מצלמת ברירת המחדל היא לאחסן נתוני YUV אמיתיים במאגרי הווידאו.
יש לקרוא לשיטה זו לפני startRecording() כדי להיות יעילה.
אם מטא נתונים מאוחסנים במאגרי הווידאו, זה תלוי במקלט של מאגרי הווידאו לפרש את התוכן ולמצוא את נתוני הפריימים בפועל בעזרת המטא נתונים במאגר. איך זה נעשה מחוץ לתחום של שיטה זו.
ייתכן שחלק מה-HALs של מצלמות לא יתמכו באחסון מטא נתונים במאגרי הווידאו, אבל כל ה-HALs של המצלמה צריכים לתמוך באחסון נתוני YUV אמיתיים במאגרי הווידאו. אם המצלמה HAL אינה תומכת באחסון המטא נתונים במאגרי הווידאו כאשר היא מתבקשת לעשות זאת, יש להחזיר את INVALID_OPERATION. זה מאוד שימושי עבור המצלמה HAL להעביר מטא נתונים ולא את נתוני הפריימים בפועל ישירות לקודד הווידאו, מכיוון שכמות נתוני המסגרת הלא דחוסים יכולה להיות גדולה מאוד אם גודל הווידאו גדול.
- פרמטרים
לְאַפשֵׁר אם נכון להורות למצלמה HAL לאחסן מטא נתונים במאגרי הווידאו; false להורות למצלמה HAL לאחסן נתוני YUV אמיתיים במאגרי הווידאו.
- החזרות
- בסדר לגבי ההצלחה.
int(* take_picture)(struct camera_device *) |
התיעוד עבור מבנה זה נוצר מהקובץ הבא:
- hardware/libhardware/include/hardware/ camera.h