Есть ли полный пример о том, как использовать GStreamer GstBaseTransform в C? - PullRequest
0 голосов
/ 08 ноября 2019

GstBaseTransform - класс, предназначенный для простой обработки и анализа изображений в GStreamer. Будучи новичком в GStreamer, я ищу более или менее полный плагин, который я мог бы использовать для понимания того, как реализовать мой. К сожалению, Руководство по написанию плагинов не охватывает его, и в целом я не могу найти полный исходный код какого-либо достаточно простого примера, который его использует. Большинство сайтов, которые я выкладываю в Google, просто повторяют документацию, какой-то специализированный код для Freescale в GitHub , а также проект GLES - самая близкая вещь, которую мне удалось найти. Это, однако, специализированный производственный код с множеством вещей, которые нужно удалить, прежде чем пытаться понять остальное.

Можно ли получить полный пример / исходный код плагина, который использует GstBaseTransform для чего-то очень простого,как рисование линии над изображением?

конвейер GStreamer можно легко запустить из командной строки, например "gst-launch-1.0 videotestsrc ! the_plugin ! videoconvert ! autovideosink".

1 Ответ

1 голос
/ 08 ноября 2019

Рекомендую комбинацию документации и конструктора элементов. Конструктор элементов предоставляет вам шаблон для плагинов, основанный на нескольких базовых классах, включая basetransform. Инструмент можно найти по адресу tools/gst-element-maker в репозитории gst-plugins-bad.

Затем документация базового класса - например, https://developer.gnome.org/gstreamer-libs/stable/GstBaseTransform.html

Обычно в документации в общем объясняется, как ожидается классработать и имеет некоторую документацию по наиболее важным / значимым функциям.

Для базового преобразования ваша самая важная функция будет transform или transform_ip в зависимости от того, будет ли ваш плагин работать в режиме in-place илине. Там вы можете выполнить свою обработку - например, записать строку в буфер изображения.

...