调试gstreamer的gst-play

遇到问题不好查找原因时,在windows上用visual studio设断点调试能够提供一个便利。
gstreamer选择一个版本比如1.18.5,下载或者git clone源代码,下载gstreamer在windows上的安装包,安装包与源代码需要一致,断点跟踪的时候才能显示正确的执行语句。

在windows也能编译gstreamer,但是却需要一个msys或者mingw,这个没有尝试。

在windows上安装参照
https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c

安装包下载位置
https://gstreamer.freedesktop.org/data/pkg/windows/1.18.5/msvc/

下载安装包

  • Development files installer: gstreamer-1.0-devel-msvc-x86_64-1.18.5.msi
  • Runtime installer: gstreamer-1.0-msvc-x86_64-1.18.5.msi
    参照 gstreamer安装(Windows + VS2022)
    因为是Linux下开发,windows只用于小的调试,所以没有配置visual studio
    主要包括下载runtime和sdk,然后配置E:\gstreamer\1.0\msvc_x86_64\bin环境变量到PATH,按照这个文档拷贝一下头文件glibconfig.h。

F:\gstreamer\1.0\msvc_x86_64\bin 因为windows下面的lib和exe都位于这个目录

获取源代码

  • https://gitlab.freedesktop.org/gstreamer/gst-build/-/tree/1.18.5

visual studio打开源代码:
调试gst-play位于gst-plugins-base,核心库gstreamer;另外插件可能位于不同的插件库,比如gst-plugins-good/gst-plugins-bad,这里在一个解决方案中加载了前三个工程

再说如何在visual studio上面打开正确打开源代码
从0开始打开visualstudio窗口,欢迎屏幕之后,既不打开已有,也不新建工程,而是选择“继续但无需代码”。
打开visual studio后,文件 > 新建 > 从现有代码新建项目;
项目类型 Visual Studio C++
找到项目位置,如D:\tmp\gst-build\subprojects\gst-plugins-good
设置项目名称gst-plugins-good,其他默认;
下一步
指定项目设置,您希望如何生成项目?
: 要使用外部生成系统
下一步
生成命令,随意,比如python -V,只有能正确返回就可以,不用于实际生成。
输出:E:\gstreamer\1.0\msvc_x86_64\bin\gst-play-1.0.exe最终启动并调试的程序
下一步
完成。
此时保存了项目,但没保存解决方案。

依次新建gst-plugins-base/gstreamer两个项目,在一个解决方案中加入三个工程。

visual studio项目属性
将其中一个项目设置为启动
启动工程的属性设置比较特殊,其他工程的设置可忽略或者与启动工程一致。
项目属性:
配置管理器中增加Win32平台,
配置Debug+Win32
调试 - 命令行参数输入播放文件路径
NMAKE - 常规 - 生成命令行 只要输入一个可以返回成功的命令即可,如:meson --version
NMAKE - 常规 - 输出,这个比较关键,是启动的exe,E:\gstreamer\1.0\msvc_x86_64\bin\gst-play-1.0.exe

这样F5的时候,限制性编译meson --version,通过后启动E:\gstreamer\1.0\msvc_x86_64\bin\gst-play-1.0.exe,在源代码的正确位置设置断点程序就会中断并调试状态。


Windows下面编译gstreamer,没有尝试,可以参照https://www.jianshu.com/p/7863404c1909.

Ubuntu下面的编译,依赖也挺多的,在Ubuntu下面编译源代码,可以修改源代码增加打印输出观察现象,Windows和Ubuntu相互配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值