Мы в флюссонике много работаем с разными железками: это минимум 6 карт SDI захвата, несколько железных транскодеров, а IP-камер с которых мы захватываем через родной SDK больше десятка, даже не считал.
Все эти железки с точки зрения API делятся на нормальные, которые дают v4l2 API (и это преимущественно русские железки) и всякое проприетарное говно типа Decklink, Hisilicon. Есть совсем треш типа AJA SDK, который на плюсах.
Исходя из опыта работы с v4l2 и проприетарными либами, можно однозначно сказать, что никакого плюса ни decklink api, ни dectek matrix api, ни какой-либо китайский хлам, которого у нас скопилось тоннами не дает.
Нет ни одной инженерной причины для какого-либо из этих устройств делать не v4l2 api. Этого апи достаточно для передачи управления, видео и аудио туда и обратно.
Отсюда возник вопрос: может быть получится сделать v4l2 адаптер для таких штук. Т.е. берем проприетарную либу, пишем вокруг неё демона, который создает v4l2 устройство. Дальше юзерская программа подключается к v4l2 устройству, шлет туда настройки, они попадают в демон-адаптер, он настраивает через либу, потом начинает перекидывать видео через v4l2.
Для H264 кодированного видео пара лишних перекопирований неприятна, но не фатальна. Для SDI копирование будет фатально, но там надо решать проблему по мере поступления.
Кто что думает о таком подходе? Какие могут быть подводные камни? Куда стоит посмотреть на что-то такое уже готовое, что я просто по невнимательности пропустил?