vhd*_*irk 5 c++ plugins binding gstreamer
我正在尝试使用GStreamermm绑定在C++中编写gstreamer插件.现在,有一个很好的插件编写指南(http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/),并且在网络上有各种示例和模板,但对于gstreamermm,它几乎没有大量的文件.
我知道我可以使用C和C++的混合,但使用C++绑定似乎更优雅.
简单地"翻译"gstreamer pwg中的例子到gstreamermm是一种死路一条; gstreamer需要使用相当多的宏来定义类型,我无法立即看到gstreamermm的翻译.另外,我对gstreamer的经验很少,而且绝对没有gobj的经验(到目前为止).
有人能让我走上正轨吗?即使是最微小的例子或解释也会这样.
谢谢
几天前我在 gtkmm 邮件列表上提出了这个问题,并得到了以下答案(来自 Jos\xc3\xa9 Alburquerque):
\n\n\n\n目前,唯一有可能(可能不存在)使用 gstreamermm 开发的插件是应用程序专用的插件。如果可能的话,这些插件将使用 Gst::Plugin::register_static()[1] 方法注册,而不是您上面描述的过程。
\n\n \n\n理论上,可以扩展 gstreamermm 基类之一[2] 并在 Gst::Plugin::SlotInit 插槽(回调)中调用 Gst::ElementFactory::register_element()[3] 方法,以便可以创建生成这些元素的元素工厂。然后可以使用同一 Gst::Plugin::SlotInit 插槽中的 Gst::Registry::add_feature()[4] 将该工厂添加到注册表中。
\n\n[2] http://developer.gnome.org/gstreamermm/unstable/group__GstBaseClasses.html
\n\n[3] Gst::ElementFactory::register_element() 方法是一个尚未实现的方法,但会包装 gst_element_register() 函数。这将是即将发布的版本的一部分。
\n\n \n\n我还没有测试过这个,也不知道它是如何工作的(或者它是否真的会工作),但如果必须的话,我会尝试这样做。然而,我认为目前用 C 语言编写插件更容易,但这只是让事情变得更容易的问题。
\n
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |