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

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

#include < camera_common.h >

डेटा फ़ील्ड

hw_module_t सामान्य
इंट (* get_number_of_cameras )(शून्य)
इंट (* get_camera_info )(int camera_id, struct camera_info *info)
इंट (* set_callbacks )(const camera_module_callbacks_t *callbacks)
शून्य(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
इंट (* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **डिवाइस)
इंट (* set_torch_mode )(const char *camera_id, bool सक्षम)
इंट (* इनिट ) ()
शून्य * आरक्षित [5]

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

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

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

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

Common.methods के लिए वापसी मान-> कैमरा_मॉड्यूल के लिए खुला है:

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

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

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

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

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

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

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

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

get_camera_info:

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

वापसी मान:

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

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

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

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

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

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

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

इंट (* get_number_of_cameras) (शून्य)

get_number_of_cameras:

कैमरा मॉड्यूल के माध्यम से सुलभ कैमरा उपकरणों की संख्या देता है। कैमरा उपकरणों को 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) (विक्रेता_टैग_ऑप्स_टी *ऑप्स)

get_vendor_tag_ops:

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

यहां इस्तेमाल की गई वेंडर_टैग_ऑप्स संरचना को इसमें परिभाषित किया गया है: सिस्टम/मीडिया/कैमरा/शामिल/सिस्टम/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 पर परिभाषा।

इंट (* इनिट) ()

इस में:

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

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

संस्करण की जानकारी (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: यदि NULL नहीं है, तो HAL मॉड्यूल लोड होने के बाद, किसी अन्य HAL मॉड्यूल विधि को कॉल करने से पहले, हमेशा फ्रेमवर्क द्वारा कॉल किया जाएगा।

वापसी मान:

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

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

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

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **डिवाइस)

open_legacy:

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

यह एक वैकल्पिक तरीका है। एक कैमरा एचएएल मॉड्यूल को प्रति डिवाइस एक से अधिक डिवाइस एचएएल संस्करण का समर्थन करने की आवश्यकता नहीं है, और ऐसे मॉड्यूल इस विधि में सभी कॉलों के लिए -ENOSYS वापस आ सकते हैं। सभी पुराने एचएएल डिवाइस एपीआई संस्करणों के लिए जो समर्थित नहीं हैं, यह -ईओपीएनओटीएसयूपीपी वापस आ सकता है। जब उपरोक्त मामले होते हैं, तो सामान्य खुली() विधि (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 यह विधि समर्थित नहीं है।

-ईओपीएनओटीएसयूपीपी: अनुरोधित एचएएल संस्करण इस पद्धति द्वारा समर्थित नहीं है।

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

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

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

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

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

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

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

सेट_कॉलबैक:

एसिंक्रोनस कैमरा मॉड्यूल घटनाओं के ढांचे को सूचित करने के लिए एचएएल मॉड्यूल को कॉलबैक फ़ंक्शन पॉइंटर्स प्रदान करें। प्रारंभिक कैमरा एचएएल मॉड्यूल लोड होने के बाद फ्रेमवर्क इस फ़ंक्शन को एक बार कॉल करेगा, 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, bool enable)

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

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

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

जब फ्रेमवर्क एक फ्लैश यूनिट के टॉर्च मोड को चालू करने के लिए 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.उपलब्ध झूठा हो।

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

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

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

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


इस संरचना के लिए प्रलेखन निम्न फ़ाइल से उत्पन्न किया गया था:
  • हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ camera_common.h