camera3_capture_request स्ट्रक्चर का रेफ़रंस
#include <
camera3.h
>
डेटा फ़ील्ड |
|
uint32_t | frame_number |
const camera_metadata_t * | सेटिंग |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
पूरी जानकारी
camera3_capture_request_t:
इमेज कैप्चर/बफ़र को फिर से प्रोसेस करने के लिए एक अनुरोध. इसे process_capture_request() फ़्रेमवर्क, Camera HAL डिवाइस पर भेजता है.
अनुरोध में, इस कैप्चर के लिए इस्तेमाल की जाने वाली सेटिंग और नतीजे वाली इमेज का डेटा लिखने के लिए आउटपुट बफ़र का सेट शामिल होता है. इसमें वैकल्पिक रूप से इनपुट बफ़र शामिल हो सकता है. ऐसे में, कैमरा सेंसर से नई इमेज कैप्चर करने के बजाय, उस इनपुट बफ़र को फिर से प्रोसेस करने का अनुरोध किया जाता है. कैप्चर की पहचान, frame_number से की जाती है.
इसके जवाब में, कैमरा एचएएल डिवाइस को प्रोसेस_कैप्चर_नतीजा() कॉलबैक का इस्तेमाल करके, फ़्रेमवर्क को एक साथ कई camera3_capture_result का स्ट्रक्चर भेजना होगा.
फ़ील्ड का दस्तावेज़
uint32_t frame_number |
फ़्रेम नंबर, फ़्रेम की यूनीक पहचान करने के लिए फ़्रेमवर्क से सेट किया जाने वाला एक बढ़ता हुआ पूर्णांक होता है. इसे नतीजे के कॉल में वापस लाया जाना चाहिए. साथ ही, इसका इस्तेमाल camera3_callback_ops_t.notify() पर भेजी गई असाइनोक्रोनस सूचनाओं में अनुरोध की पहचान करने के लिए भी किया जाता है.
camera3_stream_buffer_t * input_buffer |
इस अनुरोध के लिए इस्तेमाल किया जाने वाला इनपुट स्ट्रीम बफ़र, अगर कोई हो.
अगर input_buffer शून्य है, तो इसका मतलब है कि इमेजर से नई इमेज कैप्चर करने का अनुरोध किया गया है. अगर input_buffer मान्य है, तो इसका मतलब है कि input_buffer में मौजूद इमेज को फिर से प्रोसेस करने का अनुरोध किया गया है.
बाद वाले मामले में, process_capture_request() के रिटर्न होने से पहले, एचएएल को input_buffer के release_fence को किसी मान्य सिंक फ़ेंस पर सेट करना होगा. अगर एचएएल सिंक के साथ काम नहीं करता है, तो उसे -1 पर सेट करना होगा.
इनपुट बफ़र को ऐक्सेस करने से पहले, एचएएल को 'ऐक्सेस करने के लिए सिंक फ़ेंस' पर इंतज़ार करना पड़ता है.
<= CAMERA_DEVICE_API_VERSION_3_1:
यहां शामिल किए गए किसी भी इनपुट बफ़र को अनुरोध में शामिल करने से पहले, register_stream_buffers() के ज़रिए HAL के साथ रजिस्टर किया जाएगा.
>= CAMERA_DEVICE_API_VERSION_3_2:
बफ़र, एचएएल के साथ पहले से रजिस्टर नहीं किए गए होंगे. इसके बाद के अनुरोधों के लिए, बफ़र का फिर से इस्तेमाल किया जा सकता है या नए बफ़र उपलब्ध कराए जा सकते हैं.
uint32_t num_output_buffers |
const camera3_stream_buffer_t * output_buffers |
num_output_buffers स्ट्रीम बफ़र का कलेक्शन, जिसे इस कैप्चर/फिर से प्रोसेस करने से मिली इमेज के डेटा से भरा जाएगा. HAL को हर स्ट्रीम बफ़र में डेटा लिखने से पहले, उसके लिए 'फ़ेंस हासिल करें' निर्देश का इंतज़ार करना होगा.
एचएएल, output_buffers में मौजूद असल buffer_handle_t एंट्री का मालिकाना हक लेता है. फ़्रेमवर्क तब तक उन्हें ऐक्सेस नहीं करता, जब तक वे camera3_capture_result_t में वापस नहीं आ जाते.
<= CAMERA_DEVICE_API_VERSION_3_1:
यहां शामिल सभी बफ़र, अनुरोध में शामिल किए जाने से पहले, register_stream_buffers() के ज़रिए HAL के साथ रजिस्टर किए जा चुके होंगे.
>= CAMERA_DEVICE_API_VERSION_3_2:
इस अनुरोध में शामिल कोई भी या सभी बफ़र, नए हो सकते हैं. इसका मतलब है कि HAL ने उन्हें पहले कभी नहीं देखा है.
const camera_metadata_t * settings |
सेटिंग बफ़र में, अनुरोध के लिए कैप्चर और प्रोसेसिंग पैरामीटर शामिल होते हैं. किसी खास मामले में, सेटिंग बफ़र में NULL का दिखना इस बात का संकेत देता है कि सेटिंग, हाल ही में सबमिट किए गए कैप्चर अनुरोध से मेल खाती हैं. configure_streams() कॉल के बाद, सबमिट किए गए पहले अनुरोध के तौर पर NULL बफ़र का इस्तेमाल नहीं किया जा सकता.
इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था:
- hardware/libhardware/include/hardware/ camera3.h