এই ফিচারে এমন কিছু পদ্ধতি আছে যা ক্যামেরা ক্লায়েন্টদের ক্যাপচার সেশন অ্যাক্টিভ থাকাকালীন এবং ক্যামেরা স্ট্রিমিং চলাকালীন ডাইনামিক উপায়ে আউটপুট সারফেস যোগ করতে ও সরাতে দেয়। নতুন আউটপুট নির্দিষ্ট, ব্যবহারকারীর বেছে নেওয়া শেয়ার করা ক্যামেরা স্ট্রিমে ম্যাপ করা যেতে পারে। কোনও সারফেস যোগ করার পরে, সেটি যেকোনও সময় সরিয়ে দেওয়া যেতে পারে।
সাধারণ ধারণা হল, একাধিক আউটপুট সারফেসের মধ্যে কোনও নির্দিষ্ট ক্যামেরা স্ট্রিমের সাথে যুক্ত বাফার শেয়ার করা। একটি ইন্টার্নাল রেফারেন্স কাউন্টার বাফার ট্র্যাক করে, কারণ সেগুলি গ্রাহকের সাইডে আরও প্রসেস করার জন্য প্রস্তুত হয়ে যায়। সব গ্রাহক তাদের নিজ নিজ টাস্ক সম্পূর্ণ করলে, বাফার ডি-কিউ হয়ে যায় এবং ক্যামেরার জন্য উপলভ্য হয়।
ছবি ১. বাফার শেয়ারিং
ছবি ১-এ একটি উদাহরণমূলক পরিস্থিতি দেখানো হয়েছে যেখানে ক্যামেরা স্ট্রিম ২-এর প্রসেস করা বাফারগুলি ডায়নামিক অ্যাটাচ ও ডিটাচ করা, রেফারেন্স কাউন্ট করা এবং ম্যানেজ করা হয়। এটি ক্যামেরা পরিষেবার মধ্যে একটি ডেডিকেটেড শেয়ার করা আউটপুট স্ট্রিমের স্ট্রিম স্প্লিটার কম্পোনেন্ট দ্বারা করা হয়।
উদাহরণ ও সোর্স
এই ফিচারের মূল প্রয়োগ
Camera3StreamSplitter
মডিউলে পাওয়া যাবে। এই ফিচারের ডকুমেন্টেশন ডেভেলপার রেফারেন্সে পাওয়া যাবে:
প্রয়োগ
ক্যামেরা HAL-এর দিকে কোনও প্রয়োগের প্রয়োজন নেই, কারণ এই ফিচারটি ফ্রেমওয়ার্কের দিকে প্রয়োগ করা হয়েছে।
যাচাইকরণ
আপনার ইমপ্লিমেন্টেশনকে অবশ্যই নেটিভ API-এর জন্য MultiViewTest মডিউল এবং নেটিভ JNI লাইব্রেরি থেকে এই ফিচার কভার করা CTS কেস পাস করতে হবে।