החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
מידע על המבנה camera_device_ops
#include <
camera.h
>
|
int(*
|
set_preview_window
)(struct
camera_device
*, struct
preview_stream_ops
*window)
|
|
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)
|
|
void(*
|
enable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
void(*
|
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
*)
|
|
void(*
|
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
*)
|
|
void(*
|
stop_recording
)(struct
camera_device
*)
|
|
int(*
|
recording_enabled
)(struct
camera_device
*)
|
|
void(*
|
release_recording_frame
)(struct
camera_device
*, const void *opaque)
|
|
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
*)
|
|
void(*
|
put_parameters
)(struct
camera_device
*, char *)
|
|
int(*
|
send_command
)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
|
void(*
|
release
)(struct
camera_device
*)
|
|
int(*
|
dump
)(struct
camera_device
*, int fd)
|
|
ההגדרה מופיעה בשורה
99
בקובץ
camera.h
.
מתחילים מיקוד אוטומטי. פונקציית ה-callback של ההתראה נקראת עם CAMERA_MSG_FOCUS פעם אחת כשהמיקוד מסתיים. הפונקציה autoFocus() תופעל שוב אם יהיה צורך במיקוד אוטומטי נוסף.
ההגדרה מופיעה בשורה
227
בקובץ
camera.h
.
ביטול הפונקציה של המיקוד האוטומטי. אם המיקוד האוטומטי עדיין מתבצע, הפונקציה הזו תבטל אותו. הפונקציה הזו תחזיר את מיקום המיקוד לברירת המחדל, גם אם המיקוד האוטומטי מתבצע וגם אם לא. אם המצלמה לא תומכת בפוקוס אוטומטי, הפעולה הזו לא תתבצע.
ההגדרה מופיעה בשורה
235
בקובץ
camera.h
.
ביטול צילום שהחל באמצעות 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
.
יצירת תמונת מצב של חומרת המצלמה
ההגדרה מופיעה בשורה
282
בקובץ
camera.h
.
void(* enable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
שלוש הפונקציות הבאות מקבלות msg_type, שהוא מסכת ביט של ההודעות שמוגדרות בקובץ include/ui/Camera.h. הפעלת הודעה או קבוצת הודעות.
ההגדרה מופיעה בשורה
120
בקובץ
camera.h
.
אחזור הפרמטרים של המצלמה. אם put_parameters לא שווה NULL, צריך להחזיר את המאגר שה-HAL של המצלמה מחזיר אליו באמצעות put_parameters.
ההגדרה מופיעה בשורה
258
בקובץ
camera.h
.
int(* msg_type_enabled)(struct
camera_device
*, int32_t msg_type)
|
שאילתות לגבי הפעלה של הודעה או קבוצת הודעות. הערה: הפונקציה פועלת כ-AND. אם אחת מההודעות שעבורן בוצעה השאילתה מושבתת, הפונקציה תחזיר את הערך false.
ההגדרה מופיעה בשורה
139
בקובץ
camera.h
.
הפונקציה מחזירה את הערך true אם התצוגה המקדימה מופעלת.
ההגדרה מופיעה בשורה
154
בקובץ
camera.h
.
ה-HAL של המצלמה משתמש בזיכרון משלו כדי להעביר לנו את הפרמטרים כשאנחנו קוראים ל-get_parameters. משתמשים בפונקציה הזו כדי להחזיר את הזיכרון ל-HAL של המצלמה, אם put_parameters הוא לא NULL. אם put_parameters הוא NULL, צריך להשתמש ב-free() כדי לפנות את הזיכרון.
ההגדרה מופיעה בשורה
265
בקובץ
camera.h
.
הפונקציה מחזירה את הערך true אם ההקלטה מופעלת.
ההגדרה מופיעה בשורה
208
בקובץ
camera.h
.
שחרור משאבי החומרה שבבעלות האובייקט הזה. חשוב לזכור ש
לא
עושים זאת במבנה ההרס.
ההגדרה מופיעה בשורה
277
בקובץ
camera.h
.
void(* release_recording_frame)(struct
camera_device
*, const void *opaque)
|
שחרור של פריים הקלטה שהוחזר בעבר על ידי 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
.
הגדרת קריאות החזרה (callbacks) של ההתראות והנתונים
ההגדרה מופיעה בשורה
105
בקובץ
camera.h
.
מגדירים את הפרמטרים של המצלמה. הפונקציה מחזירה את הערך BAD_VALUE אם פרמטר כלשהו לא תקין או לא נתמך.
ההגדרה מופיעה בשורה
252
בקובץ
camera.h
.
הגדרת ANativeWindow שאליו נשלחות מסגרות התצוגה המקדימה
ההגדרה מופיעה בשורה
101
בקובץ
camera.h
.
מפעילים את מצב התצוגה המקדימה.
ההגדרה מופיעה בשורה
144
בקובץ
camera.h
.
מפעילים את מצב ההקלטה. כשיש תמונה שזמינה להקלטה, נשלחת הודעת CAMERA_MSG_VIDEO_FRAME עם הפריים התואם. כל פריים שרוצים לתעד צריך להשתחרר על ידי לקוח HAL של מצלמה באמצעות releaseRecordingFrame() לפני שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME). אחרי שהלקוח קורא ל-disableMsgType(CAMERA_MSG_VIDEO_FRAME), ה-HAL של המצלמה אחראי לנהל את מחזור החיים של הפריימים של הקלטת הווידאו, והלקוח לא רשאי לשנות או לגשת לפריימים של הקלטת הווידאו.
ההגדרה מופיעה בשורה
198
בקובץ
camera.h
.
להפסיק קטע שמע לדוגמה שהתחילו לצפות בו.
ההגדרה מופיעה בשורה
149
בקובץ
camera.h
.
להפסיק הקלטה שהתחילה קודם.
ההגדרה מופיעה בשורה
203
בקובץ
camera.h
.
int(* store_meta_data_in_buffers)(struct
camera_device
*, int enable)
|
מבקשים מ-HAL של המצלמה לשמור מטא-נתונים או נתוני YUV אמיתיים במאגרי הווידאו שנשלחים דרך CAMERA_MSG_VIDEO_FRAME לסשן הקלטה. אם לא קוראים ל-HAL, ברירת המחדל של המצלמה היא לאחסן נתוני YUV אמיתיים במאגרי הווידאו.
כדי שהשיטה הזו תהיה יעילה, צריך לקרוא לה לפני startRecording().
אם המטא-נתונים מאוחסנים במאגרי הווידאו, המקבל של מאגרי הווידאו צריך לפרש את התוכן ולמצוא את נתוני המסגרת בפועל בעזרת המטא-נתונים במאגר. האופן שבו זה נעשה לא נכלל בהיקף של השיטה הזו.
יכול להיות שחלק מ-HAL של המצלמה לא יתמכו באחסון מטא-נתונים במאגרי הווידאו, אבל כל ה-HAL של המצלמה אמורים לתמוך באחסון נתוני YUV אמיתיים במאגרי הווידאו. אם HAL המצלמה לא תומך בשמירת המטא-נתונים במאגרי הווידאו כשמתבקשים לעשות זאת, צריך להחזיר את הערך INVALID_OPERATION. מומלץ מאוד שה-HAL של המצלמה יעביר מטא-נתונים במקום את נתוני המסגרת בפועל ישירות למקודד הווידאו, כי כמות נתוני המסגרת הלא דחוסים יכולה להיות גדולה מאוד אם גודל הסרטון גדול.
-
פרמטרים
-
הפעלה
|
אם הערך הוא true, ה-HAL של המצלמה יורה לאחסן מטא-נתונים במאגרי הווידאו. אם הערך הוא false, ה-HAL של המצלמה יורה לאחסן נתוני YUV אמיתיים במאגרי הווידאו.
|
-
החזרות
-
OK על הצלחה.
ההגדרה מופיעה בשורה
186
בקובץ
camera.h
.
התיעוד של המבנה הזה נוצר מהקובץ הבא:
-
hardware/libhardware/include/hardware/
camera.h
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-03-26 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-03-26 (שעון UTC)."],[],[]]