SDV Media: korzystanie z kamer

SDV Media umożliwia korzystanie z kamer wideo za pomocą interfejsu Linux V4L2 API. Można korzystać bezpośrednio z interfejsów V4L2 API, ale deweloperom aplikacji zalecamy używanie bibliotek pomocniczych w przestrzeni użytkownika. Przykład:

  • libv4l-rs pakiet dla języka Rust (zalecany),
  • libv4l2 dla języka C++. Ta biblioteka nie jest domyślnie dostępna w SDV Media.

Obsługiwane tryby buforowania

Tryb buforowania USERPTR jest uważany za przestarzały przez opiekunów V4L2 i dlatego nie jest obsługiwany przez SDV Media. Zamiast tego użyj trybu MMAP lub DMABUF.

Korzystanie z kamer

Każde urządzenie wideo (kamery, kodery i dekodery) udostępniane przez hiperwizor będzie wyświetlane jako osobne urządzenie o nazwie /dev/videoN (gdzie N to wartość liczbowa).

Aplikacje mogą używać VIDIOC_QUERYCAP ioctl do sprawdzania możliwości urządzeń wideo. Urządzenia kamery zgłaszają obsługę dla V4L2_CAP_VIDEO_CAPTURE lub V4L2_CAP_VIDEO_CAPTURE_MPLANE.

Szczegółowe informacje o procesie przechwytywania wideo znajdziesz w artykule Video for Linux API: Input/Output.

Zapoznaj się z tymi przykładami kodu:

Konfigurowanie urządzeń sprzężenia zwrotnego wideo

Do testowania SDV Media udostępnia moduł jądra v4l2loopback, którego można używać do emulowania kamer wideo w całości w maszynie wirtualnej gościa. Domyślnie inicjuje on jedno wirtualne urządzenie kamery. Aby dodać więcej, przekaż parametry konfiguracji do modułu za pomocą wiersza poleceń jądra. Aby na przykład zainicjować 4 urządzenia, dodaj:

v4l2loopback.devices=4

Pełną listę dostępnych opcji modułu znajdziesz w pliku README v4l2loopback lub w źródłach modułu w repozytorium jądra Androida.