sasamy, добрый день!
Успешно использую ваш драйвер для захвата одиночных каналов на SK-iMX6-DUAL-SODIMM, спасибо за отличный драйвер.
Теперь встал вопрос - а реально ли посредством данного драйвера (или его модификации) получить не 4 отдельных потока 720
0, а один 1440х960 состоящий из склеенных потоков с 4х каналов?
Сразу пишу что скрипт vcv4.sh работает, но это не то что мне нужно, почему - объяснение ниже:
При склейке средствами Gstreamer (скрипт vcv4.sh или мой пайплайн на основе imx-compositor) я имею нужное мне изображение _на выходе_ системы без возможности его какой-либо последующей обработки. Нужно же получить что-то а-ля новое виртуальное устройство /dev/video* из которого можно получить счетверенную картинку, или указатель на кусок памяти в userspace где лежат нужные мне уже склеенные данные.
Под дальнейшей обработкой понимается коррекция искажений в линзах камер (камеры стят широкоугольные и картинка с них требует коррекции). Еще нужен deinterlacing, с ним отдельная головная боль и пока про него забываем.
1. Захват с 4-х камер через /dev/video0-3 с последующей склейкой вручную в самом приложении тупым циклом на CPU более-менее работает с 2-мя каналами. Уже на 3х каналах захлебывается.
2. Про v4l2loopback знаю. Этот подход (с пайплайном вида imxv4l2videosrc -> imxipucompositor -> v4l2loopback) дает нужное мне новое устройство /dev/video, но опять загружает CPU так что что на дальнейшую обработку ресурсов уже не остается. Даже при просто попытке захватить видео с данного виртуального устройства ведет к DMA reset в драйвере. Как я понимаю такой пайплайн уже не zero-copy решение именно в части v4l2loopback.
В результате пришел к потребности получить данную счетверенную картинку напрямую с драйвера TW6869 чтоб склейка производиласть аппаратно через DMA. Как я понимаю нужно чтоб драйвер делал DMA-транзакции с четырех каналов в область памяти размером в 4 кадра в соответствующие четверти, и на выход давал уже именно эту область памяти а не 4 отдельных куска. Если предполагаются проблемы с тем что память под DMA линейна - склейка может быть и вида 4 кадра друг над другом "в столбик" (что хуже, но думаю приемлемо).
Возможно ли такое, и если да то куда копать?