कैमरा_इन्फो संरचना संदर्भ

कैमरा_इन्फो संरचना संदर्भ

#include < camera_common.h >

डेटा फ़ील्ड

int यहाँ का सामना करना पड़
int यहाँ अभिविन्यास
uint32_t डिवाइस_संस्करण
स्थिरांक कैमरा_मेटाडेटा_टी * स्थिर_कैमरा_विशेषताएँ
int यहाँ संसाधन_लागत
चार** परस्पर विरोधी उपकरण
आकार_t परस्पर विरोधी उपकरण_लंबाई

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

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

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

चार** परस्पर विरोधी उपकरण

कैमरा डिवाइस आईडी की एक श्रृंखला को शून्य-समाप्त स्ट्रिंग के रूप में दर्शाया गया है जो अन्य डिवाइसों को इंगित करती है जिन्हें इस कैमरा डिवाइस के उपयोग के दौरान एक साथ नहीं खोला जा सकता है।

इस फ़ील्ड का उपयोग यह इंगित करने के लिए किया जाता है कि यह कैमरा डिवाइस कई अन्य कैमरा डिवाइसों का एक संयोजन है, या अन्यथा इसमें हार्डवेयर निर्भरताएं हैं जो एक साथ उपयोग को प्रतिबंधित करती हैं। यदि कोई निर्भरता नहीं है, तो इसे इंगित करने के लिए इस फ़ील्ड में एक NULL लौटाया जा सकता है।

जब यह कैमरा उपकरण खुला हो तो कैमरा सेवा इस सूची के किसी भी उपकरण को एक साथ कभी नहीं खोलेगी।

इस फ़ील्ड में इंगित स्ट्रिंग्स को कैमरा सेवा द्वारा साफ़ नहीं किया जाएगा, और जब तक यह उपकरण प्लग इन हो, तब तक वे बने रहेंगे।

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

CAMERA_MODULE_API_VERSION_2_3 या उससे कम:

मान्य नहीं है। शून्य माना जा सकता है। इस फ़ील्ड को न पढ़ें.

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

सदैव मान्य.

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

size_t विरोधाभासी_devices_length

विरोधाभासी_डिवाइसेस फ़ील्ड में दी गई सरणी की लंबाई।

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

CAMERA_MODULE_API_VERSION_2_3 या उससे कम:

मान्य नहीं है। 0 माना जा सकता है। इस फ़ील्ड को न पढ़ें।

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

सदैव मान्य.

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

uint32_t डिवाइस_संस्करण

कैमरा_डिवाइस_t.common.version का मान.

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

CAMERA_MODULE_API_VERSION_1_0:

मान्य नहीं है। CAMERA_DEVICE_API_VERSION_1_0 माना जा सकता है. इस फ़ील्ड को न पढ़ें.

CAMERA_MODULE_API_VERSION_2_0 या उच्चतर:

सदैव मान्य

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

इंट का सामना करना पड़ रहा है

वह दिशा जिस ओर कैमरे का मुख है. कैमरा फेसिंग परिभाषाओं के लिए system/core/include/system/camera.h देखें।

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

CAMERA_MODULE_API_VERSION_2_3 या उससे कम:

यह CAMERA_FACING_BACK या CAMERA_FACING_FRONT होना चाहिए.

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

यह CAMERA_FACING_BACK, CAMERA_FACING_FRONT या CAMERA_FACING_EXTERNAL होना चाहिए।

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

इंट ओरिएंटेशन

कैमरे की छवि का उन्मुखीकरण. मान वह कोण है जिसके लिए कैमरे की छवि को दक्षिणावर्त घुमाने की आवश्यकता होती है ताकि यह अपने प्राकृतिक अभिविन्यास में डिस्प्ले पर सही ढंग से दिखाई दे। यह 0, 90, 180 या 270 होना चाहिए।

उदाहरण के लिए, मान लीजिए कि किसी डिवाइस में स्वाभाविक रूप से लंबी स्क्रीन है। बैक-फेसिंग कैमरा सेंसर लैंडस्केप में लगा हुआ है। आप स्क्रीन देख रहे हैं. यदि कैमरा सेंसर का ऊपरी भाग प्राकृतिक अभिविन्यास में स्क्रीन के दाहिने किनारे के साथ संरेखित है, तो मान 90 होना चाहिए। यदि फ्रंट-फेसिंग कैमरा सेंसर का शीर्ष भाग स्क्रीन के दाईं ओर संरेखित है, तो मान 90 होना चाहिए 270 हो.

संस्करण जानकारी (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_FACING_EXTERNAL है तो मान्य नहीं है।

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

int resource_cost

इस कैमरे का उपयोग करने की कुल संसाधन "लागत", [0, 100] सीमा में एक पूर्णांक मान के रूप में दर्शायी जाती है, जहां 100 साझा संसाधन के कुल उपयोग का प्रतिनिधित्व करता है जो कि कैमरा उपप्रणाली की सीमित बाधा है। यह एक बहुत ही मोटा अनुमान हो सकता है, और इसका उपयोग कैमरा सेवा के लिए एक संकेत के रूप में किया जाता है ताकि यह निर्धारित किया जा सके कि कैमरा सेवा द्वारा विज्ञापित विभिन्न कैमरों को एक साथ खोलने से कई अनुप्रयोगों को कब अस्वीकृत किया जाए।

कैमरा सेवा को एचएएल द्वारा उजागर किए गए कैमरा उपकरणों के किसी भी संयोजन को एक साथ खोलने और उपयोग करने में सक्षम होना चाहिए जहां इन कैमरों की संसाधन लागत का योग <= 100 है। लागत निर्धारित करने के लिए, प्रत्येक कैमरा डिवाइस को कॉन्फ़िगर और संचालित माना जाना चाहिए कैमरा मेटाडेटा के माध्यम से उस डिवाइस के लिए उजागर कॉन्फ़िगरेशन सेटिंग्स में उपलब्ध अधिकतम संसाधन-खपत फ़्रेमरेट और स्ट्रीम आकार सेटिंग्स पर।

कैमरा सेवा अभी भी कुल संसाधन लागत > 100 के साथ कैमरा उपकरणों के संयोजन को एक साथ खोलने का प्रयास कर सकती है। यह सफल या विफल हो सकता है। यदि यह सफल होता है, तो कॉन्फ़िगरेशन के संयोजन जो एकाधिक खुले डिवाइस होने से संसाधन बाधाओं के कारण समर्थित नहीं हैं, कॉन्फ़िगरेशन कॉल के दौरान विफल हो जाना चाहिए। यदि कुल संसाधन लागत <= 100 है, तो किसी भी स्ट्रीम कॉन्फ़िगरेशन सेटिंग्स या अन्य डिवाइस क्षमताओं के लिए ओपन और कॉन्फ़िगर कभी भी विफल नहीं होना चाहिए, जो सामान्य रूप से किसी डिवाइस के लिए सफल होगा जब यह एकमात्र ओपन कैमरा डिवाइस हो।

इस फ़ील्ड का उपयोग यह निर्धारित करने के लिए किया जाएगा कि पृष्ठभूमि एप्लिकेशन को इस कैमरा डिवाइस का उपयोग करने की अनुमति है या नहीं, जबकि अन्य एप्लिकेशन अन्य कैमरा डिवाइस का उपयोग कर रहे हैं। ध्यान दें: कैमरा सेवा द्वारा कभी भी एक ही कैमरा डिवाइस को एक साथ खोलने के लिए एकाधिक एप्लिकेशन की अनुमति नहीं दी जाएगी।

उदाहरण उपयोग के मामले:

पूर्व। 1: कैमरा डिवाइस 0 = बैक कैमरा कैमरा डिवाइस 1 = फ्रंट कैमरा

  • सीमित आईएसपी बैंडविड्थ के कारण दोनों कैमरा उपकरणों का उपयोग करने से फ़्रेमरेट में बड़ी मंदी आती है।

विन्यास:

कैमरा डिवाइस 0 - संसाधन_लागत = 51 परस्पर विरोधी उपकरण = शून्य कैमरा डिवाइस 1 - संसाधन_लागत = 51 परस्पर विरोधी उपकरण = शून्य

परिणाम:

चूंकि संसाधन लागत का योग > 100 है, यदि उच्च-प्राथमिकता वाले एप्लिकेशन में से कोई भी डिवाइस खुला है, तो कैमरा सेवा द्वारा किसी भी कम-प्राथमिकता वाले एप्लिकेशन को किसी भी डिवाइस को खोलने की अनुमति नहीं दी जाएगी। यदि निम्न-प्राथमिकता वाला एप्लिकेशन किसी ऐसे उपकरण का उपयोग कर रहा है जिसे बाद में उच्च-प्राथमिकता वाला एप्लिकेशन खोलने का प्रयास करता है, तो निम्न-प्राथमिकता वाला एप्लिकेशन डिवाइस को डिस्कनेक्ट करने के लिए बाध्य होगा।

यदि सर्वोच्च-प्राथमिकता वाला एप्लिकेशन चुनता है, तो यह अभी भी दोनों डिवाइसों को खोलने का प्रयास कर सकता है (क्योंकि ये डिवाइस विरोधाभासी_डिवाइस फ़ील्ड में विरोधाभासी के रूप में सूचीबद्ध नहीं हैं), लेकिन कॉल खोलने या कॉन्फ़िगर करने में इन डिवाइसों का उपयोग विफल हो सकता है।

पूर्व। 2: कैमरा डिवाइस 0 = लेफ्ट बैक कैमरा कैमरा डिवाइस 1 = राइट बैक कैमरा कैमरा डिवाइस 2 = डिवाइस 0 द्वारा उपयोग किए जाने वाले दाएं और बाएं दोनों बैक कैमरा सेंसर का उपयोग करके संयुक्त स्टीरियो कैमरा, और 1 कैमरा डिवाइस 3 = फ्रंट कैमरा

  • हार्डवेयर संबंधी बाधाओं के कारण, एक बार में अधिकतम दो कैमरे खुले हो सकते हैं। संयुक्त स्टीरियो कैमरे का उपयोग कभी भी दो बैक कैमरा डिवाइस (डिवाइस 0, 1) के साथ एक ही समय में नहीं किया जा सकता है, और आमतौर पर फ्रंट कैमरा (डिवाइस 3) के साथ एक ही समय में उपयोग करने के लिए बहुत अधिक बैंडविड्थ की आवश्यकता होती है।

विन्यास:

कैमरा डिवाइस 0 - संसाधन_लागत = 50 परस्पर विरोधी उपकरण = { 2 } कैमरा उपकरण 1 - संसाधन_लागत = 50 परस्पर विरोधी उपकरण = { 2 } कैमरा उपकरण 2 - संसाधन_लागत = 100 परस्पर विरोधी उपकरण = { 0, 1 } कैमरा उपकरण 3 - संसाधन_लागत = 50 परस्पर विरोधी उपकरण = शून्य

परिणाम:

विरोधाभासी_डिवाइसेस फ़ील्ड के आधार पर, कैमरा सेवा गारंटी देती है कि खुले उपकरणों के निम्नलिखित सेटों को कभी भी अनुमति नहीं दी जाएगी: {1, 2 }, { 0, 2 }।

संसाधन_लागत फ़ील्ड के आधार पर, यदि कोई उच्च-प्राथमिकता वाला अग्रभूमि एप्लिकेशन कैमरा डिवाइस 0 का उपयोग कर रहा है, तो पृष्ठभूमि एप्लिकेशन को कैमरा डिवाइस 1 या 3 खोलने की अनुमति दी जाएगी (लेकिन यदि अग्रभूमि एप्लिकेशन किसी अन्य डिवाइस को खोलता है तो इसे फिर से डिस्कनेक्ट करने के लिए मजबूर किया जाएगा)।

सर्वोच्च प्राथमिकता वाला एप्लिकेशन अभी भी डिवाइस 0, 2, और 3 को एक साथ खोलने का प्रयास कर सकता है, लेकिन एचएएल इस संयोजन के लिए कॉल को खोलने या कॉन्फ़िगर करने में विफल हो सकता है।

पूर्व। 3: कैमरा डिवाइस 0 = बैक कैमरा कैमरा डिवाइस 1 = फ्रंट कैमरा कैमरा डिवाइस 2 = लो-पावर फ्रंट कैमरा जो डिवाइस 1 के समान सेंसर का उपयोग करता है, लेकिन केवल इमेज स्ट्रीम रिज़ॉल्यूशन को उजागर करता है जिसका उपयोग कम-पावर मोड में किया जा सकता है

  • साझा भौतिक सेंसर के कारण एक ही समय में दोनों फ्रंट कैमरे (डिवाइस 1, 2) का उपयोग करना असंभव है। हार्डवेयर सीमाओं के कारण कुछ स्ट्रीम कॉन्फ़िगरेशन के लिए बैक और "हाई-पावर" फ्रंट कैमरा (डिवाइस 1) का उपयोग करना असंभव हो सकता है, लेकिन "लो-पावर" फ्रंट कैमरा विकल्प का हमेशा उपयोग किया जा सकता है क्योंकि इसमें विशेष समर्पित हार्डवेयर होता है।

    विन्यास:

    कैमरा डिवाइस 0 - संसाधन_लागत = 100 परस्पर विरोधी_उपकरण = शून्य कैमरा उपकरण 1 - संसाधन_लागत = 100 परस्पर विरोधी_उपकरण = { 2 } कैमरा उपकरण 2 - संसाधन_लागत = 0 परस्पर विरोधी_उपकरण = { 1 } परिणाम:

    विरोधाभासी_डिवाइसेस फ़ील्ड के आधार पर, कैमरा सेवा गारंटी देती है कि खुले उपकरणों के निम्नलिखित सेटों को कभी भी अनुमति नहीं दी जाएगी: {1, 2}।

    संसाधन_लागत फ़ील्ड के आधार पर, केवल सर्वोच्च प्राथमिकता वाला एप्लिकेशन एक ही समय में डिवाइस 0 और 1 दोनों को खोलने का प्रयास कर सकता है। यदि कोई उच्च-प्राथमिकता वाला एप्लिकेशन डिवाइस 1 या 2 का उपयोग नहीं कर रहा है, तो एक कम-प्राथमिकता वाला पृष्ठभूमि एप्लिकेशन डिवाइस 2 को खोल सकता है (लेकिन यदि उच्च-प्राथमिकता वाला एप्लिकेशन बाद में डिवाइस 1 या 2 को खोलता है तो उसे इसे डिस्कनेक्ट करने के लिए मजबूर किया जाएगा)।

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

CAMERA_MODULE_API_VERSION_2_3 या उससे कम:

मान्य नहीं है। 100 माना जा सकता है। इस फ़ील्ड को न पढ़ें।

CAMERA_MODULE_API_VERSION_2_4 या उच्चतर:

सदैव मान्य.

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

स्थिरांक कैमरा_मेटाडेटा_टी * स्थिर_कैमरा_विशेषताएँ

कैमरे की निश्चित विशेषताएँ, जिनमें system/media/camera/docs/docs.html में निर्दिष्ट सभी स्थिर कैमरा मेटाडेटा शामिल हैं। यह एक क्रमबद्ध मेटाडेटा बफ़र होना चाहिए, और इसे कॉलर द्वारा संशोधित या मुक्त नहीं किया जा सकता है। पॉइंटर को कैमरा मॉड्यूल के जीवनकाल तक वैध रहना चाहिए, और get_camera_info() द्वारा लौटाए जाने के बाद इसमें मान नहीं बदल सकते हैं।

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

CAMERA_MODULE_API_VERSION_1_0:

मान्य नहीं है। अतिरिक्त विशेषताएँ उपलब्ध नहीं हैं. इस फ़ील्ड को न पढ़ें.

CAMERA_MODULE_API_VERSION_2_0 या उच्चतर:

मान्य यदि डिवाइस_संस्करण >= CAMERA_DEVICE_API_VERSION_2_0. अन्यथा मत पढ़ो.

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


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