2

在插件中创建新元素类型的标准方法是 GstElement 类型的 gobject 样式“派生”,具有所有这些 gobject 魔法,就像这样

我正在用 C++ 编写一个项目,它使用 GStreamer 和一些专门用于我的目的的元素。我已经按照上面提到的方式编写了几个插件,但我对代码并不满意,因为它太多只是为了满足 gobject 的要求。

我考虑使用 gstreamermm。是否可以使用从 Gst::Element 派生的 C++ 风格派生来创建新类型的元素?我的意思是:

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

这将是更漂亮的解决方案(假设我已经在插件中使用 gstreamermm 和 C++)。当然我们需要一个真正的 gobject 类型,它有唯一的类型 id 等等。

4

1 回答 1

1

由于我没有找到任何合适的东西,我修补了 gstreamermm 以便它允许这样的元素注册。请参阅https://github.com/peper0/gstreamermm-plugins到目前为止,它还没有经过很好的测试,但似乎可以在几个基本情况下工作。错误报告和功能请求将不胜感激。

注意:我的补丁未经 gstreamer 或 gstreamermm 开发人员以任何方式授权,因此它可能会破坏这些项目中的一些设计假设。

于 2013-02-24T18:54:38.757 回答