SDV মিডিয়া: ক্যামেরা ব্যবহার করুন

এসডিভি মিডিয়া লিনাক্স V4L2 API-এর মাধ্যমে ভিডিও ক্যামেরা ব্যবহারের সুযোগ করে দেয়। সরাসরি V4L2 API ব্যবহার করা সম্ভব, কিন্তু অ্যাপ্লিকেশন ডেভেলপারদের ইউজারস্পেস হেল্পার লাইব্রেরি ব্যবহার করতে উৎসাহিত করা হয়। উদাহরণস্বরূপ:

  • রাস্টের জন্য libv4l-rs ক্রেট (প্রস্তাবিত),
  • C++ এর জন্য libv4l2 । এই লাইব্রেরিটি SDV মিডিয়াতে ডিফল্টভাবে প্রদান করা হয় না

সমর্থিত বাফার মোড

আপস্ট্রিম V4L2 রক্ষণাবেক্ষণকারীদের দ্বারা USERPTR বাফার মোডটি অপ্রচলিত বলে বিবেচিত হয় এবং তাই এটি SDV Media দ্বারা সমর্থিত নয়। এর পরিবর্তে MMAP বা DMABUF মোড ব্যবহার করুন।

ক্যামেরা ব্যবহার করুন

হাইপারভাইজর দ্বারা উন্মুক্ত করা প্রতিটি ভিডিও ডিভাইস (ক্যামেরা, এনকোডার এবং ডিকোডার) /dev/videoN (N সাংখ্যিক মান সহ) নামের একটি পৃথক ডিভাইস হিসাবে প্রদর্শিত হবে।

অ্যাপ্লিকেশনগুলি ভিডিও ডিভাইসগুলির সক্ষমতা জানতে VIDIOC_QUERYCAP ioctl ব্যবহার করতে পারে। ক্যামেরা ডিভাইসগুলি V4L2_CAP_VIDEO_CAPTURE অথবা V4L2_CAP_VIDEO_CAPTURE_MPLANE সমর্থন করে বলে জানায়

ভিডিও ক্যাপচার প্রক্রিয়ার বিস্তারিত জানতে, Video for Linux API: Input/Output দেখুন।

এই কোড নমুনাগুলো বিবেচনা করুন:

ভিডিও লুপব্যাক ডিভাইস কনফিগার করুন

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

v4l2loopback.devices=4

উপলব্ধ মডিউল অপশনগুলোর সম্পূর্ণ তালিকা দেখতে, v4l2loopback README অথবা অ্যান্ড্রয়েড কার্নেল রিপোজিটরিতে থাকা মডিউল সোর্সগুলো দেখুন।