camera3_stream_buffer स्ट्रक्चर का रेफ़रंस
#include <
camera3.h
>
डेटा फ़ील्ड |
|
camera3_stream_t * | stream |
buffer_handle_t * | बफ़र |
int | स्थिति |
int | acquire_fence |
int | release_fence |
पूरी जानकारी
camera3_stream_buffer_t:
camera3 स्ट्रीम का एक बफ़र. इसमें, पैरंट स्ट्रीम का हैंडल, gralloc बफ़र का हैंडल, और सिंक फ़ेंस शामिल होते हैं
बफ़र से यह पता नहीं चलता कि उसका इस्तेमाल इनपुट के लिए करना है या आउटपुट के लिए. यह इस बात से तय होता है कि उसकी पैरंट स्ट्रीम किस तरह की है और बफ़र को HAL डिवाइस में कैसे पास किया जाता है.
फ़ील्ड का दस्तावेज़
int acquire_fence |
इस बफ़र के लिए, सिंक फ़ेंस हासिल करें. इस बफ़र से पढ़ने या उसमें लिखने से पहले, एचएएल को इस फ़ेंस एफ़डी पर इंतज़ार करना होगा.
फ़्रेमवर्क को -1 पर सेट किया जा सकता है, ताकि यह पता चल सके कि इस बफ़र के लिए इंतज़ार करने की ज़रूरत नहीं है.
जब HAL, process_capture_result() की मदद से फ़्रेमवर्क को कोई आउटपुट बफ़र दिखाता है, तो acquire_fence को -1 पर सेट करना ज़रूरी है. अगर बफ़र भरने में हुई गड़बड़ी की वजह से, एचएएल कभी भी acquire_fence पर इंतज़ार नहीं करता है, तो process_capture_result() को कॉल करते समय, एचएएल को बफ़र के release_fence को, फ़्रेमवर्क से पास किए गए acquire_fence के तौर पर सेट करना होगा. इससे फ़्रेमवर्क, बफ़र का फिर से इस्तेमाल करने से पहले, फ़ेंस पर इंतज़ार कर पाएगा.
इनपुट बफ़र के लिए, HAL को process_capture_request() कॉल के दौरान acquire_fence फ़ील्ड में बदलाव नहीं करना चाहिए.
>= CAMERA_DEVICE_API_VERSION_3_2:
जब HAL, process_capture_result() के साथ फ़्रेमवर्क को इनपुट बफ़र दिखाता है, तो acquire_fence को -1 पर सेट किया जाना चाहिए. अगर किसी गड़बड़ी की वजह से एचएएल, इनपुट बफ़र के लिए फ़ेंस हासिल करने का इंतज़ार कभी नहीं करता है, तो सिंक फ़ेंस को उसी तरह से मैनेज किया जाना चाहिए जिस तरह आउटपुट बफ़र के लिए किया जाता है.
int release_fence |
इस बफ़र के लिए रिलीज़ सिंक फ़ेंस. फ़्रेमवर्क को बफ़र दिखाते समय, एचएएल को यह फ़ेंस सेट करना होगा या -1 लिखकर यह बताना होगा कि इस बफ़र के लिए इंतज़ार करने की ज़रूरत नहीं है.
आउटपुट बफ़र के लिए, फ़ेंस को process_capture_result() फ़ंक्शन में पास किए गए output_buffers कलेक्शन में सेट किया जाना चाहिए.
<= CAMERA_DEVICE_API_VERSION_3_1:
इनपुट बफ़र के लिए, रिलीज़ फ़ेंस को process_capture_request() कॉल से सेट किया जाना चाहिए.
>= CAMERA_DEVICE_API_VERSION_3_2:
इनपुट बफ़र के लिए, फ़ेंस को process_capture_result() फ़ंक्शन में पास किए गए input_buffer में सेट किया जाना चाहिए.
इस बफ़र के लिए release_fence सिग्नल देने के बाद, एचएएल को इस बफ़र को ऐक्सेस करने की कोई और कोशिश नहीं करनी चाहिए, क्योंकि इसका मालिकाना हक पूरी तरह से फ़्रेमवर्क को वापस ट्रांसफ़र कर दिया गया है.
अगर फ़ेंस के तौर पर -1 तय किया गया था, तो process_capture_result को कॉल करने के तुरंत बाद, इस बफ़र का मालिकाना हक वापस ट्रांसफ़र कर दिया जाता है.
int status |
बफ़र की मौजूदा स्थिति, camera3_buffer_status_t की वैल्यू में से कोई एक. फ़्रेमवर्क, गड़बड़ी की स्थिति में मौजूद बफ़र को एचएएल को पास नहीं करेगा. अगर एचएएल किसी बफ़र को भर नहीं पाता है, तो process_capture_result() के साथ फ़्रेमवर्क में लौटने पर, उसका स्टेटस CAMERA3_BUFFER_STATUS_ERROR पर सेट होना चाहिए.
camera3_stream_t * स्ट्रीम |
इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था:
- hardware/libhardware/include/hardware/ camera3.h