【发布时间】:2015-01-07 18:16:55
【问题描述】:
我目前正在尝试使用 GSTREAMER Android SDK 2013.6 版配置 RTMP 插件。我能够交叉编译 RTMP 插件并成功创建 libgstrtmp.a 和 libgstrtmp.la 文件。
然后我将此文件添加到 GSTREAMER Android SDK 的 libs 文件夹中的 gstreamer-0.10 文件夹中。然后,我从 SDK 库中获取了示例 tutorial-5,并在 Android.mk 文件中进行了更改,然后重新编译了项目。
毕竟 RTMP 插件是在 libgstreamer_android.so 中静态注册的,但是当我运行提供 rtmp 流的应用程序时,我收到以下错误
g_type_add_interface_static: 断言 `G_TYPE_IS_INSTANTIATABLE (instance_type)' 失败
g_once_init_leave:断言 `result != 0' 失败
以及以下警告。
为类型
GstRTMPSrc' is smaller than the parent type'sGstPushSrc'实例大小指定的实例大小为类型
GstRTMPSink' is smaller than the parent type'sGstBaseSink' 实例大小指定的实例大小
谁能帮我解决这个错误。根据 Gstreamer SDK 常见问题解答,实例和父类之间的这种不匹配可能是由于使用两个不同版本的 gstreamer 编译造成的。那就是我的插件是用 SDK 以外的其他版本编译的。
我的另一个问题是,Android SDK 是针对什么版本的 gstreamer 版本编译的。因为这可能是错误的主要原因。
谢谢你。
德鲁夫。
【问题讨论】: