कैमरा_डिवाइस_ऑप्स संरचना संदर्भ

कैमरा_डिवाइस_ऑप्स संरचना संदर्भ

#include < camera.h >

डेटा फ़ील्ड

पूर्णांक(* सेट_प्रीव्यू_विंडो )(स्ट्रक्चर कैमरा_डिवाइस *, स्ट्रक्चर प्रीव्यू_स्ट्रीम_ऑप्स *विंडो)
खालीपन(* सेट_कॉलबैक )(स्ट्रक्चर कैमरा_डिवाइस *, कैमरा_नोटिफ़ाइ_कॉलबैक नोटिफाई_सीबी, कैमरा_डेटा_कॉलबैक डेटा_सीबी, कैमरा_डेटा_टाइमस्टैम्प_कॉलबैक डेटा_सीबी_टाइमस्टैम्प, कैमरा_रिक्वेस्ट_मेमोरी गेट_मेमोरी, शून्य *उपयोगकर्ता)
खालीपन(* Enable_msg_type )(struct कैमरा_डिवाइस *, int32_t msg_type)
खालीपन(* disable_msg_type )(struct कैमरा_डिवाइस *, int32_t msg_type)
पूर्णांक(* msg_type_enabled )(struct कैमरा_डिवाइस *, int32_t msg_type)
पूर्णांक(* प्रारंभ_पूर्वावलोकन )(संरचना कैमरा_डिवाइस *)
खालीपन(* stop_preview )(struct कैमरा_डिवाइस *)
पूर्णांक(* पूर्वावलोकन_सक्षम )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* स्टोर_मेटा_डेटा_इन_बफ़र्स )(स्ट्रक्चर कैमरा_डिवाइस *, इंट इनेबल)
पूर्णांक(* स्टार्ट_रिकॉर्डिंग )(स्ट्रक्चर कैमरा_डिवाइस *)
खालीपन(* स्टॉप_रिकॉर्डिंग )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* रिकॉर्डिंग_सक्षम )(स्ट्रक्चर कैमरा_डिवाइस *)
खालीपन(* रिलीज_रिकॉर्डिंग_फ्रेम )(स्ट्रक्चर कैमरा_डिवाइस *, स्थिरांक शून्य *अपारदर्शी)
पूर्णांक(* ऑटो_फोकस )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* कैंसिल_ऑटो_फोकस )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* टेक_पिक्चर )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* कैंसिल_पिक्चर )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* सेट_पैरामीटर )(स्ट्रक्चर कैमरा_डिवाइस *, स्थिरांक चार *पार्म्स)
चार *(* get_parameters )(struct कैमरा_डिवाइस *)
खालीपन(* पुट_पैरामीटर )(स्ट्रक्चर कैमरा_डिवाइस *, चार *)
पूर्णांक(* भेजें_कमांड )(स्ट्रक्चर कैमरा_डिवाइस *, int32_t cmd, int32_t arg1, int32_t arg2)
खालीपन(* रिलीज )(स्ट्रक्चर कैमरा_डिवाइस *)
पूर्णांक(* डंप )(स्ट्रक्चर कैमरा_डिवाइस *, इंट एफडी)

विस्तृत विवरण

कैमरा.एच फ़ाइल की पंक्ति 99 पर परिभाषा।

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

int(* ऑटो_फोकस)(स्ट्रक्चर कैमरा_डिवाइस *)

ऑटो फोकस प्रारंभ करें, फोकस पूरा होने पर अधिसूचना कॉलबैक रूटीन को CAMERA_MSG_FOCUS के साथ एक बार कॉल किया जाता है। यदि किसी अन्य ऑटो फोकस की आवश्यकता होगी तो ऑटोफोकस() को फिर से कॉल किया जाएगा।

कैमरा.एच फ़ाइल की पंक्ति 227 पर परिभाषा।

int(* cancel_auto_focus)(struct कैमरा_डिवाइस *)

ऑटो-फोकस फ़ंक्शन रद्द करता है। यदि ऑटो-फ़ोकस अभी भी प्रगति पर है, तो यह फ़ंक्शन इसे रद्द कर देगा। चाहे ऑटो-फ़ोकस प्रगति पर हो या नहीं, यह फ़ंक्शन फ़ोकस स्थिति को डिफ़ॉल्ट पर लौटा देगा। यदि कैमरा ऑटो-फ़ोकस का समर्थन नहीं करता है, तो यह नो-ऑप है।

कैमरा.एच फ़ाइल की पंक्ति 235 पर परिभाषा।

int(* cancel_picture)(struct कैमरा_डिवाइस *)

उस चित्र को रद्द करें जो टेकपिक्चर से प्रारंभ किया गया था। जब कोई तस्वीर नहीं ली जा रही हो तो इस विधि को कॉल करना नो-ऑप है।

कैमरा.एच फ़ाइल की पंक्ति 246 पर परिभाषा।

शून्य(* disable_msg_type)(struct कैमरा_डिवाइस *, int32_t msg_type)

किसी संदेश या संदेशों के समूह को अक्षम करें.

एक बार disableMsgType(CAMERA_MSG_VIDEO_FRAME) के लिए कॉल प्राप्त होने पर, कैमरा HAL को DisableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल से पहले और बाद में कैमराल HAL द्वारा भेजे गए वीडियो रिकॉर्डिंग फ्रेम जारी करने के लिए रिलीजरिकॉर्डिंगफ्रेम() को कॉल करने के लिए अपने क्लाइंट पर निर्भर नहीं रहना चाहिए। कैमरा एचएएल क्लाइंट को disableMsgType(CAMERA_MSG_VIDEO_FRAME) पर कॉल करने के बाद किसी भी वीडियो रिकॉर्डिंग फ्रेम को संशोधित/एक्सेस नहीं करना चाहिए।

कैमरा.एच फ़ाइल की पंक्ति 132 पर परिभाषा।

int(* डंप)(struct कैमरा_डिवाइस *, int fd)

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

कैमरा.एच फ़ाइल की पंक्ति 282 पर परिभाषा।

शून्य(* Enable_msg_type)(struct कैमरा_डिवाइस *, int32_t msg_type)

निम्नलिखित तीन फ़ंक्शन सभी एक msg_type लेते हैं, जो include/ui/Camera.h में परिभाषित संदेशों का एक बिटमास्क है, एक संदेश या संदेशों के सेट को सक्षम करें।

कैमरा.एच फ़ाइल की पंक्ति 120 पर परिभाषा।

चार*(* get_parameters)(struct कैमरा_डिवाइस *)

कैमरा पैरामीटर पुनः प्राप्त करें. यदि put_parameters NULL नहीं है, तो कैमरा HAL द्वारा लौटाए गए बफ़र को put_parameters के साथ वापस लौटाया जाना चाहिए।

कैमरा.एच फ़ाइल की पंक्ति 258 पर परिभाषा।

int(* msg_type_enabled)(struct कैमरा_डिवाइस *, int32_t msg_type)

क्वेरी करें कि क्या कोई संदेश, या संदेशों का एक सेट सक्षम है। ध्यान दें कि यह एक AND के रूप में संचालित होता है, यदि पूछा गया कोई भी संदेश बंद है, तो यह गलत परिणाम देगा।

कैमरा.एच फ़ाइल की पंक्ति 139 पर परिभाषा।

int(* पूर्वावलोकन_सक्षम)(struct कैमरा_डिवाइस *)

पूर्वावलोकन सक्षम होने पर सत्य लौटाता है।

कैमरा.एच फ़ाइल की पंक्ति 154 पर परिभाषा।

शून्य (* पुट_पैरामीटर) (स्ट्रक्चर कैमरा_डिवाइस *, चार *)

जब हम get_parameters को कॉल करते हैं तो कैमरा HAL हमें पैरामीटर पास करने के लिए अपनी मेमोरी का उपयोग करता है। यदि put_parameters NULL नहीं है, तो मेमोरी को कैमरा HAL पर वापस लौटाने के लिए इस फ़ंक्शन का उपयोग करें। यदि put_parameters NULL है, तो आपको मेमोरी जारी करने के लिए free() का उपयोग करना होगा।

कैमरा.एच फ़ाइल की पंक्ति 265 पर परिभाषा।

int(* रिकॉर्डिंग_सक्षम)(स्ट्रक्चर कैमरा_डिवाइस *)

यदि रिकॉर्डिंग सक्षम है तो सत्य लौटाता है।

कैमरा.एच फ़ाइल की पंक्ति 208 पर परिभाषा।

शून्य (* रिलीज़) (स्ट्रक्चर कैमरा_डिवाइस *)

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

कैमरा.एच फ़ाइल की पंक्ति 277 पर परिभाषा।

शून्य(* रिलीज़_रिकॉर्डिंग_फ़्रेम)(स्ट्रक्चर कैमरा_डिवाइस *, स्थिरांक शून्य *अपारदर्शी)

CAMERA_MSG_VIDEO_FRAME द्वारा पहले लौटाया गया रिकॉर्ड फ़्रेम जारी करें।

कैमरा HAL क्लाइंट की ज़िम्मेदारी है कि वह कैमरा HAL द्वारा भेजे गए वीडियो रिकॉर्डिंग फ़्रेम को तब रिलीज़ करे जब कैमरा HAL को संदेश टाइप को अक्षम करने के लिए कॉल प्राप्त हो (CAMERA_MSG_VIDEO_FRAME)। DisableMsgType(CAMERA_MSG_VIDEO_FRAME) के लिए कॉल प्राप्त होने के बाद, वीडियो रिकॉर्डिंग फ्रेम के जीवन-चक्र को प्रबंधित करना कैमरा HAL की जिम्मेदारी है।

कैमरा.एच फ़ाइल की पंक्ति 219 पर परिभाषा।

int(* भेजें_कमांड)(struct कैमरा_डिवाइस *, int32_t cmd, int32_t arg1, int32_t arg2)

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

कैमरा.एच फ़ाइल की पंक्ति 270 पर परिभाषा।

शून्य(* सेट_कॉलबैक)(स्ट्रक्चर कैमरा_डिवाइस *, कैमरा_नोटिफ़ाइ_कॉलबैक नोटिफाई_सीबी, कैमरा_डेटा_कॉलबैक डेटा_सीबी, कैमरा_डेटा_टाइमस्टैम्प_कॉलबैक डेटा_सीबी_टाइमस्टैंप, कैमरा_रिक्वेस्ट_मेमोरी गेट_मेमोरी, शून्य *उपयोगकर्ता)

अधिसूचना और डेटा कॉलबैक सेट करें

कैमरा.एच फ़ाइल की पंक्ति 105 पर परिभाषा।

int(* set_parameters)(struct कैमरा_डिवाइस *, स्थिरांक चार *parms)

कैमरा पैरामीटर सेट करें. यदि कोई पैरामीटर अमान्य है या समर्थित नहीं है तो यह BAD_VALUE लौटाता है।

कैमरा.एच फ़ाइल की पंक्ति 252 पर परिभाषा।

int(* set_preview_window)(struct कैमरा_डिवाइस *, struct पूर्वावलोकन_stream_ops *विंडो)

ANativeWindow सेट करें जिसमें पूर्वावलोकन फ़्रेम भेजे जाएं

कैमरा.एच फ़ाइल की पंक्ति 101 पर परिभाषा।

int(* प्रारंभ_पूर्वावलोकन)(struct कैमरा_डिवाइस *)

पूर्वावलोकन मोड प्रारंभ करें.

कैमरा.एच फ़ाइल की पंक्ति 144 पर परिभाषा।

int(* प्रारंभ_रिकॉर्डिंग)(struct कैमरा_डिवाइस *)

रिकॉर्ड मोड प्रारंभ करें. जब एक रिकॉर्ड छवि उपलब्ध होती है, तो एक CAMERA_MSG_VIDEO_FRAME संदेश संबंधित फ़्रेम के साथ भेजा जाता है। क्लाइंट द्वारा disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने से पहले प्रत्येक रिकॉर्ड फ़्रेम को कैमरा HAL क्लाइंट द्वारा रिलीज़रिकॉर्डिंगफ़्रेम() के माध्यम से रिलीज़ किया जाना चाहिए। क्लाइंट द्वारा disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने के बाद, वीडियो रिकॉर्डिंग फ्रेम के जीवन-चक्र को प्रबंधित करना कैमरा HAL की जिम्मेदारी है, और क्लाइंट को किसी भी वीडियो रिकॉर्डिंग फ्रेम को संशोधित/एक्सेस नहीं करना चाहिए।

कैमरा.एच फ़ाइल की पंक्ति 198 पर परिभाषा।

शून्य(* स्टॉप_प्रीव्यू)(स्ट्रक्चर कैमरा_डिवाइस *)

पहले से प्रारंभ किए गए पूर्वावलोकन को रोकें.

कैमरा.एच फ़ाइल की पंक्ति 149 पर परिभाषा।

शून्य(* स्टॉप_रिकॉर्डिंग)(स्ट्रक्चर कैमरा_डिवाइस *)

पहले से प्रारंभ की गई रिकॉर्डिंग बंद करें.

कैमरा.एच फ़ाइल की पंक्ति 203 पर परिभाषा।

int(* store_meta_data_in_buffers)(struct कैमरा_डिवाइस *, int सक्षम)

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

प्रभावी होने के लिए इस विधि को स्टार्टरिकॉर्डिंग() से पहले बुलाया जाना चाहिए।

यदि मेटा डेटा को वीडियो बफ़र्स में संग्रहीत किया जाता है, तो सामग्री की व्याख्या करना और बफ़र में मेटा डेटा की मदद से वास्तविक फ़्रेम डेटा ढूंढना वीडियो बफ़र्स के रिसीवर पर निर्भर है। यह कैसे किया जाता है यह इस पद्धति के दायरे से बाहर है।

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

पैरामीटर
सक्षम यदि सत्य है तो कैमरा एचएएल को वीडियो बफ़र्स में मेटा डेटा संग्रहीत करने का निर्देश देना; वीडियो बफ़र्स में वास्तविक YUV डेटा संग्रहीत करने के लिए कैमरा HAL को निर्देश देना गलत है।
रिटर्न
सफलता पर ठीक है.

कैमरा.एच फ़ाइल की पंक्ति 186 पर परिभाषा।

int(* टेक_पिक्चर)(स्ट्रक्चर कैमरा_डिवाइस *)

एक तस्वीर ले लो।

कैमरा.एच फ़ाइल की पंक्ति 240 पर परिभाषा।


इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था:
  • हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ कैमरा.एच