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)
 

पूरी जानकारी

परिभाषा, camera.h फ़ाइल की लाइन 99 पर दी गई है.

फ़ील्ड का दस्तावेज़

int(* auto_focus)(struct camera_device *)

ऑटो फ़ोकस शुरू करें. फ़ोकस पूरा होने पर, सूचना कॉलबैक रूटीन को CAMERA_MSG_FOCUS के साथ एक बार कॉल किया जाता है. अगर किसी और ऑटो फ़ोकस की ज़रूरत पड़ती है, तो autoFocus() को फिर से कॉल किया जाएगा.

परिभाषा, फ़ाइल camera.h की लाइन 227 पर दी गई है.

int(* cancel_auto_focus)(struct camera_device *)

ऑटो-फ़ोकस की सुविधा रद्द करता है. अगर ऑटो-फ़ोकस की सुविधा अब भी चालू है, तो यह फ़ंक्शन उसे रद्द कर देगा. ऑटो-फ़ोकस की सुविधा चालू हो या नहीं, यह फ़ंक्शन फ़ोकस की पोज़िशन को डिफ़ॉल्ट पर सेट कर देगा. अगर कैमरे में ऑटो-फ़ोकस की सुविधा नहीं है, तो यह सुविधा काम नहीं करेगी.

परिभाषा, camera.h फ़ाइल की लाइन 235 पर दी गई है.

int(* cancel_picture)(struct camera_device *)

takePicture फ़ंक्शन की मदद से शुरू की गई फ़ोटो खींचने की प्रोसेस को रद्द करना. अगर कोई फ़ोटो नहीं ली जा रही है, तो इस तरीके को कॉल करने का कोई फ़ायदा नहीं है.

परिभाषा, camera.h फ़ाइल की लाइन 246 पर दी गई है.

void(* disable_msg_type)(struct camera_device *, int32_t msg_type)

किसी मैसेज या मैसेज के सेट को बंद करना.

disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल मिलने के बाद, कैमरा एचएएल को अपने क्लाइंट पर भरोसा नहीं करना चाहिए. ऐसा इसलिए, ताकि releaseRecordingFrame() को कॉल करके, कैमरा एचएएल से भेजे गए वीडियो रिकॉर्डिंग फ़्रेम को रिलीज़ किया जा सके. ये फ़्रेम, disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल से पहले और बाद में भेजे जाते हैं. Camera HAL क्लाइंट को disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने के बाद, किसी भी वीडियो रिकॉर्डिंग फ़्रेम में बदलाव नहीं करना चाहिए या उसे ऐक्सेस नहीं करना चाहिए.

परिभाषा, camera.h फ़ाइल की लाइन 132 पर दी गई है .

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

कैमरे के हार्डवेयर की स्थिति का डंप

परिभाषा, camera.h फ़ाइल की लाइन 282 पर दी गई है.

void(* enable_msg_type)(struct camera_device *, int32_t msg_type)

यहां दिए गए तीनों फ़ंक्शन में msg_type पैरामीटर का इस्तेमाल किया जाता है. यह include/ui/Camera.h में बताए गए मैसेज का बिटमास्क होता है. यह किसी मैसेज या मैसेज के सेट को चालू करता है.

परिभाषा, camera.h फ़ाइल की लाइन 120 पर दी गई है.

char*(* get_parameters)(struct camera_device *)

कैमरे के पैरामीटर वापस पाएं. अगर put_parameters शून्य नहीं है, तो कैमरा एचएएल से मिले बफ़र को put_parameters की मदद से उसे वापस भेजना होगा.

परिभाषा, camera.h फ़ाइल की लाइन 258 पर दी गई है.

int(* msg_type_enabled)(struct camera_device *, int32_t msg_type)

यह क्वेरी करें कि कोई मैसेज या मैसेज का कोई सेट चालू है या नहीं. ध्यान दें कि यह AND फ़ंक्शन की तरह काम करता है. अगर क्वेरी किए गए किसी भी मैसेज की सूचनाएं बंद हैं, तो यह गलत के तौर पर दिखेगा.

परिभाषा, फ़ाइल camera.h की लाइन 139 पर दी गई है.

int(* preview_enabled)(struct camera_device *)

अगर झलक दिखाने की सुविधा चालू है, तो यह 'सही' दिखाता है.

परिभाषा, फ़ाइल camera.h की लाइन 154 पर दी गई है.

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

get_parameters को कॉल करने पर, कैमरा एचएएल हमें पैरामीटर भेजने के लिए अपनी मेमोरी का इस्तेमाल करता है. अगर put_parameters NULL नहीं है, तो कैमरा एचएएल को मेमोरी वापस करने के लिए, इस फ़ंक्शन का इस्तेमाल करें. अगर put_parameters NULL है, तो मेमोरी खाली करने के लिए आपको free() का इस्तेमाल करना होगा.

परिभाषा, camera.h फ़ाइल की लाइन 265 पर दी गई है.

int(* recording_enabled)(struct camera_device *)

रिकॉर्डिंग की सुविधा चालू होने पर, 'सही' दिखाता है.

परिभाषा, camera.h फ़ाइल की लाइन 208 पर दी गई है.

void(* release)(struct camera_device *)

इस ऑब्जेक्ट के मालिकाना हक वाले हार्डवेयर संसाधनों को रिलीज़ करें. ध्यान दें कि यह काम, डिस्ट्रॉयर में नहीं किया जाता .

परिभाषा, camera.h फ़ाइल की लाइन 277 पर दी गई है.

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

CAMERA_MSG_VIDEO_FRAME से पहले रिकॉर्ड किया गया फ़्रेम रिलीज़ करें.

कैमरा एचएएल क्लाइंट की ज़िम्मेदारी है कि वह कैमरा एचएएल से भेजे गए वीडियो रिकॉर्डिंग फ़्रेम को रिलीज़ करे. ऐसा तब करना होगा, जब कैमरा एचएएल को disableMsgType(CAMERA_MSG_VIDEO_FRAME) का कॉल मिले. disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल मिलने के बाद, वीडियो रिकॉर्डिंग फ़्रेम के लाइफ़-साइकल को मैनेज करना, कैमरा एचएएल की ज़िम्मेदारी होती है.

परिभाषा, camera.h फ़ाइल की पंक्ति 219 पर दी गई है.

int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)

कैमरे के ड्राइवर को निर्देश भेजें.

परिभाषा, camera.h फ़ाइल की लाइन 270 पर दी गई है.

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)

सूचना और डेटा कॉलबैक सेट करना

परिभाषा, camera.h फ़ाइल की लाइन 105 पर दी गई है.

int(* set_parameters)(struct camera_device *, const char *parms)

कैमरे के पैरामीटर सेट करें. अगर कोई पैरामीटर अमान्य है या काम नहीं करता है, तो यह BAD_VALUE दिखाता है.

परिभाषा, camera.h फ़ाइल की लाइन 252 पर दी गई है.

int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window)

वह ANativeWindow सेट करें जिस पर झलक के फ़्रेम भेजे जाते हैं

परिभाषा, camera.h फ़ाइल की लाइन 101 पर दी गई है.

int(* start_preview)(struct camera_device *)

झलक मोड चालू करें.

परिभाषा, camera.h फ़ाइल की लाइन 144 पर दी गई है.

int(* start_recording)(struct camera_device *)

रिकॉर्ड मोड चालू करें. रिकॉर्ड की गई इमेज उपलब्ध होने पर, उससे जुड़े फ़्रेम के साथ CAMERA_MSG_VIDEO_FRAME मैसेज भेजा जाता है. क्लाइंट के disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने से पहले, कैमरा एचएएल क्लाइंट को releaseRecordingFrame() की मदद से हर रिकॉर्ड फ़्रेम को रिलीज़ करना होगा. क्लाइंट के disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने के बाद, वीडियो रिकॉर्डिंग फ़्रेम के लाइफ़-साइकल को मैनेज करने की ज़िम्मेदारी कैमरा एचएएल की होती है. साथ ही, क्लाइंट को किसी भी वीडियो रिकॉर्डिंग फ़्रेम में बदलाव नहीं करना चाहिए या उसे ऐक्सेस नहीं करना चाहिए.

परिभाषा, camera.h फ़ाइल की लाइन 198 पर दी गई है.

void(* stop_preview)(struct camera_device *)

पहले से चल रही झलक को रोकना.

परिभाषा, camera.h फ़ाइल की लाइन 149 पर दी गई है.

void(* stop_recording)(struct camera_device *)

पहले से शुरू की गई रिकॉर्डिंग को बंद करना.

परिभाषा, camera.h फ़ाइल की लाइन 203 पर दी गई है.

int(* store_meta_data_in_buffers)(struct camera_device *, int enable)

रिकॉर्डिंग सेशन के लिए, CAMERA_MSG_VIDEO_FRAME के ज़रिए भेजे गए वीडियो बफ़र में मेटाडेटा या असल YUV डेटा सेव करने के लिए, कैमरा एचएएल से अनुरोध करें. अगर इसे कॉल नहीं किया जाता है, तो कैमरा एचएएल का डिफ़ॉल्ट व्यवहार, वीडियो बफ़र में रीयल YUV डेटा को सेव करना है.

यह मेथड असरदार हो, इसके लिए इसे startRecording() से पहले कॉल किया जाना चाहिए.

अगर मेटाडेटा, वीडियो बफ़र में सेव किया जाता है, तो वीडियो बफ़र पाने वाले व्यक्ति को कॉन्टेंट का विश्लेषण करना होता है. साथ ही, बफ़र में मौजूद मेटाडेटा की मदद से, असल फ़्रेम डेटा ढूंढना होता है. यह कैसे किया जाता है, यह इस तरीके के दायरे से बाहर है.

ऐसा हो सकता है कि कुछ कैमरा एचएएल, वीडियो बफ़र में मेटाडेटा सेव करने की सुविधा न देते हों. हालांकि, सभी कैमरा एचएएल को वीडियो बफ़र में रीयल YUV डेटा सेव करने की सुविधा देनी चाहिए. अगर कैमरा एचएएल, वीडियो बफ़र में मेटाडेटा को सेव करने की सुविधा नहीं देता है, तो INVALID_OPERATION को दिखाया जाना चाहिए. कैमरा एचएएल के लिए, सीधे वीडियो एन्कोडर को असल फ़्रेम डेटा के बजाय मेटाडेटा पास करना काफ़ी फ़ायदेमंद होता है. इसकी वजह यह है कि वीडियो का साइज़ बड़ा होने पर, अनकंप्रेस किए गए फ़्रेम डेटा का साइज़ बहुत बड़ा हो सकता है.

पैरामीटर
चालू करो अगर सही है, तो कैमरा एचएएल को वीडियो बफ़र में मेटाडेटा सेव करने का निर्देश दें. अगर गलत है, तो कैमरा एचएएल को वीडियो बफ़र में रीयल YUV डेटा सेव करने का निर्देश दें.
रिटर्न
OK on success.

परिभाषा, camera.h फ़ाइल की लाइन 186 पर दी गई है.

int(* take_picture)(struct camera_device *)

फ़ोटो लें.

परिभाषा, camera.h फ़ाइल की लाइन 240 पर दी गई है.


इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था: