GStreamermm: создание нового типа элемента (в плагине) производным от Gst :: Element - PullRequest
2 голосов
/ 08 марта 2012

Стандартный метод создания нового типа элемента в плагине - это «деривация» в стиле gobject из типа GstElement со всей этой магией gobject, например this .

Я пишу проект на C ++, который использует GStreamer с некоторыми элементами, специально предназначенными для моей цели. Я написал несколько плагинов вышеупомянутым способом, но я не удовлетворен кодом, так как слишком много его просто для удовлетворения требований gobject.

Я думаю использовать gstreamermm. Можно ли создать новый тип элементов с выводом в стиле C ++ из Gst :: Element? Я имею в виду что-то вроде:

class MyElement: public Gst::Element
{
  ...
}

Это было бы намного более красивым решением (при условии, что я уже использую gstreamermm и C ++ в плагине). Конечно, нам нужен настоящий тип объекта gobject с уникальным идентификатором типа и т. Д.

1 Ответ

1 голос
/ 24 февраля 2013

Поскольку я не нашел ничего подходящего, я пропатчил gstreamermm, чтобы разрешить такую ​​регистрацию элементов. См. https://github.com/peper0/gstreamermm-plugins До сих пор он не был хорошо протестирован, но, похоже, работает в нескольких основных случаях. Отчеты об ошибках и запросы функций приветствуются.

Обратите внимание: мой патч никоим образом не авторизован разработчиками gstreamer или gstreamermm, поэтому он может нарушить некоторые допущения, сделанные в этих проектах.

...