camera3_callback_ops संरचना संदर्भ

camera3_callback_ops संरचना संदर्भ

#include < camera3.h >

डेटा फ़ील्ड

शून्य (*) process_capture_result ) ( कॉन्स्टेबल कैमरा3_callback_ops *, const camera3_capture_result_t * परिणाम)
शून्य (*) सूचित ) (स्थिरांक struct camera3_callback_ops *, स्थिरांक camera3_notify_msg_t * संदेश)

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

फ़ाइल camera3.h की लाइन 2397 पर परिभाषा।

फील्ड प्रलेखन

सूचित करें:

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

एक साथ कई थ्रेड नोटिफ़िकेशन () कह सकते हैं।

<= CAMERA_DEVICE_API_VERSION_3_1:

किसी अनुरोध के लिए एक्सपोज़र की शुरुआत के लिए अधिसूचना एचएएल द्वारा पहले कॉल से पहले उस प्रक्रिया के लिए process_capture_result () के लिए भेजी जानी चाहिए।

> = CAMERA_DEVICE_API_VERSION_3_2:

ढांचे के लिए दिया बफ़र जोखिम टाइमस्टैम्प (या एक पुन: संसाधित अनुरोध के लिए जोखिम टाइमस्टैम्प के इनपुट छवि के शुरू) के एक शुरुआत तक अनुप्रयोग परत के लिए भेजा नहीं की जाएगी एक शटर के माध्यम से प्राप्त हो गया है सूचित () कॉल। इस कॉल को जल्दी से जल्दी भेजने की अत्यधिक अनुशंसा की जाती है।


प्रदर्शन संबंधी जरूरतें:

यह एक नॉन-ब्लॉकिंग कॉल है। फ्रेमवर्क इस कॉल को 5ms में लौटा देगा।

फाइल कैमरा 3 की लाइन 2499 पर परिभाषा। एच

void (* process_capture_result) ( कॉन्स्टेबल कैमरा3_callback_ops *, const camera3_capture_result_t * परिणाम)

process_capture_result:

एक पूर्ण कब्जा से ढांचे के लिए परिणाम भेजें। process_capture_result () HAL द्वारा एकल कैप्चर अनुरोध के जवाब में कई बार लागू किया जा सकता है। यह, उदाहरण के लिए, मेटाडाटा और कम-रिज़ॉल्यूशन वाले बफ़र्स को एक कॉल में, और बाद में कॉल में जेपीईजी बफ़र्स को पोस्ट-प्रोफ़ेशनल उपलब्ध होने के बाद लौटा देता है। प्रत्येक कॉल में उस मेटाडेटा या बफ़र्स के लिए अनुरोध की फ़्रेम संख्या शामिल होनी चाहिए।

पूर्ण परिणाम का एक घटक (बफर या मेटाडेटा) केवल एक process_capture_result कॉल में शामिल किया जा सकता है। प्रत्येक स्ट्रीम के लिए एक बफ़र, और परिणाम मेटाडेटा, HAL द्वारा प्रत्येक अनुरोध के लिए प्रोसेस_capture_result कॉल में से किसी एक में लौटाया जाना चाहिए, यहां तक ​​कि आउटपुट के कुछ त्रुटियों के मामले में भी। न तो आउटपुट बफ़र्स या परिणाम मेटाडेटा के साथ process_capture_result () को कॉल करने की अनुमति नहीं है।

किसी भी परिणाम के लिए मेटाडेटा और बफ़र्स को वापस करने का क्रम मायने नहीं रखता है, लेकिन किसी दिए गए स्ट्रीम के लिए बफ़र्स को फिफ़ट ऑर्डर में वापस किया जाना चाहिए। तो धारा ए के लिए अनुरोध 5 के लिए बफर ए धारा 6 के लिए अनुरोध 6 के लिए बफर से पहले हमेशा वापस किया जाना चाहिए। यह परिणाम मेटाडेटा पर भी लागू होता है; अनुरोध 5 के लिए मेटाडेटा अनुरोध 6 के लिए मेटाडेटा से पहले वापस किया जाना चाहिए।

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

एचएएल परिणाम संरचना के स्वामित्व को बरकरार रखता है, जिसे केवल इस कॉल के दौरान उपयोग करने के लिए वैध होना चाहिए। इस कॉल के वापस आने से पहले इसकी रूपरेखा की आवश्यकता होगी।

आउटपुट बफ़र्स को अभी तक भरने की आवश्यकता नहीं है; फ्रेम बफर डेटा को पढ़ने से पहले स्ट्रीम बफर रिलीज सिंक बाड़ पर इंतजार करेंगे। इसलिए, इस पद्धति को जल्द से जल्द एचएएल द्वारा बुलाया जाना चाहिए, भले ही कुछ या सभी आउटपुट बफ़र्स अभी भी भरे जा रहे हैं। HAL में प्रत्येक आउटपुट_बफ़र स्ट्रीम बफर प्रविष्टि में मान्य रिलीज़ सिंक फ़ेंस शामिल होना चाहिए, या -1 यदि वह स्ट्रीम बफर पहले से ही भरा हो।

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

यदि कोई आउटपुट बफ़र नहीं भरा जा सकता है, तो उसका स्थिति फ़ील्ड STATUS_ERROR पर सेट होना चाहिए। इसके अलावा, सूचित () को एक ERROR_BUFFER संदेश के साथ बुलाया जाना चाहिए।

यदि संपूर्ण कैप्चर विफल हो गया है, तो इस पद्धति को अभी भी आउटपुट बफ़र्स को फ्रेमवर्क में वापस करने के लिए बुलाया जाना चाहिए। सभी बफर स्थिति STATUS_ERROR होनी चाहिए, और परिणाम मेटाडेटा एक खाली बफर होना चाहिए। इसके अलावा, सूचित () को ERROR_REQUEST संदेश के साथ बुलाया जाना चाहिए। इस स्थिति में, व्यक्तिगत ERROR_RESULT / ERROR_BUFFER संदेश नहीं भेजे जाने चाहिए।

प्रदर्शन संबंधी जरूरतें:

यह एक नॉन-ब्लॉकिंग कॉल है। फ्रेमवर्क इस कॉल को 5ms में लौटा देगा।

पाइपलाइन की विलंबता (परिभाषा के लिए S7 देखें) 4 फ्रेम अंतराल से कम या बराबर होनी चाहिए, और 8 फ्रेम अंतराल से कम या बराबर होनी चाहिए।

फाइल कैमरा3 . h की लाइन 2466 पर परिभाषा।


इस संरचना का प्रलेखन निम्न फ़ाइल से उत्पन्न हुआ था:
  • हार्डवेयर / कामचलाऊ / शामिल / हार्डवेयर / camera3.h