camera_device_ops مرجع ساختار
#include < camera.h >
توصیف همراه با جزئیات
مستندات میدانی
int(* فوکوس_خودکار)(ساخت دوربین_دستگاه *) |
int(* cancel_auto_focus)(structure 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 *) |
دوربین HAL از حافظه خود استفاده می کند تا پارامترها را هنگام فراخوانی get_parameters به ما ارسال کند. اگر put_parameters NULL نباشد، از این تابع برای برگرداندن حافظه به دوربین HAL استفاده کنید. اگر put_parameters NULL باشد، باید از free() برای آزاد کردن حافظه استفاده کنید.
int(* recording_enabled)(struct camera_device *) |
void(* release)(struct camera_device *) |
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 دوربین است که چرخه عمر فریم های ضبط ویدیو را مدیریت کند.
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 با قاب مربوطه ارسال می شود. قبل از اینکه کلاینت disableMsgType (CAMERA_MSG_VIDEO_FRAME) را فراخوانی کند، هر فریم رکورد باید توسط یک مشتری HAL دوربین از طریق releaseRecordingFrame() منتشر شود. پس از اینکه کلاینت با disableMsgType (CAMERA_MSG_VIDEO_FRAME) تماس گرفت، مسئولیت HAL دوربین است که چرخه عمر فریم های ضبط ویدیو را مدیریت کند و کلاینت نباید هیچ فریم ضبط ویدیویی را تغییر دهد/دسترسی داشته باشد.
void(* stop_preview)(structure camera_device *) |
void(* stop_recording)(ساخت دوربین_دستگاه *) |
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 در بافرهای ویدئویی.
- برمی گرداند
- باشه برای موفقیت
int(* take_picture)(struct camera_device *) |
مستندات این ساختار از فایل زیر تولید شده است:
- hardware/libhardware/include/hardware/ camera.h