مرجع بنية camera_device_ops

مرجع بنية 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 .

مستندات الحقل

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)

إيقاف رسالة أو مجموعة من الرسائل

بعد تلقّي طلب لإيقاف MsgType(CAMERA_MSG_VIDEO_FRAME)، يجب ألا يعتمد معرّف HAL للكاميرا على العميل لطلب releaseRecordingFrame() لتحرير لقطات تسجيل الفيديو التي أرسلها معرّف HAL للكاميرا قبل طلب إيقاف MsgType(CAMERA_MSG_VIDEO_FRAME) وبعده. يجب ألا تعدِّل عملاء Camera HAL أي إطار لتسجيل الفيديو أو تصل إليه بعد استدعاء disableMsgType(CAMERA_MSG_VIDEO_FRAME).

التعريف في السطر 132 من الملف camera.h .

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

تفريغ حالة أجهزة الكاميرا

التعريف في السطر 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 *)

تعرِض هذه الدالة القيمة "صحيح" إذا كانت ميزة المعاينة مفعَّلة.

التعريف في السطر 154 من الملف camera.h .

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

يستخدم HAL للكاميرا ذاكرته الخاصة لتمرير المَعلمات إلينا عند استدعاء get_parameters. استخدِم هذه الدالة لإعادة الذاكرة إلى HAL للكاميرا، إذا لم تكن put_parameters فارغة. إذا كانت put_parameters فارغة، عليك استخدام free() لتحرير الذاكرة.

التعريف في السطر 265 من الملف camera.h .

int(* recording_enabled)(struct camera_device *)

تعرِض هذه الدالة القيمة true إذا كان التسجيل مفعَّلاً.

التعريف في السطر 208 من الملف camera.h .

void(* release)(struct camera_device *)

تحرير موارد الأجهزة التي يملكها هذا العنصر يُرجى العِلم أنّه تتم عدم ذلك في الدالة المخصّصة لتدمير العنصر.

التعريف في السطر 277 من الملف camera.h .

void(* release_recording_frame)(struct camera_device *, const void *opaque)

تحرير إطار تسجيل تم إرجاعه سابقًا من خلال CAMERA_MSG_VIDEO_FRAME

تقع على عاتق العميل في HAL للكاميرا مسؤولية تحرير لقطات تسجيل الفيديو التي ترسلها طبقة HAL للكاميرا قبل أن تتلقّى طبقة HAL للكاميرا طلبًا لإيقاف MsgType(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() لكي تكون فعّالة.

في حال تخزين البيانات الوصفية في ذاكرة التخزين المؤقت للفيديوهات، يكون على جهاز الاستقبال تفسير المحتوى والعثور على بيانات اللقطات الفعلية باستخدام البيانات الوصفية في ذاكرة التخزين المؤقت. لا يتناول هذا المقال كيفية إجراء ذلك.

قد لا تتوافق بعض طبقات HAL للكاميرا مع تخزين البيانات الوصفية في ذاكرة التخزين المؤقت للفيديو، ولكن من المفترض أن تتوافق جميع طبقات HAL للكاميرا مع تخزين بيانات YUV الحقيقية في ذاكرة التخزين المؤقت للفيديو. إذا كانت طبقة HAL للكاميرا لا تتيح تخزين البيانات الوصفية في ذاكرة التخزين المؤقت للفيديو عند طلب ذلك، يجب عرض INVALID_OPERATION. من المفيد جدًا أن يُرسِل HAL للكاميرا البيانات الوصفية بدلاً من بيانات اللقطات الفعلية مباشرةً إلى برنامج ترميز الفيديو، لأنّ مقدار بيانات اللقطات غير المضغوطة يمكن أن يكون كبيرًا جدًا إذا كان حجم الفيديو كبيرًا.

المعلمات
تفعيل إذا كانت القيمة "true"، يتم توجيه HAL للكاميرا لتخزين البيانات الوصفية في ذاكرة التخزين المؤقت للفيديو. إذا كانت القيمة "false"، يتم توجيه HAL للكاميرا لتخزين بيانات YUV الحقيقية في ذاكرة التخزين المؤقت للفيديو.
المرتجعات
حسنًا.

التعريف في السطر 186 من الملف camera.h .

int(* take_picture)(struct camera_device *)

التقط صورة.

التعريف في السطر 240 من الملف camera.h .


تم إنشاء مستندات هذه البنية من الملف التالي: