camera_device_ops স্ট্রাকট রেফারেন্স
#include < camera.h >
ডেটা ক্ষেত্র | |
int(* | set_preview_window )(struct camera_device *, struct preview_stream_ops *উইন্ডো) |
অকার্যকর(* | 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(* | পূর্বরূপ_সক্ষম )( কামরা_ডিভাইস *) |
int(* | store_meta_data_in_buffers )(struct camera_device *, int enable) |
int(* | start_recording )(struct camera_device *) |
অকার্যকর(* | স্টপ_রেকর্ডিং )( কামরা_ডিভাইস *) |
int(* | রেকর্ডিং_সক্ষম )( কামরা_ডিভাইস *) |
অকার্যকর(* | রিলিজ_রেকর্ডিং_ফ্রেম )(স্ট্রাকট ক্যামেরা_ডিভাইস *, কনস্ট void *অস্বচ্ছ) |
int(* | অটো_ফোকাস )( কামরা_ডিভাইস *) |
int(* | cancel_auto_focus )(struct camera_device *) |
int(* | টেক_পিকচার )( কামরা_ডিভাইস *) |
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) |
অকার্যকর(* | মুক্তি )( কামরা_ডিভাইস *) |
int(* | ডাম্প )(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) |
একটি বার্তা, বা বার্তাগুলির একটি সেট অক্ষম করুন৷
একবার নিষ্ক্রিয়MsgType(CAMERA_MSG_VIDEO_FRAME) কল করার জন্য, ক্যামেরা HAL কে তার ক্লায়েন্টের উপর নির্ভর করা উচিত নয় রিলিজ রেকর্ডিংফ্রেম() কে নিষ্ক্রিয়MsgType(CAMERA_MSG_VIDEO_FRAME) কলের আগে এবং পরে ক্যামেরাল HAL দ্বারা পাঠানো ভিডিও রেকর্ডিং ফ্রেমগুলি প্রকাশ করতে। ক্যামেরা HAL ক্লায়েন্টদের অবশ্যই disableMsgType(CAMERA_MSG_VIDEO_FRAME) কল করার পরে কোনও ভিডিও রেকর্ডিং ফ্রেম পরিবর্তন/অ্যাক্সেস করা উচিত নয়৷
int(* ডাম্প)(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 *) |
যখন আমরা get_parameters কল করি তখন ক্যামেরা HAL আমাদের প্যারামিটার পাস করতে তার নিজস্ব মেমরি ব্যবহার করে। পুট_প্যারামিটার NULL না হলে ক্যামেরা HAL-এ মেমরি ফিরিয়ে দিতে এই ফাংশনটি ব্যবহার করুন। যদি put_parameters NULL হয়, তাহলে আপনাকে মেমরি রিলিজ করতে free() ব্যবহার করতে হবে।
int(* recording_enabled)(struct camera_device *) |
অকার্যকর (* প্রকাশ) (কাঠামো ক্যামেরা_ডিভাইস *) |
void(* release_recording_frame)(struct camera_device *, const void *অস্বচ্ছ) |
CAMERA_MSG_VIDEO_FRAME দ্বারা পূর্বে ফিরে আসা একটি রেকর্ড ফ্রেম প্রকাশ করুন৷
ক্যামেরা HAL ক্লায়েন্টের দায়িত্ব হল ক্যামেরা HAL দ্বারা পাঠানো ভিডিও রেকর্ডিং ফ্রেমগুলি রিলিজ করার আগে ক্যামেরা HAL-এর দ্বারা নিষ্ক্রিয়MsgType(CAMERA_MSG_VIDEO_FRAME) করার জন্য একটি কল আসে৷ এটি নিষ্ক্রিয়MsgType(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 বার্তা পাঠানো হয়। ক্লায়েন্ট নিষ্ক্রিয়MsgType(CAMERA_MSG_VIDEO_FRAME) কল করার আগে প্রতিটি রেকর্ড ফ্রেম অবশ্যই একটি ক্যামেরা HAL ক্লায়েন্ট দ্বারা releaseRecordingFrame() এর মাধ্যমে প্রকাশ করতে হবে। ক্লায়েন্ট নিষ্ক্রিয়MsgType(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 সক্ষম) |
একটি রেকর্ডিং সেশনের জন্য CAMERA_MSG_VIDEO_FRAME এর মাধ্যমে পাঠানো ভিডিও বাফারগুলিতে মেটা ডেটা বা বাস্তব YUV ডেটা সঞ্চয় করার জন্য ক্যামেরা HAL-কে অনুরোধ করুন৷ যদি এটি বলা না হয়, ডিফল্ট ক্যামেরা HAL আচরণ হল ভিডিও বাফারগুলিতে বাস্তব YUV ডেটা সংরক্ষণ করা।
কার্যকর হওয়ার জন্য startRecording() এর আগে এই পদ্ধতিটি কল করা উচিত।
যদি ভিডিও বাফারগুলিতে মেটা ডেটা সংরক্ষণ করা হয়, তবে বিষয়বস্তুগুলি ব্যাখ্যা করা এবং বাফারে মেটা ডেটার সাহায্যে প্রকৃত ফ্রেম ডেটা খুঁজে বের করা ভিডিও বাফারগুলির রিসিভারের উপর নির্ভর করে। এটি কীভাবে করা হয় তা এই পদ্ধতির সুযোগের বাইরে।
কিছু ক্যামেরা HALs ভিডিও বাফারে মেটা ডেটা সংরক্ষণ করা সমর্থন নাও করতে পারে, তবে সমস্ত ক্যামেরা HAL-এর উচিত ভিডিও বাফারে প্রকৃত YUV ডেটা সংরক্ষণ করা সমর্থন করা। যদি ক্যামেরা HAL ভিডিও বাফারে মেটা ডেটা সংরক্ষণ করা সমর্থন না করে যখন এটি করার অনুরোধ করা হয়, INVALID_OPERATION অবশ্যই ফেরত দিতে হবে৷ ভিডিও এনকোডারে সরাসরি প্রকৃত ফ্রেম ডেটার পরিবর্তে মেটা ডেটা পাস করার জন্য ক্যামেরা HAL-এর পক্ষে খুবই উপযোগী, যেহেতু ভিডিওর আকার বড় হলে অসংকুচিত ফ্রেম ডেটার পরিমাণ খুব বড় হতে পারে।
- পরামিতি
সক্ষম ভিডিও বাফারে মেটা ডেটা সঞ্চয় করার জন্য ক্যামেরা HAL-কে নির্দেশ দেওয়ার জন্য সত্য হলে; ভিডিও বাফারে বাস্তব YUV ডেটা সংরক্ষণ করার জন্য ক্যামেরা HAL-কে নির্দেশ দেওয়ার জন্য মিথ্যা।
- রিটার্নস
- সাফল্যের উপর ঠিক আছে.
int(* take_picture)(struct camera_device *) |
এই কাঠামোর জন্য ডকুমেন্টেশন নিম্নলিখিত ফাইল থেকে তৈরি করা হয়েছিল:
- hardware/libhardware/include/hardware/ camera.h