कैमरा_मॉड्यूल संरचना संदर्भ

कैमरा_मॉड्यूल संरचना संदर्भ

#include < camera_common.h >

डेटा फ़ील्ड

hw_module_t सामान्य
पूर्णांक(* कैमरे का नंबर प्राप्त करें )(शून्य)
पूर्णांक(* get_camera_info )(int कैमरा_आईडी, स्ट्रक्चर कैमरा_जानकारी *जानकारी)
पूर्णांक(* सेट_कॉलबैक )(स्थिरांक कैमरा_मॉड्यूल_कॉलबैक_टी *कॉलबैक)
खालीपन(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
पूर्णांक(* open_legacy )(const struct hw_module_t *मॉड्यूल, const char *id, uint32_t halVersion, struct hw_device_t **device)
पूर्णांक(* set_torch_mode )(const char *camera_id, बूल सक्षम)
पूर्णांक(* इस में )()
खालीपन * आरक्षित [5]

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

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

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

hw_module_t सामान्य

कैमरा मॉड्यूल के सामान्य तरीके. यह कैमरा_मॉड्यूल का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता उन संदर्भों में कैमरा_मॉड्यूल पॉइंटर में hw_module_t डालेंगे जहां यह ज्ञात है कि hw_module_t एक कैमरा_मॉड्यूल का संदर्भ देता है।

कैमरा_मॉड्यूल के लिए Common.methods->open के रिटर्न मान हैं:

0: कैमरा डिवाइस के सफलतापूर्वक खुलने पर।

-ENODEV: आंतरिक त्रुटि के कारण कैमरा उपकरण नहीं खोला जा सकता।

-EINVAL: इनपुट तर्क अमान्य हैं, यानी आईडी अमान्य है, और/या मॉड्यूल अमान्य है।

-EBUSY: इस कैमरा आईडी के लिए कैमरा डिवाइस पहले ही खोला गया था (इस विधि या open_legacy का उपयोग करके), भले ही इसे डिवाइस HAL संस्करण के रूप में खोला गया हो।

-EUSERS: समवर्ती रूप से खोले जा सकने वाले कैमरा उपकरणों की अधिकतम संख्या पहले से ही इस विधि या open_legacy विधि द्वारा खोली गई थी।

Common.methods->open से अन्य सभी रिटर्न मान -ENODEV माने जाएंगे।

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

int(* get_camera_info)(int कैमरा_आईडी, स्ट्रक्चर कैमरा_जानकारी *जानकारी)

कैमरा_जानकारी प्राप्त करें:

किसी दिए गए कैमरा डिवाइस के लिए स्थिर कैमरा जानकारी लौटाएँ। यह जानकारी किसी कैमरा डिवाइस के लिए नहीं बदल सकती.

वापसी मान:

0: एक सफल ऑपरेशन पर

-एनोडेव: आंतरिक त्रुटि के कारण जानकारी प्रदान नहीं की जा सकती।

-EINVAL: इनपुट तर्क अमान्य हैं, यानी आईडी अमान्य है, और/या मॉड्यूल अमान्य है।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

जब कोई कैमरा डिस्कनेक्ट हो जाता है, तो उसकी कैमरा आईडी अमान्य हो जाती है। इस अमान्य कैमरा आईडी के साथ इस विधि को कॉल करने पर -EINVAL और NULL कैमरा स्टैटिक मेटाडेटा ( camera_info.static_camera_characteristics ) मिलेगा।

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

int(* get_number_of_cameras)(void)

कैमरे का नंबर प्राप्त करें:

कैमरा मॉड्यूल के माध्यम से पहुंच योग्य कैमरा उपकरणों की संख्या लौटाता है। कैमरा डिवाइस को 0 से N-1 तक क्रमांकित किया गया है, जहां N इस कॉल द्वारा लौटाया गया मान है। ओपन() के लिए कैमरा डिवाइस का नाम बस एक स्ट्रिंग में परिवर्तित संख्या है। यानी, कैमरा आईडी 0 के लिए "0", कैमरा आईडी 1 के लिए "1"।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_2_3 या उससे कम:

यहां मान स्थिर होना चाहिए, और इस पद्धति के पहले कॉल के बाद नहीं बदल सकता।

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

यहां मान स्थिर होना चाहिए, और केवल अंतर्निर्मित कैमरों की गणना करनी चाहिए, जिनमें CAMERA_FACING_BACK या CAMERA_FACING_FRONT कैमरा फेसिंग मान ( camera_info.facing ) हैं। एचएएल को इस कॉल के रिटर्न वैल्यू में बाहरी कैमरे ( camera_info.facing == CAMERA_FACING_EXTERNAL) शामिल नहीं करना चाहिए। बाहरी कैमरों की संख्या प्रबंधित करने के लिए फ्रेमवर्क कैमरा_डिवाइस_स्टेटस_चेंज कॉलबैक का उपयोग करेगा।

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

शून्य(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

विक्रेता एक्सटेंशन मेटाडेटा टैग जानकारी के लिए क्वेरी करने के तरीके प्राप्त करें। एचएएल को सभी विक्रेता टैग संचालन विधियों को भरना चाहिए, या यदि कोई विक्रेता टैग परिभाषित नहीं है तो ऑप्स को अपरिवर्तित छोड़ देना चाहिए।

यहां प्रयुक्त वेंडर_टैग_ऑप्स संरचना को इसमें परिभाषित किया गया है: system/media/camera/include/system/vendor_tags.h

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: HAL मॉड्यूल द्वारा प्रदान नहीं किया गया। फ़्रेमवर्क इस फ़ंक्शन को कॉल नहीं कर सकता.

CAMERA_MODULE_API_VERSION_2_2: फ्रेमवर्क द्वारा बुलाए जाने के लिए मान्य।

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

int(* init)()

इस में:

किसी भी अन्य विधि को लागू करने से पहले कैमरा सेवा द्वारा इस विधि को कॉल किया जाता है, कैमरा एचएएल लाइब्रेरी के सफलतापूर्वक लोड होने के ठीक बाद। यदि कोई आरंभीकरण आवश्यक नहीं है, तो एचएएल मॉड्यूल द्वारा इसे NULL के रूप में छोड़ा जा सकता है।

इसका उपयोग एचएएल कार्यान्वयन द्वारा आरंभीकरण और अन्य एक-बार संचालन करने के लिए किया जा सकता है।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL मॉड्यूल द्वारा प्रदान नहीं किया गया। फ़्रेमवर्क इस फ़ंक्शन को कॉल नहीं करेगा.

CAMERA_MODULE_API_VERSION_2_4: यदि शून्य नहीं है, तो एचएएल मॉड्यूल लोड होने के बाद, किसी अन्य एचएएल मॉड्यूल विधि को कॉल करने से पहले फ्रेमवर्क द्वारा हमेशा कॉल किया जाएगा।

वापसी मान:

0: एक सफल ऑपरेशन पर.

-ENODEV: आंतरिक त्रुटि के कारण आरंभीकरण पूरा नहीं किया जा सकता। एचएएल को गैर-कार्यात्मक स्थिति में माना जाना चाहिए।

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

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

खुली_विरासत:

यदि एकाधिक डिवाइस HAL API संस्करण इस कैमरा HAL मॉड्यूल द्वारा समर्थित हैं, तो एक विशिष्ट लीगेसी कैमरा HAL डिवाइस खोलें। उदाहरण के लिए, यदि कैमरा मॉड्यूल एक ही कैमरा आईडी के लिए CAMERA_DEVICE_API_VERSION_1_0 और CAMERA_DEVICE_API_VERSION_3_2 डिवाइस API दोनों का समर्थन करता है, तो कैमरा डिवाइस को खोलने के लिए फ्रेमवर्क इस फ़ंक्शन को CAMERA_DEVICE_API_VERSION_1_0 डिवाइस के रूप में कॉल कर सकता है।

यह एक वैकल्पिक तरीका है. एक कैमरा एचएएल मॉड्यूल को प्रति डिवाइस एक से अधिक डिवाइस एचएएल संस्करण का समर्थन करने की आवश्यकता नहीं है, और ऐसे मॉड्यूल इस विधि में सभी कॉल के लिए -ENOSYS लौटा सकते हैं। सभी पुराने एचएएल डिवाइस एपीआई संस्करणों के लिए जो समर्थित नहीं हैं, यह -EOPNOTSUPP लौटा सकता है। जब उपरोक्त मामले घटित होते हैं, तो इसके बजाय फ्रेमवर्क द्वारा सामान्य ओपन() विधि (common.methods->open) का उपयोग किया जाएगा।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: HAL मॉड्यूल द्वारा प्रदान नहीं किया गया। फ़्रेमवर्क इस फ़ंक्शन को कॉल नहीं करेगा.

CAMERA_MODULE_API_VERSION_2_3: फ्रेमवर्क द्वारा बुलाए जाने के लिए मान्य।

वापसी मान:

0: कैमरा डिवाइस के सफलतापूर्वक खुलने पर।

-ENOSYS यह विधि समर्थित नहीं है.

-EOPNOTSUPP: अनुरोधित HAL संस्करण इस पद्धति द्वारा समर्थित नहीं है।

-EINVAL: इनपुट तर्क अमान्य हैं, यानी आईडी अमान्य है, और/या मॉड्यूल अमान्य है।

-EBUSY: इस कैमरा आईडी के लिए कैमरा डिवाइस पहले से ही खोला गया था (इस विधि या सामान्य.मेथड्स->ओपन विधि का उपयोग करके), डिवाइस एचएएल संस्करण की परवाह किए बिना इसे खोला गया था।

-यूसर्स: समवर्ती रूप से खोले जा सकने वाले कैमरा उपकरणों की अधिकतम संख्या पहले ही इस विधि या सामान्य.मेथड्स->ओपन विधि द्वारा खोली जा चुकी है।

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

शून्य* आरक्षित[5]

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

int(* set_callbacks)(const कैमरा_module_callbacks_t *कॉलबैक)

सेट_कॉलबैक:

एसिंक्रोनस कैमरा मॉड्यूल घटनाओं की रूपरेखा को सूचित करने के लिए एचएएल मॉड्यूल को कॉलबैक फ़ंक्शन पॉइंटर्स प्रदान करें। प्रारंभिक कैमरा एचएएल मॉड्यूल लोड के बाद, get_number_of_cameras() विधि को पहली बार कॉल करने के बाद, और मॉड्यूल पर किसी भी अन्य कॉल से पहले फ्रेमवर्क इस फ़ंक्शन को एक बार कॉल करेगा।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

एचएएल मॉड्यूल द्वारा प्रदान नहीं किया गया। फ़्रेमवर्क इस फ़ंक्शन को कॉल नहीं कर सकता.

CAMERA_MODULE_API_VERSION_2_1:

फ्रेमवर्क द्वारा बुलाए जाने के लिए मान्य।

वापसी मान:

0: एक सफल ऑपरेशन पर

-ENODEV: आंतरिक त्रुटि के कारण ऑपरेशन पूरा नहीं किया जा सकता।

-EINVAL: इनपुट तर्क अमान्य हैं, यानी कॉलबैक शून्य हैं

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

int(* set_torch_mode)(const char *camera_id, बूल सक्षम)

सेट_टॉर्च_मोड:

किसी दिए गए कैमरा आईडी से संबद्ध फ़्लैश इकाई के टॉर्च मोड को चालू या बंद करें। यदि ऑपरेशन सफल होता है, तो एचएएल को नई स्थिति के साथ कैमरा_मॉड्यूल_कॉलबैक्स.टोरच_मोड_स्टैटस_चेंज() को लागू करके फ्रेमवर्क टॉर्च स्थिति को सूचित करना होगा।

कैमरा डिवाइस में फ़्लैश यूनिट तक पहुँचने की उच्च प्राथमिकता होती है। जब कोई संसाधन टकराव होता है, जैसे कि कैमरा डिवाइस को खोलने के लिए ओपन () कहा जाता है, तो एचएएल मॉड्यूल को कैमरा_मॉड्यूल_कॉलबैक्स.टोरच_मोड_स्टैटस_चेंज () के माध्यम से फ्रेमवर्क को सूचित करना होगा कि टॉर्च मोड बंद कर दिया गया है और टॉर्च मोड स्थिति TORCH_MODE_STATUS_NOT_AVAILABLE बन गई है। जब टॉर्च मोड चालू करने के लिए संसाधन फिर से उपलब्ध हो जाते हैं, तो एचएएल मॉड्यूल को कैमरा_मॉड्यूल_कॉलबैक्स.टोरच_मोड_स्टैटस_चेंज() के माध्यम से फ्रेमवर्क को सूचित करना होगा कि सेट_टोरच_मोड() को कॉल करने के लिए टॉर्च मोड स्थिति TORCH_MODE_STATUS_AVAILABLE_OFF बन गई है।

जब फ्रेमवर्क फ्लैश यूनिट के टॉर्च मोड को चालू करने के लिए set_torch_mode() को कॉल करता है, यदि HAL एक साथ कई टॉर्च मोड को चालू नहीं रख सकता है, तो HAL को उस टॉर्च मोड को बंद कर देना चाहिए जो पिछले set_torch_mode() कॉल द्वारा चालू किया गया था और फ्रेमवर्क को सूचित करना चाहिए। कि उस फ़्लैश इकाई की टॉर्च मोड स्थिति TORCH_MODE_STATUS_AVAILABLE_OFF हो गई है।

संस्करण जानकारी (camera_module_t.common.module_api_version पर आधारित):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL मॉड्यूल द्वारा प्रदान नहीं किया गया। फ़्रेमवर्क इस फ़ंक्शन को कॉल नहीं करेगा.

CAMERA_MODULE_API_VERSION_2_4: फ्रेमवर्क द्वारा बुलाए जाने के लिए मान्य।

वापसी मान:

0: एक सफल ऑपरेशन पर.

-ENOSYS: कैमरा डिवाइस इस ऑपरेशन का समर्थन नहीं करता है। यह तभी लौटाया जाता है जब android.flash.info.available गलत हो।

-ईबुसी: कैमरा डिवाइस पहले से ही उपयोग में है।

-उपयोगकर्ता: टॉर्च मोड को चालू करने के लिए आवश्यक संसाधन उपलब्ध नहीं हैं, आमतौर पर क्योंकि अन्य कैमरा डिवाइस फ्लैश यूनिट का उपयोग करना संभव नहीं बनाने के लिए संसाधनों को रोक रहे हैं।

-EINVAL: कैमरा_आईडी अमान्य है।

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


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