Ну...ради уточнения...чтобы не рыть почем зря и не писать всё заново...я могу возложить на gstreamer только определенные задачи...захват и отображение это будет моё...т.к. там OpenGL юзается и этим моментом я хочу управлять...а gstreamer только сохраняет в файл используя IPU VPU и другие страшные аббривиатуры?
для эфективности лучше все сделать в gstreamer так как там плагины используют zero-copy передавая физические адреса в метаданных буферов
в каком смысле ? есть например плагин для opengl, а можно через ipu выводить изображение в оверлей с наложением основной картинки. Можно конечно и специальные плагины appsrc использовать.
У меня 2е задачи:
1- Видео плеер, который может отображать изображения с камер и с видеофайла. На экране так же должны быть элементы управления и их я рисую через OpenGL
2 - Отображаемое видео по требованию должно сохраняться в файл
PS: отображаться может несколько видео одновременно
QT очень сильно много съедает памяти...я как-то ради интереса вывел изображение с 4х камер используя QML...съел 80% оперативки...и тут мне всё стало ясно. Причем при использовании дополнительных элементов управления память съедается просто в прогрессии :), а чтобы добить уж...больше чем 4е камеры QT отказался у меня съедать...т.е. это решение еще какие-то свои ограничения имеет...в общем и целом я решил копать в сторону V4L2 и OpenGL а там уж IPU c VPU...но если это все можно сделать через GStreamer, то я пойду убьюсь об стену :)
а с использованием opengl меньше ? просто там одно и тоже расширение используется для zero-copy и в старых драйверах была утечка памяти - ее только в последних версиях поправили
Через gstreamer точно можно но вопрос - сколько вы потратите времени на его изучение :) Я думал у вас просто кодирование или просто отображкние - это без проблем. С элементами управления - надо будет разбираться с динамическим перестроением конвеера или брать camerabin - там это все есть, но я думаю это все равно проще чем с нестандартными либами врукопашную.
Ну вот сейчас у меня всё есть...есть чтение, есть отображение...но нет сохранения :) вот его я бы хотел прикрутить через GStreamer :)
В принципе отображение я могу оставить за собой...просто массив данных брать не из v4l2 как сейчас...а из gstreamer...разницы никакой же не должно быть..