我正在尝试如何使用gst-omx 插件来访问 Android 中的硬件解码器/编码器。因此,我构建了一个简单的 NDK C 应用程序,使用 h264 omx 解码器元素创建了一个播放管道。但是当我尝试执行时,我得到以下指令失败。
解码器 = gst_element_factory_make("omxh264dec", "h264");
if (!decoder) { g_printerr(" decoder elements not created.... Exiting \n"); 返回-1;}
请注意,在此之前,
- 我为 Android 构建了 gst-omx 插件,然后将此插件放入 gstreamer 1.0 文件夹。在使用 NDK 构建 gstreamer_android.so 和我的示例应用程序之后。
- 然后我使用 NDK 和 gstreamer 1.0 构建了一个测试应用程序,以使用 omx 插件和其他插件。
在我的 Android.mk 中,我提到了
GSTREAMER_PLUGINS := coreelements videoconvert audioconvert audioresample 播放omx
构建良好,没有任何抱怨。所以我相信 OMX 插件的创建和打包到 android_gstreamer.so 是没有问题的
我究竟做错了什么?有没有我遗漏的步骤?
如何确保是否加载了所述元素?
我检查了 gstomx.c :plugin_init,发现了以下行
ret |= gst_element_register (plugin, elements[i], rank, subtype);
但无法弄清楚实际的 h264decoder 组件名称是什么以及它为什么会失败。
任何建议都会对我有很大帮助。
提前致谢!