कैमरा2_डिवाइस_ऑप्स संरचना संदर्भ
#include < camera2.h >
डेटा फ़ील्ड | |
पूर्णांक(* | set_request_queue_src_ops )(स्थिरांक struct कैमरा2_डिवाइस *, स्थिरांक कैमरा2_request_queue_src_ops_t *request_src_ops) |
पूर्णांक(* | सूचित करें_request_queue_not_empty )(स्थिरांक संरचना कैमरा2_डिवाइस *) |
पूर्णांक(* | सेट_फ्रेम_क्यू_डीएसटी_ऑप्स )(कास्ट स्ट्रक्चर कैमरा2_डिवाइस *, कास्ट कैमरा2_फ्रेम_क्यू_डीएसटी_ऑप्स_टी *फ्रेम_डीएसटी_ऑप्स) |
पूर्णांक(* | get_in_progress_count )(स्थिरांक संरचना कैमरा2_डिवाइस *) |
पूर्णांक(* | फ्लश_कैप्चर्स_इन_प्रोग्रेस )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *) |
पूर्णांक(* | कन्स्ट्रक्ट_डिफॉल्ट_रेक्वेस्ट )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, इंट रिक्वेस्ट_टेम्पलेट, कैमरा_मेटाडेटा_टी **रिक्वेस्ट) |
पूर्णांक(* | आवंटित_स्ट्रीम )(स्थिरांक संरचना कैमरा2_डिवाइस *, uint32_t चौड़ाई, uint32_t ऊंचाई, पूर्णांक प्रारूप, स्थिरांक कैमरा2_स्ट्रीम_ ops_t *stream_ops, uint32_t *stream_id, uint32_t *format_actual, uint32_t *उपयोग, uint32_t *max_buffers) |
पूर्णांक(* | रजिस्टर_स्ट्रीम_बफ़र्स )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, यूइंट32_टी स्ट्रीम_आईडी, इंट नंबर_बफ़र्स, बफ़र_हैंडल_टी *बफ़र्स) |
पूर्णांक(* | रिलीज_स्ट्रीम )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, यूइंट32_टी स्ट्रीम_आईडी) |
पूर्णांक(* | आवंटित_रेप्रोसेस_स्ट्रीम )(स्थिरांक संरचना कैमरा2_डिवाइस *, uint32_t चौड़ाई, uint32_t ऊंचाई, uint32_t प्रारूप, स्थिरांक कैमरा2_स्ट्रीम_in_ops_t *reprocess_stream_ops, uint32_t *stream_id, uint32_t *उपभोक्ता_उपयोग, uint32_t *max_buffers) |
पूर्णांक(* | आवंटित_रीप्रोसेस_स्ट्रीम_फ्रॉम_स्ट्रीम )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, यूइंट32_टी आउटपुट_स्ट्रीम_आईडी, कास्ट कैमरा2_स्ट्रीम_इन_ऑप्स_टी *रीप्रोसेस_स्ट्रीम_ऑप्स, यूइंट32_टी *स्ट्रीम_आईडी) |
पूर्णांक(* | रिलीज_रेप्रोसेस_स्ट्रीम )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t स्ट्रीम_आईडी) |
पूर्णांक(* | ट्रिगर_एक्शन )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t ट्रिगर_आईडी, int32_t ext1, int32_t ext2) |
पूर्णांक(* | set_notify_callback )(स्थिर संरचना कैमरा2_डिवाइस *, कैमरा2_नोटिफ़ाई_कॉलबैक सूचित_सीबी, शून्य *उपयोगकर्ता) |
पूर्णांक(* | get_metadata_vendor_tag_ops )(स्थिर संरचना कैमरा2_डिवाइस *, विक्रेता_टैग_क्वेरी_ops_t **ops) |
पूर्णांक(* | डंप )(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, इंट एफडी) |
पूर्णांक(* | get_instance_metadata )(स्थिरांक संरचना कैमरा2_डिवाइस *, कैमरा_मेटाडेटा **instance_metadata) |
विस्तृत विवरण
फ़ील्ड दस्तावेज़ीकरण
int(* allocate_reprocess_stream)(const struct कैमरा2_device *, uint32_t चौड़ाई, uint32_t ऊंचाई, uint32_t प्रारूप, स्थिरांक कैमरा2_ stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers) |
आवंटित_पुनःप्रक्रिया_स्ट्रीम:
उपयोग के लिए एक नई इनपुट स्ट्रीम आवंटित करें, जिसे आउटपुट बफर चौड़ाई, ऊंचाई और पिक्सेल प्रारूप द्वारा परिभाषित किया गया है। सफलता पर नई स्ट्रीम की आईडी, ग्रालोक उपयोग झंडे, और एक साथ आवश्यक बफर गिनती लौटाता है। त्रुटि स्थितियाँ:
- चौड़ाई/ऊंचाई/प्रारूप संयोजन का अनुरोध करना जो सेंसर की स्थिर विशेषताओं द्वारा समर्थित के रूप में सूचीबद्ध नहीं है
- एक साथ बहुत सारी पुनर्संसाधन धाराओं को कॉन्फ़िगर करने के लिए कहना।
इनपुट पैरामीटर:
- चौड़ाई, ऊंचाई, प्रारूप: इस स्ट्रीम के माध्यम से भेजे जाने वाले बफ़र्स के लिए विशिष्टता। प्रारूप HAL_PIXEL_FORMAT_* सूची से एक मान होना चाहिए।
- reprocess_stream_ops: इस स्ट्रीम के लिए बफ़र्स प्राप्त करने और जारी करने के लिए फ़ंक्शन पॉइंटर्स की एक संरचना। अंतर्निहित स्ट्रीम को उपयोग और max_buffers आउटपुट के आधार पर कॉन्फ़िगर किया जाएगा।
आउटपुट पैरामीटर:
- स्ट्रीम_आईडी: इस स्ट्रीम की पहचान करने वाला एक अहस्ताक्षरित पूर्णांक। इस मान का उपयोग स्ट्रीम की पहचान करने और स्ट्रीम जारी करने के लिए आने वाले अनुरोधों में किया जाता है। इन आईडी को इनपुट स्ट्रीम आईडी से अलग क्रमांकित किया गया है।
- उपभोक्ता_उपयोग: अनुरोधित प्रकार के डेटा का उपभोग करने के लिए एचएएल डिवाइस द्वारा आवश्यक ग्रैलोक उपयोग मास्क। इसका उपयोग स्ट्रीम बफ़र कतार के लिए नए ग्रालोक बफ़र्स आवंटित करने में किया जाता है।
- max_buffers: HAL डिवाइस को एक ही समय में बफ़र्स की अधिकतम संख्या प्राप्त करने की आवश्यकता हो सकती है। डिवाइस में एक ही समय में इस मान से अधिक बफ़र्स प्राप्त नहीं हो सकते हैं।
int(* allocate_reprocess_stream_from_stream)(const struct कैमरा2_device *, uint32_t आउटपुट_स्ट्रीम_id, const कैमरा2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id) |
आवंटन_पुनःप्रक्रिया_स्ट्रीम_फ्रॉम_स्ट्रीम:
उपयोग के लिए एक नई इनपुट स्ट्रीम आवंटित करें, जो मौजूदा आउटपुट स्ट्रीम के लिए आवंटित बफ़र्स का उपयोग करेगी। यानी, एचएएल द्वारा आउटपुट स्ट्रीम पर एक बफर लगाने के बाद, वह देख सकता है कि वही बफर इस इनपुट रीप्रोसेसिंग स्ट्रीम से उसे सौंपा गया है। एचएएल द्वारा बफर को पुन: प्रसंस्करण स्ट्रीम में वापस जारी करने के बाद, इसे पुन: उपयोग के लिए आउटपुट कतार में वापस कर दिया जाएगा।
त्रुटि स्थितियाँ:
- पुनर्प्रसंस्करण स्ट्रीम के आधार के लिए अनुपयुक्त आकार/प्रारूप की आउटपुट स्ट्रीम का उपयोग करना।
- एक साथ बहुत अधिक पुनर्संसाधन स्ट्रीम आवंटित करने का प्रयास किया जा रहा है।
इनपुट पैरामीटर:
- आउटपुट_स्ट्रीम_आईडी: मौजूदा आउटपुट स्ट्रीम की आईडी जिसका आकार और प्रारूप पुन: प्रसंस्करण के लिए उपयुक्त है।
- reprocess_stream_ops: इस स्ट्रीम के लिए बफ़र्स प्राप्त करने और जारी करने के लिए फ़ंक्शन पॉइंटर्स की एक संरचना। अंतर्निहित स्ट्रीम उसी ग्राफ़िक्स बफ़र हैंडल का उपयोग करेगी जैसा कि आउटपुट स्ट्रीम उपयोग करता है।
आउटपुट पैरामीटर:
- स्ट्रीम_आईडी: इस स्ट्रीम की पहचान करने वाला एक अहस्ताक्षरित पूर्णांक। इस मान का उपयोग स्ट्रीम की पहचान करने और स्ट्रीम जारी करने के लिए आने वाले अनुरोधों में किया जाता है। इन आईडी को इनपुट स्ट्रीम आईडी से अलग क्रमांकित किया गया है।
एचएएल क्लाइंट को उस आउटपुट स्ट्रीम को रिलीज़ करने से पहले हमेशा रीप्रोसेसिंग स्ट्रीम को रिलीज़ करना होगा जिस पर वह आधारित है।
int(* आवंटित_स्ट्रीम)(स्थिरांक संरचना कैमरा2_डिवाइस *,uint32_t चौड़ाई, uint32_t ऊंचाई, पूर्णांक प्रारूप, स्थिरांक कैमरा2_स्ट्रीम_ ops_t *stream_ops,uint32_t *stream_id, uint32_t *format_actual,uint32_t *उपयोग, uint32_t *max_buffers) |
आवंटित_स्ट्रीम:
उपयोग के लिए एक नई आउटपुट स्ट्रीम आवंटित करें, जो आउटपुट बफर चौड़ाई, ऊंचाई, लक्ष्य और संभवतः पिक्सेल प्रारूप द्वारा परिभाषित हो। सफलता पर नई स्ट्रीम की आईडी, ग्रालोक उपयोग झंडे, न्यूनतम कतार बफर गिनती और संभवतः पिक्सेल प्रारूप लौटाता है। त्रुटि स्थितियाँ:
- चौड़ाई/ऊंचाई/प्रारूप संयोजन का अनुरोध करना जो सेंसर की स्थिर विशेषताओं द्वारा समर्थित के रूप में सूचीबद्ध नहीं है
- किसी दिए गए प्रारूप प्रकार की बहुत अधिक स्ट्रीम के लिए पूछना (उदाहरण के लिए, 2 बायर कच्ची स्ट्रीम)।
इनपुट पैरामीटर:
- चौड़ाई, ऊंचाई, प्रारूप: इस स्ट्रीम के माध्यम से भेजे जाने वाले बफ़र्स के लिए विशिष्टता। प्रारूप HAL_PIXEL_FORMAT_* सूची से एक मान है। यदि HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED का उपयोग किया जाता है, तो प्लेटफ़ॉर्म ग्रैलोक मॉड्यूल कैमरा HAL और स्ट्रीम के उपभोक्ता द्वारा प्रदान किए गए उपयोग फ़्लैग के आधार पर एक प्रारूप का चयन करेगा। यदि आवश्यक हो तो कार्यान्वयन-विशिष्ट प्रारूप प्राप्त करने के लिए कैमरा एचएएल को रजिस्टर_स्ट्रीम_बफ़र्स कॉल में उसे सौंपे गए बफ़र्स का निरीक्षण करना चाहिए।
- स्ट्रीम_ऑप्स: इस स्ट्रीम के लिए बफ़र्स प्राप्त करने और कतारबद्ध करने के लिए फ़ंक्शन पॉइंटर्स की एक संरचना। अंतर्निहित स्ट्रीम को उपयोग और max_buffers आउटपुट के आधार पर कॉन्फ़िगर किया जाएगा। इस संरचना में विधियों को allocate_stream रिटर्न के बाद तक नहीं बुलाया जा सकता है।
आउटपुट पैरामीटर:
- स्ट्रीम_आईडी: इस स्ट्रीम की पहचान करने वाला एक अहस्ताक्षरित पूर्णांक। इस मान का उपयोग स्ट्रीम की पहचान करने और स्ट्रीम जारी करने के लिए आने वाले अनुरोधों में किया जाता है।
- उपयोग: अनुरोधित प्रकार के डेटा के उत्पादन के लिए एचएएल डिवाइस द्वारा आवश्यक ग्रैलोक उपयोग मास्क। इसका उपयोग स्ट्रीम बफ़र कतार के लिए नए ग्रालोक बफ़र्स आवंटित करने में किया जाता है।
- max_buffers: HAL डिवाइस को एक ही समय में बफ़र्स की अधिकतम संख्या को हटाने की आवश्यकता हो सकती है। डिवाइस एक ही समय में इस मान से अधिक बफ़र्स को हटा नहीं सकता है।
int(*struct_default_request)(const struct कैमरा2_डिवाइस *, int request_template, कैमरा_मेटाडेटा_t **अनुरोध) |
मानक कैमरा उपयोग मामलों के लिए एक भरा हुआ डिफ़ॉल्ट अनुरोध बनाएं।
डिवाइस को एक पूर्ण अनुरोध वापस करना होगा जो अनुरोधित उपयोग के मामले को पूरा करने के लिए कॉन्फ़िगर किया गया है, जो CAMERA2_TEMPLATE_* एनम में से एक होना चाहिए। android.request.outputStreams को छोड़कर सभी अनुरोध नियंत्रण फ़ील्ड शामिल होने चाहिए।
लौटाए गए मेटाडेटा बफ़र को allocate_camera_metadata के साथ आवंटित किया जाना चाहिए। फ़्रेमवर्क बफ़र का स्वामित्व लेता है।
int(* डंप)(const struct कैमरा2_डिवाइस *, int fd) |
int(* फ्लश_कैप्चर्स_इन_प्रोग्रेस)(कास्ट स्ट्रक्चर कैमरा2_डिवाइस *) |
सभी प्रगतिरत कैप्चर को फ्लश करें। इसमें सभी कतारबद्ध अनुरोध (नियमित या पुनर्प्रसंस्करण) शामिल हैं जिन्होंने अभी तक किसी भी आउटपुट को स्ट्रीम या फ्रेम कतार में नहीं रखा है। आंशिक रूप से पूर्ण किए गए कैप्चर सामान्य रूप से पूर्ण किए जाने चाहिए. फ्लश पूरा होने तक अनुरोध कतार से कोई नया अनुरोध हटाया नहीं जा सकता।
int(* get_in_progress_count)(const struct कैमरा2_डिवाइस *) |
इस समय डिवाइस द्वारा संसाधित किए जा रहे कैमरा अनुरोधों की संख्या (कैप्चर/पुन: प्रसंस्करण जिनके अनुरोध को हटा दिया गया है, लेकिन अभी तक आउटपुट पाइपलाइन पर सूचीबद्ध नहीं किया गया है)। जब तक प्रगति की गिनती 0 न हो, तब तक फ्रेमवर्क द्वारा कोई स्ट्रीम जारी नहीं की जा सकती।
int(* get_instance_metadata)(const struct कैमरा2_device *, कैमरा_मेटाडेटा **instance_metadata) |
डिवाइस-इंस्टेंस-विशिष्ट मेटाडेटा प्राप्त करें। यह मेटाडेटा कैमरा डिवाइस के एकल उदाहरण के लिए स्थिर होना चाहिए, लेकिन ओपन() कॉल के बीच भिन्न हो सकता है। लौटाया गया कैमरा_मेटाडेटा पॉइंटर तब तक वैध होना चाहिए जब तक कि डिवाइस क्लोज़() विधि को कॉल न किया जाए।
संस्करण जानकारी:
CAMERA_DEVICE_API_VERSION_2_0:
उपलब्ध नहीं है। फ़्रेमवर्क इस फ़ंक्शन पॉइंटर तक नहीं पहुंच सकता है।
CAMERA_DEVICE_API_VERSION_2_1:
वैध। फ्रेमवर्क द्वारा बुलाया जा सकता है।
int(* get_metadata_vendor_tag_ops)(const struct कैमरा2_device *, विक्रेता_tag_query_ops_t **ops) |
int(* notify_request_queue_not_empty)(const struct कैमरा2_डिवाइस *) |
int(* रजिस्टर_स्ट्रीम_बफ़र्स)(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t स्ट्रीम_आईडी, int num_buffers, बफ़र_हैंडल_t *बफ़र्स) |
किसी दिए गए स्ट्रीम के लिए बफ़र्स पंजीकृत करें। इसे एक सफल allocate_stream कॉल के बाद और स्ट्रीम को संदर्भित करने वाले पहले अनुरोध को सूचीबद्ध करने से पहले कॉल किया जाता है। इस पद्धति का उद्देश्य एचएएल डिवाइस को बाद में उपयोग के लिए बफ़र्स को मैप करने या अन्यथा तैयार करने की अनुमति देना है। num_buffers कम से कम max_buffers (allocate_stream से) होने की गारंटी है, लेकिन बड़ा हो सकता है। उपयोग के लिए बफ़र्स पहले से ही लॉक कर दिए जाएंगे. कॉल के अंत में, सभी बफ़र्स कतार में लौटने के लिए तैयार होने चाहिए। यदि स्ट्रीम प्रारूप HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED पर सेट किया गया था, तो कैमरा HAL को किसी भी प्लेटफ़ॉर्म-निजी पिक्सेल प्रारूप जानकारी निर्धारित करने के लिए यहां पारित बफ़र्स का निरीक्षण करना चाहिए।
int(* रिलीज_रेप्रोसेस_स्ट्रीम)(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t स्ट्रीम_आईडी) |
int(* रिलीज_स्ट्रीम)(कास्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t स्ट्रीम_आईडी) |
int(* set_frame_queue_dst_ops)(स्थिरांक struct कैमरा2_डिवाइस *, स्थिरांक कैमरा2_frame_queue_dst_ops_t *frame_dst_ops) |
int(* set_notify_callback)(स्थिरांक संरचना कैमरा2_डिवाइस *, कैमरा2_नोटिफ़ाई_कॉलबैक सूचित_सीबी, शून्य *उपयोगकर्ता) |
int(* set_request_queue_src_ops)(स्थिरांक struct कैमरा2_डिवाइस *, स्थिरांक कैमरा2_request_queue_src_ops_t *request_src_ops) |
int(* ट्रिगर_एक्शन)(कॉन्स्ट स्ट्रक्चर कैमरा2_डिवाइस *, uint32_t ट्रिगर_आईडी, int32_t ext1, int32_t ext2) |
इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था:
- हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ कैमरा2.एच