qmlglGStreamer 中与 Qt 绑定的插件。Linux 平台上大多有现成的软件包(Manjaro:gst-plugin-qmlgl,Ubuntu:gstreamer1.0-qt5)。现在有一个在 Windows 平台上使用该软件的需求,然而 qmlgl 没有官方编译好的版本。这篇文章将介绍如何在 Windows 平台上编译 qmlgl 插件。

源代码位置

qmlgl 的源码位置见如下链接:qmlgl

编译

官方已经给出两种种编译的方法:

  1. 使用 .pro 文件;
  2. 使用 cerbero 编译工具;

这两种方式的前提都是已经安装好 Qt 工具链。

首先说,.pro 文件的方式,直接使用 Qt Creator 打开项目文件,配置好工具链后直接编译即可。

Note

官方默认的项目文件编译的是 Debug 版本。如需使用 Release 版本可以去掉 debug。

使用 cerbero 编译工具编译的方法直接按照流程编译即可。

使用 CMake 编译

为了方便地将 qmlgl 嵌入到 CMake 项目中,使用 CMake 实现了 qmlgl 在 WIndows 上的编译。为了便于静态注册,添加了 gst_qmlgl_plugin_init 全局函数,将该初始化函数作为 gst_plugin_register_static 的初始化函数即可完成 qmlgl 的静态注册。

编译:

# debug version
mkdir debug
cd debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

# release version
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=Release ..
make

静态注册:

#define GST_PACKAGE_NAME "GStreamer Good Plug-ins (CMake)"
#define GST_PACKAGE_ORIGIN "https://github.com/zt-luo/gst-qmlgl"
#define GST_LICENSE "LGPL"
#define PACKAGE "gst-plugins-good (CMake)"
#define PACKAGE_VERSION "1.16.2"

if (gst_plugin_register_static(
        GST_VERSION_MAJOR, GST_VERSION_MINOR,
        "qmlgl", "Qt gl plugin",
        gst_qmlgl_plugin_init,
        PACKAGE_VERSION, GST_LICENSE, PACKAGE,
        GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN))
{
    g_message("load qmlgl static success.");
}
else
{
    g_error("load qmlgl static fail.");
}

完整的代码见仓库:gst-qmlgl。仓库的代码会跟随 Gstreamer 官方稳定版的发布而更新,觉得有用的话不妨给个⭐️Star