कैमरा3_स्ट्रीम संरचना संदर्भ

कैमरा3_स्ट्रीम संरचना संदर्भ

#include < camera3.h >

डेटा फ़ील्ड

int यहाँ स्ट्रीम_प्रकार
uint32_t चौड़ाई
uint32_t ऊंचाई
int यहाँ प्रारूप
uint32_t प्रयोग
uint32_t max_buffers
खालीपन * निजी
android_dataspace_t डेटा_स्पेस
int यहाँ ROTATION
खालीपन * आरक्षित [7]

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

कैमरा3_स्ट्रीम_टी:

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

स्ट्रीम संरचनाएं फ्रेमवर्क के स्वामित्व में हैं, लेकिन config_streams() द्वारा HAL में पारित कैमरा 3_स्ट्रीम के पॉइंटर्स पहले बाद के config_streams() कॉल के अंत तक मान्य हैं जिसमें उस कैमरा 3_स्ट्रीम को एक तर्क के रूप में शामिल नहीं किया गया है, या अंत तक क्लोज़() कॉल।

कैमरा3_स्ट्रीम को config_streams() में पारित करने के बाद सभी कैमरा3_स्ट्रीम फ्रेमवर्क-नियंत्रित सदस्य अपरिवर्तनीय हैं। निजी पॉइंटर की सामग्री को छोड़कर, HAL केवल config_streams() कॉल के दौरान HAL-नियंत्रित पैरामीटर को बदल सकता है।

यदि config_streams() कॉल एक गैर-घातक त्रुटि लौटाती है, तो सभी सक्रिय स्ट्रीम मान्य रहती हैं जैसे कि config_streams() को कॉल नहीं किया गया था।

स्ट्रीम का समापन बिंदु कैमरा एचएएल डिवाइस को दिखाई नहीं देता है। DEVICE_API_VERSION_3_1 में, इसे उन स्ट्रीम पर उपभोक्ता उपयोग फ़्लैग साझा करने के लिए बदल दिया गया था जहां कैमरा एक निर्माता है (OUTPUT और BIDIRECTIONAL स्ट्रीम प्रकार) नीचे उपयोग फ़ील्ड देखें।

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

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

android_dataspace_t data_space

एक फ़ील्ड जो बफ़र की सामग्री का वर्णन करता है। प्रारूप और बफ़र आयाम स्ट्रीम बफ़र्स के मेमोरी लेआउट और संरचना को परिभाषित करते हैं, जबकि डेटास्पेस बफ़र के भीतर डेटा के अर्थ को परिभाषित करता है।

अधिकांश प्रारूपों के लिए, डेटास्पेस छवि डेटा के रंग स्थान को परिभाषित करता है। इसके अलावा, कुछ प्रारूपों के लिए, डेटास्पेस इंगित करता है कि छवि- या गहराई-आधारित डेटा का अनुरोध किया गया है या नहीं। प्रत्येक प्रारूप के लिए प्रारूपों और वैध डेटास्पेस मानों के विवरण के लिए system/core/include/system/graphics.h देखें।

संस्करण जानकारी:

< CAMERA_DEVICE_API_VERSION_3_3:

परिभाषित नहीं है और इसे एक्सेस नहीं किया जाना चाहिए. डेटास्पेस को HAL_DATASPACE_UNKNOWN माना जाना चाहिए, और उपयुक्त रंग स्थान आदि को उपयोग ध्वज और प्रारूप से निर्धारित किया जाना चाहिए।

= CAMERA_DEVICE_API_VERSION_3_3:

हमेशा कैमरा सेवा द्वारा सेट किया जाता है। एचएएल को स्ट्रीम को सही कलरस्पेस में कॉन्फ़िगर करने के लिए, या समर्थित होने पर रंग और गहराई आउटपुट के बीच चयन करने के लिए इस डेटास्पेस का उपयोग करना चाहिए। डेटास्पेस मान ग्राफ़िक्स.एच में विरासती परिभाषाएँ हैं

>= CAMERA_DEVICE_API_VERSION_3_4:

हमेशा कैमरा सेवा द्वारा सेट किया जाता है। एचएएल को स्ट्रीम को सही कलरस्पेस में कॉन्फ़िगर करने के लिए, या समर्थित होने पर रंग और गहराई आउटपुट के बीच चयन करने के लिए इस डेटास्पेस का उपयोग करना चाहिए। डेटास्पेस मान ग्राफ़िक्स.h में V0 डेटास्पेस परिभाषाओं का उपयोग करके सेट किए गए हैं

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

int प्रारूप

इस स्ट्रीम में बफ़र्स के लिए पिक्सेल प्रारूप। फ़ॉर्मेट system/core/include/system/graphics.h में HAL_PIXEL_FORMAT_* सूची से या डिवाइस-विशिष्ट हेडर से एक मान है।

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

<= CAMERA_DEVICE_API_VERSION_3_1:

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

>= CAMERA_DEVICE_API_VERSION_3_2:

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

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

uint32_t ऊंचाई

इस स्ट्रीम में बफ़र्स की पिक्सेल में ऊँचाई

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

uint32_t max_buffers

एचएएल डिवाइस को एक ही समय में बफ़र्स की अधिकतम संख्या को हटाने की आवश्यकता हो सकती है। एचएएल डिवाइस में इस स्ट्रीम से उड़ान के दौरान इस मान से अधिक बफ़र्स नहीं हो सकते हैं।

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

शून्य* निजी

स्ट्रीम के लिए एचएएल-निजी जानकारी का एक हैंडल। फ्रेमवर्क कोड द्वारा निरीक्षण नहीं किया जाएगा.

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

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

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

इंट रोटेशन

स्ट्रीम का आवश्यक आउटपुट रोटेशन, कैमरा3_स्ट्रीम_रोटेशन_टी मानों में से एक। धारा की चौड़ाई और ऊंचाई के साथ एचएएल द्वारा इसका निरीक्षण किया जाना चाहिए। उदाहरण के लिए, यदि रोटेशन 90 डिग्री है और धारा की चौड़ाई और ऊंचाई क्रमशः 720 और 1280 है, तो कैमरा सेवा 720x1280 आकार के बफ़र्स की आपूर्ति करेगी, और एचएएल को 1280x720 छवि कैप्चर करनी चाहिए और छवि को 90 डिग्री वामावर्त घुमाना चाहिए। जब स्ट्रीम प्रकार इनपुट होता है तो रोटेशन फ़ील्ड नो-ऑप होता है। कैमरा एचएएल को इनपुट स्ट्रीम के लिए रोटेशन फ़ील्ड को अनदेखा करना होगा।

<= CAMERA_DEVICE_API_VERSION_3_2:

परिभाषित नहीं है और इसे एक्सेस नहीं किया जाना चाहिए. एचएएल को आउटपुट छवियों पर कोई रोटेशन लागू नहीं करना चाहिए।

>= CAMERA_DEVICE_API_VERSION_3_3:

हमेशा कैमरा सेवा द्वारा सेट करें. एचएएल को स्ट्रीम कॉन्फ़िगरेशन के दौरान इस फ़ील्ड का निरीक्षण करना चाहिए और यदि एचएएल ऐसा रोटेशन नहीं कर सकता है तो -EINVAL लौटाता है। HAL को हमेशा CAMERA3_STREAM_ROTATION_0 का समर्थन करना चाहिए, इसलिए यदि सभी स्ट्रीम का रोटेशन फ़ील्ड CAMERA3_STREAM_ROTATION_0 है, तो असमर्थित रोटेशन के लिए config_streams() कॉल विफल नहीं होनी चाहिए।

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

int स्ट्रीम_प्रकार

स्ट्रीम का प्रकार, कैमरा3_स्ट्रीम_टाइप_टी मानों में से एक।

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

uint32_t उपयोग

एचएएल की आवश्यकता के अनुसार, इस स्ट्रीम के लिए ग्रालोक उपयोग झंडे। उपयोग फ़्लैग को gralloc.h (GRALLOC_USAGE_*), या डिवाइस-विशिष्ट हेडर में परिभाषित किया गया है।

आउटपुट स्ट्रीम के लिए, ये एचएएल के निर्माता उपयोग ध्वज हैं। इनपुट स्ट्रीम के लिए, ये एचएएल के उपभोक्ता उपयोग ध्वज हैं। निर्माता और उपभोक्ता के उपयोग फ़्लैग को एक साथ जोड़ा जाएगा और फिर प्रत्येक स्ट्रीम के लिए ग्रैलोक बफ़र्स आवंटित करने के लिए प्लेटफ़ॉर्म ग्रैलोक एचएएल मॉड्यूल को पास किया जाएगा।

संस्करण जानकारी:

== CAMERA_DEVICE_API_VERSION_3_0:

config_streams() के माध्यम से पारित होने पर कोई प्रारंभिक मूल्य की गारंटी नहीं है। एचएएल इस फ़ील्ड को इनपुट के रूप में उपयोग नहीं कर सकता है, और उसे इस फ़ील्ड पर इसके उपयोग फ़्लैग के साथ लिखना होगा।

>= CAMERA_DEVICE_API_VERSION_3_1:

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

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

uint32_t चौड़ाई

इस स्ट्रीम में बफ़र्स की पिक्सेल में चौड़ाई

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


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