একক প্রযোজক, একাধিক ভোক্তা ক্যামেরা বাফার পরিবহন

এই ফিচারটি এমন কিছু পদ্ধতি চালু করেছে যা ক্যামেরা ক্লায়েন্টদের ক্যাপচার সেশন সক্রিয় থাকা অবস্থায় এবং ক্যামেরা স্ট্রিমিং চলাকালীন গতিশীলভাবে আউটপুট সারফেস যোগ ও অপসারণ করার সুযোগ দেয়। একটি নতুন আউটপুট ব্যবহারকারী-নির্বাচিত কোনো নির্দিষ্ট শেয়ার্ড ক্যামেরা স্ট্রিমের সাথে ম্যাপ করা যেতে পারে। একটি সারফেস যোগ করার পর, তা যেকোনো সময় অপসারণ করা যায়।

মূল ধারণাটি হলো একটি নির্দিষ্ট ক্যামেরা স্ট্রিমের সাথে যুক্ত বাফারগুলিকে একাধিক আউটপুট সারফেসের মধ্যে ভাগ করে দেওয়া। একটি অভ্যন্তরীণ রেফারেন্স কাউন্টার কনজিউমার প্রান্তে পরবর্তী প্রক্রিয়াকরণের জন্য বাফারগুলি প্রস্তুত হওয়ার সাথে সাথে সেগুলির হিসাব রাখে। যখন সমস্ত কনজিউমার তাদের নিজ নিজ কাজ সম্পন্ন করে, তখন বাফারটি ডি-কিউড হয়ে যায় এবং ক্যামেরার জন্য উপলব্ধ হয়।

বাফার শেয়ারিং

চিত্র ১. বাফার শেয়ারিং

চিত্র ১-এ একটি উদাহরণমূলক পরিস্থিতি দেখানো হয়েছে যেখানে ক্যামেরা সার্ভিসের মধ্যে একটি ডেডিকেটেড শেয়ার্ড আউটপুট স্ট্রিমের অভ্যন্তরে স্ট্রিম স্প্লিটার কম্পোনেন্ট দ্বারা ক্যামেরা স্ট্রিম ২ দ্বারা প্রক্রিয়াকৃত বাফারগুলিকে ডায়নামিকভাবে সংযুক্ত ও বিচ্ছিন্ন করা হয়, রেফারেন্স কাউন্ট করা হয় এবং পরিচালনা করা হয়।

উদাহরণ এবং উৎস

এই ফিচারটির মূল বাস্তবায়ন Camera3StreamSplitter মডিউলে পাওয়া যাবে। এই ফিচারটির ডকুমেন্টেশন ডেভেলপার রেফারেন্সে পাওয়া যাবে:

বাস্তবায়ন

ক্যামেরা HAL-এর দিকে কোনো বাস্তবায়নের প্রয়োজন নেই, কারণ এই বৈশিষ্ট্যটি ফ্রেমওয়ার্কের দিকেই বাস্তবায়িত করা হয়েছে।

বৈধতা

আপনার ইমপ্লিমেন্টেশনে অবশ্যই MultiViewTest মডিউলের এই ফিচারটি অন্তর্ভুক্তকারী CTS কেস এবং নেটিভ API-এর জন্য নেটিভ JNI লাইব্রেরি পাস করতে হবে।