एक प्रोड्यूसर, एक से ज़्यादा उपभोक्ता कैमरा बफ़र ट्रांसपोर्ट

इस सुविधा में, तरीकों का एक सेट दिया गया है. इससे कैमरा क्लाइंट, कैप्चर सेशन चालू होने और कैमरा स्ट्रीमिंग जारी रहने के दौरान, आउटपुट सर्फ़ेस को डाइनैमिक तरीके से जोड़ और हटा सकते हैं. नए आउटपुट को, उपयोगकर्ता की ओर से चुनी गई किसी शेयर किए गए कैमरे की स्ट्रीम पर मैप किया जा सकता है. किसी प्लैटफ़ॉर्म को जोड़ने के बाद, उसे कभी भी हटाया जा सकता है.

इसका मतलब यह है कि किसी कैमरे की स्ट्रीम से जुड़े बफ़र को कई आउटपुट सर्फ़ेस में शेयर किया जाता है. इंटरनल रेफ़रंस काउंटर, बफ़र को ट्रैक करता है. इससे पता चलता है कि बफ़र, उपभोक्ता के लिए आगे की प्रोसेसिंग के लिए तैयार हैं या नहीं. जब सभी उपभोक्ता अपने-अपने टास्क पूरे कर लेते हैं, तब बफ़र को डीक्यू कर दिया जाता है और यह कैमरे के लिए उपलब्ध हो जाता है.

बफ़र शेयर करने की सुविधा

पहली इमेज. बफ़र शेयर करने की सुविधा

पहली इमेज में, एक उदाहरण दिखाया गया है. इसमें बताया गया है कि कैमरा स्ट्रीम 2 से प्रोसेस किए गए बफ़र, कैमरा सेवा में मौजूद शेयर की गई आउटपुट स्ट्रीम में डाइनैमिक तरीके से अटैच और डिटैच किए जाते हैं. साथ ही, स्ट्रीम स्प्लिटर कॉम्पोनेंट के ज़रिए उनकी गिनती की जाती है और उन्हें मैनेज किया जाता है.

उदाहरण और सोर्स

इस सुविधा को लागू करने से जुड़ी मुख्य जानकारी, Camera3StreamSplitter मॉड्यूल में मिल सकती है. इस सुविधा से जुड़ा दस्तावेज़, डेवलपर के इस रेफ़रंस में देखा जा सकता है:

लागू करना

इस सुविधा को फ़्रेमवर्क की ओर से लागू किया जाता है. इसलिए, Camera HAL की ओर से इसे लागू करने की ज़रूरत नहीं है.

सत्यापन

आपका लागू किया गया तरीका, इस सुविधा को कवर करने वाले सीटीएस टेस्ट पास करना चाहिए. ये टेस्ट, नेटिव एपीआई के लिए MultiViewTest मॉड्यूल और नेटिव JNI लाइब्रेरी से लिए जाते हैं.