संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

#include < camera2.h >

डेटा फ़ील्ड

int (* request_count ) ( कांस्टेबल कैमरा 2_request_queue_src_ops * q)
int (* dequeue_request ) ( कास्ट स्ट्रक्चर कैमरा 2_request_queue_src_ops * q, camera_metadata_t ** बफर)
int (* free_request ) ( कास्ट स्ट्रक्चर कैमरा 2_request_queue_src_ops * q, camera_metadata_t * old_buffer)

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

इनपुट कतार प्रोटोकॉल का अनुरोध करें:

रूपरेखा कतार और उसकी सामग्री रखती है। प्रारंभ में, कतार खाली है।

  1. जब पहली मेटाडेटा बफर को कतार में रखा जाता है, तो फ्रेमवर्क सूचित_request_queue_not_empty () कॉल करके डिवाइस को संकेत देता है।
  2. नोटिफ़ायर होने के बाद, डिवाइस को अगले बफर को संभालने के लिए तैयार होने के बाद डिवाइस को डेक्यू () कॉल करना होगा।
  3. एक बार जब डिवाइस ने एक बफर को संसाधित किया है, और अगले बफर के लिए तैयार है, तो उसे अधिसूचना के लिए इंतजार करने के बजाय फिर से dequeue () कॉल करना होगा। यदि अधिक बफ़र उपलब्ध नहीं हैं, तो dequeue () NULL वापस आ जाएगा। इस बिंदु के बाद, जब एक बफर उपलब्ध हो जाता है, तो रूपरेखा को फिर से inform_request_queue_not_empty () को कॉल करना होगा। यदि डिवाइस को dequeue से NULL रिटर्न मिलता है, तो उसे तब तक फिर से कतार को क्वेरी करने की आवश्यकता नहीं होती है जब तक कि एक Inform_request_queue_not_empty () कॉल स्रोत से प्राप्त नहीं होती है।
  4. यदि डिवाइस बफर_काउंट () को कॉल करता है और 0 प्राप्त करता है, तो इसका मतलब यह नहीं है कि फ्रेमवर्क एक Inform_request_queue_not_empty () कॉल प्रदान करेगा। इस उपकरण को केवल इस तरह की अधिसूचना प्रदान की जाएगी कि डिवाइस को एक फुल से निकलना, या प्रारंभिक स्टार्टअप पर प्राप्त हुआ है।
  5. अधिसूचित_request_queue_not_empty () कॉल के जवाब में dequeue () कॉल उसी थ्रेड पर हो सकता है जैसा कि Inform_request_queue_not_empty () कॉल, और सूचित कॉल के भीतर से किया जा सकता है।
  6. सभी विचाराधीन अनुरोध बफ़र्स को free_request पर कॉल करके फ्रेमवर्क पर लौटाया जाना चाहिए, जिसमें त्रुटियां होने पर, डिवाइस फ़्लश करने का अनुरोध किया जाता है, या जब डिवाइस बंद हो रहा हो।

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

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

int (* dequeue_request) ( कास्ट स्ट्रक्चर कैमरा 2_request_queue_src_ops * q, camera_metadata_t ** बफर)

रूपरेखा से मेटाडेटा बफर प्राप्त करें। यदि कोई त्रुटि नहीं है, तो ठीक है। यदि कतार खाली है, तो NULL को बफर में लौटाता है। उस स्थिति में, डिवाइस को फिर से dequeue करने का प्रयास करने से पहले एक सूचित_request_queue_not_empty () संदेश की प्रतीक्षा करनी चाहिए। इस तरह से प्राप्त बफ़र्स को free_request () के साथ फ्रेमवर्क में लौटाया जाना चाहिए।

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

मेटाडेटा बफर को एक बार उपयोग करने के बाद फ्रेमवर्क पर लौटें, या यदि कोई त्रुटि या शटडाउन होता है।

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

कतार में लंबित अनुरोध बफ़र्स की संख्या प्राप्त करें। यदि वर्तमान में एक बार-बार अनुरोध (स्ट्रीम अनुरोध) कॉन्फ़िगर किया गया है, तो CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS वापस कर सकते हैं। इस पद्धति को कॉल करने से इस बात पर कोई प्रभाव नहीं पड़ता है कि क्या फ्रेमवर्क द्वारा Inform_request_queue_not_empty () विधि को कॉल किया जाएगा।

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


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