SDV Media: Kameraları kullanma

SDV Media, Linux V4L2 API aracılığıyla video kameraların kullanılmasını sağlar. V4L2 API'leri doğrudan kullanmak mümkündür ancak uygulama geliştiricilerin kullanıcı alanı yardımcı kitaplıklarını kullanması önerilir. Örneğin:

  • Rust için libv4l-rs crate (önerilir),
  • libv4l2 (C++ için). Bu kitaplık, SDV Media'da varsayılan olarak sağlanmaz.

Desteklenen arabellek modları

USERPTR arabellek modu, yukarı akış V4L2 bakımcıları tarafından kullanımdan kaldırılmış olarak kabul edilir ve bu nedenle SDV Media tarafından desteklenmez. Bunun yerine MMAP veya DMABUF modunu kullanın.

Kameraları kullanma

Hipervizör tarafından kullanıma sunulan her video cihazı (kameralar, kodlayıcılar ve kod çözücüler) /dev/videoN adlı ayrı bir cihaz olarak görünür (N sayısal değeriyle).

Uygulamalar, video cihazların özelliklerini sorgulamak için VIDIOC_QUERYCAP ioctl'yi kullanabilir. Kamera cihazları, V4L2_CAP_VIDEO_CAPTURE veya V4L2_CAP_VIDEO_CAPTURE_MPLANE için destek bildirir.

Video yakalama akışının ayrıntıları için Video for Linux API: Input/Output başlıklı makaleyi inceleyin.

Aşağıdaki kod örneklerini inceleyin:

Video loopback cihazlarını yapılandırma

SDV Media, test için konuk sanal makinesinde video kameraları tamamen taklit etmek üzere kullanılabilecek bir v4l2loopback çekirdek modülü sağlar. Bu modül, varsayılan olarak tek bir sanal kamera cihazını başlatır. Daha fazla cihaz eklemek için yapılandırma parametrelerini çekirdek komut satırı üzerinden modüle iletin. Örneğin, 4 cihazı başlatmak için şunu ekleyin:

v4l2loopback.devices=4

Kullanılabilir modül seçeneklerinin tam listesini görmek için Android çekirdek deposundaki v4l2loopback README veya modül kaynaklarına bakın.