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 *)
خالی(* انتشار_قاب_ضبط )(ساخت دوربین_دستگاه *، خالی ماندن *مدر)
int(* فوکوس_خودکار )(ساخت دوربین_دستگاه *)
int(* cancel_auto_focus )(ساخت دوربین_دستگاه *)
int(* take_picture )(struct camera_device *)
int(* cancel_picture )(struct camera_device *)
int(* set_parameters ) (struct camera_device *، const char *parms)
کاراکتر *(* 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)
خالی(* انتشار )(struct camera_device *)
int(* dump )(struct camera_device *, int fd)

توصیف همراه با جزئیات

تعریف در خط 99 فایل camera.h .

مستندات میدانی

int(* فوکوس_خودکار)(ساخت دوربین_دستگاه *)

فوکوس خودکار را شروع کنید، روال برگشت تماس اعلان یک بار پس از تکمیل فوکوس با CAMERA_MSG_FOCUS فراخوانی می شود. در صورت نیاز به فوکوس خودکار دیگری () autoFocus دوباره فراخوانی می شود.

تعریف در خط 227 فایل camera.h .

int(* cancel_auto_focus)(structure 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)

وضعیت تخلیه سخت افزار دوربین

تعریف در خط 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 به ​​ما ارسال کند. اگر put_parameters NULL نباشد، از این تابع برای برگرداندن حافظه به دوربین HAL استفاده کنید. اگر put_parameters NULL باشد، باید از free() برای آزاد کردن حافظه استفاده کنید.

تعریف در خط 265 فایل camera.h .

int(* recording_enabled)(struct camera_device *)

در صورت فعال بودن ضبط، true را برمی‌گرداند.

تعریف در خط 208 فایل camera.h .

void(* release)(struct camera_device *)

منابع سخت افزاری متعلق به این شی را آزاد کنید. توجه داشته باشید که این کار در Destructor انجام نمی شود.

تعریف در خط 277 فایل camera.h .

void(* release_recording_frame)(structure 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 .

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 با قاب مربوطه ارسال می شود. قبل از اینکه کلاینت disableMsgType (CAMERA_MSG_VIDEO_FRAME) را فراخوانی کند، هر فریم رکورد باید توسط یک مشتری HAL دوربین از طریق releaseRecordingFrame() منتشر شود. پس از اینکه کلاینت با disableMsgType (CAMERA_MSG_VIDEO_FRAME) تماس گرفت، مسئولیت HAL دوربین است که چرخه عمر فریم های ضبط ویدیو را مدیریت کند و کلاینت نباید هیچ فریم ضبط ویدیویی را تغییر دهد/دسترسی داشته باشد.

تعریف در خط 198 فایل camera.h .

void(* stop_preview)(structure camera_device *)

توقف پیش‌نمایش از قبل شروع شده

تعریف در خط 149 فایل camera.h .

void(* stop_recording)(ساخت دوربین_دستگاه *)

ضبط از قبل شروع شده را متوقف کنید.

تعریف در خط 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 دوربین بسیار مفید است که متا داده ها را به جای داده های فریم واقعی به طور مستقیم به رمزگذار ویدیو ارسال کند، زیرا اگر اندازه ویدیو بزرگ باشد، مقدار داده های فریم فشرده نشده می تواند بسیار زیاد باشد.

مولفه های
فعال کردن اگر درست است به HAL دوربین دستور دهید تا داده های متا را در بافرهای ویدیو ذخیره کند. false برای دستور HAL دوربین برای ذخیره داده های واقعی YUV در بافرهای ویدئویی.
برمی گرداند
باشه برای موفقیت

تعریف در خط 186 فایل camera.h .

int(* take_picture)(struct camera_device *)

یک عکس بگیر.

تعریف در خط 240 فایل camera.h .


مستندات این ساختار از فایل زیر تولید شده است:
  • hardware/libhardware/include/hardware/ camera.h