27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
একক প্রযোজক, একাধিক ভোক্তা ক্যামেরা বাফার পরিবহন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
এই বৈশিষ্ট্যটি পদ্ধতির একটি সেট প্রবর্তন করে যা ক্যামেরা ক্লায়েন্টদের ক্যাপচার সেশন সক্রিয় থাকাকালীন এবং ক্যামেরা স্ট্রিমিং চলমান থাকাকালীন গতিশীলভাবে আউটপুট পৃষ্ঠগুলি যুক্ত করতে এবং সরাতে দেয়। একটি নতুন আউটপুট একটি নির্দিষ্ট, ব্যবহারকারী-নির্বাচিত শেয়ার্ড ক্যামেরা স্ট্রীমে ম্যাপ করতে পারে। একটি পৃষ্ঠ যোগ করার পরে, এটি যেকোনো সময় সরানো যেতে পারে।
সাধারণ ধারণা হল কয়েকটি আউটপুট পৃষ্ঠের মধ্যে একটি নির্দিষ্ট ক্যামেরা স্ট্রিমের সাথে যুক্ত বাফারগুলি ভাগ করা। একটি অভ্যন্তরীণ রেফারেন্স কাউন্টার বাফারগুলির ট্র্যাক রাখে কারণ তারা ভোক্তাদের দিকে আরও প্রক্রিয়াকরণের জন্য প্রস্তুত হয়। যখন সমস্ত ভোক্তা তাদের নিজ নিজ কাজগুলি সম্পন্ন করে তখন বাফারটি সারিবদ্ধ হয় এবং ক্যামেরার জন্য উপলব্ধ থাকে।

চিত্র 1. বাফার শেয়ারিং
চিত্র 1 একটি উদাহরণ দৃশ্যকল্প চিত্রিত করে যেখানে ক্যামেরা স্ট্রিম 2 দ্বারা প্রক্রিয়াকৃত বাফারগুলি গতিশীলভাবে সংযুক্ত এবং বিচ্ছিন্ন, রেফারেন্স গণনা করা হয় এবং ক্যামেরা পরিষেবার মধ্যে একটি ডেডিকেটেড শেয়ার্ড আউটপুট স্ট্রীমের মধ্যে স্ট্রিম স্প্লিটার উপাদান দ্বারা পরিচালিত হয়।
উদাহরণ এবং উৎস
এই বৈশিষ্ট্যটির মূল বাস্তবায়ন Camera3StreamSplitter
মডিউলে পাওয়া যাবে। এই বৈশিষ্ট্যের ডকুমেন্টেশন বিকাশকারী রেফারেন্সে পাওয়া যাবে:
বাস্তবায়ন
ক্যামেরা HAL সাইডে কোনো বাস্তবায়নের প্রয়োজন নেই কারণ এই বৈশিষ্ট্যটি ফ্রেমওয়ার্ক সাইডে প্রয়োগ করা হয়েছে।
বৈধতা
আপনার বাস্তবায়নকে অবশ্যই CTS কেস পাস করতে হবে যা এই বৈশিষ্ট্যটি MultiViewTest মডিউল এবং নেটিভ API-এর জন্য নেটিভ JNI লাইব্রেরি থেকে কভার করে।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Single producer, multiple consumer camera buffer transport\n\nThis feature introduces a set of methods that allows camera clients to add and\nremove output surfaces dynamically while the capture session is active and\ncamera streaming is ongoing. A new output can map to a specific, user-selected\n[shared camera](https://developer.android.com/reference/android/hardware/camera2/params/OutputConfiguration#enableSurfaceSharing())\nstream. After a surface is added, it can be removed at any time.\n\nThe general idea is to share the buffers associated with a particular camera\nstream within several output surfaces. An internal reference counter keeps track\nof the buffers as they become ready for further processing on the consumer side.\nWhen all consumers complete their respective tasks the buffer gets dequeued and\nis available for the camera.\n\n**Figure 1.** Buffer sharing\n\nFigure 1 depicts one example scenario where the buffers processed by camera\nstream 2 are dynamically attached and detached, reference counted, and managed\nby the stream splitter component inside a dedicated shared output stream within\nthe camera service.\n\nExamples and source\n-------------------\n\nThe core implementation of this feature can be found in the\n[`Camera3StreamSplitter`](https://android.googlesource.com/platform/frameworks/av/+/android16-release/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp)\nmodule. Documentation on this feature can be found in the developer reference:\n\n- [`updateOutputConfiguration()`](https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#updateOutputConfiguration(android.hardware.camera2.params.OutputConfiguration))\n- [`addSurface()`](https://developer.android.com/reference/android/hardware/camera2/params/OutputConfiguration#addSurface(android.view.Surface))\n- [`removeSurface()`](https://developer.android.com/reference/android/hardware/camera2/params/OutputConfiguration#removeSurface(android.view.Surface))\n\nImplementation\n--------------\n\nNo implementation is required on the Camera HAL side as this feature is\nimplemented on the framework side.\n\nValidation\n----------\n\nYour implementation must pass CTS cases that cover this feature from the\n[MultiViewTest](https://android.googlesource.com/platform/cts/+/android16-release/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java)\nmodule and the\n[native JNI library](https://android.googlesource.com/platform/cts/+/android16-release/tests/camera/libctscamera2jni/native-camera-jni.cpp)\nfor the native API."]]