qtcreator调试gstreamer

39 篇文章 17 订阅
8 篇文章 0 订阅

安装qtcreator

Cerbero编译gstreamer

参考 Building from source using Cerbero,gstreamer通过Cerbero编译非常简单,可以在Readme.md中看到。

下载cerbero

$ git clone https://gitlab.freedesktop.org/gstreamer/cerbero gstreamer-cerbero

下载后的代码路径为:

/home/hui/gstreamer/gstreamer-cerbero

配置编译env

$ cd gstreamer-cerbero
git checkout 1.19.3
$ ./cerbero-uninstalled bootstrap

编译gstreamer

cerbero通过指定不同的config文件,编译不同平台binary,可以看到config目录下有android,ios,mac,win,linux等配置文件。

config/build-tools.cbc*
config/cross-android-arm64.cbc
config/cross-android-armv7.cbc
config/cross-android-universal.cbc
config/cross-android-x86-64.cbc
config/cross-android-x86.cbc
config/cross-ios-arm64.cbc
config/cross-ios-universal.cbc
config/cross-ios-x86-64.cbc
config/cross-lin-arm64.cbc
config/cross-lin-arm.cbc
config/cross-lin-x86.cbc
config/cross-macos-arm64.cbc
config/cross-macos-universal.cbc
config/cross-macos-x86_64.cbc
config/cross-uwp-universal.cbc
config/cross-win32.cbc
config/cross-win64.cbc
config/cross-win-arm64.cbc
config/cross-win-armv7.cbc
config/mingw-multilib-lin.cbc
config/mingw-multilib-win.cbc
config/osx-x86-64.cbc
config/win32.cbc
config/win64.cbc
编译ubuntu linux-x86
$ ./cerbero-uninstalled build gstreamer-1.0

cerbero-uninstalled支持参数如下:

cerbero-uninstalled argument command: invalid choice: 'gstreamer-1.0' (choose from 'buildone', 'build-deps', 'build', 'package', 'tag', 'check', 'deps', 'fetch', 'fetch-package', 'bundle-source', 'add-recipe', 'edit-cache', 'packageinfo', 'run', 'genxcconfig', 'fetch-cache', 'gen-cache', 'upload-cache', 'bootstrap', 'fetch-bootstrap', 'add-package', 'genlibfiles', 'wipe', 'list', 'list-packages', 'show-config', 'checkpackage', 'genvsprops', 'rdeps', 'shell', 'gensdkshell', 'graph', 'debug-packages')

编译完成后

交叉编译android
# Bootstrap for Android Universal on Linux
$ ./cerbero-uninstalled -c config/cross-android-universal.cbc bootstrap

配置qtcretor

新建project

menu->File
	->New File or project
		-> Import project
			-> Import Existing Project
		 	   Choose

选择project路径

Project Name: gstreamer(可以是任意名字)

Location: 选择代码路径

编辑Project项

project项分为build和run两部门,因为gstreamer用的是cerbero编译,在qtcreator里面直接用cerbero的编译结果,不需要配置build部分,直接配置Run部分。

Run部分配置:

  • Executable 指定可执行程序
  • Command line arguments 命令行参数
  • Working directory 设置代码目录

具体配置路径如下:

Executable:
	/home/hui/gstreamer/gstreamer-cerbero/build/dist/linux_x86_64/bin/gst-launch-1.0
Command line arguments:
	playbin uri=file:///home/hui/panda.mp4
Working directory:
	/home/hui/gstreamer/gstreamer-cerbero/build/sources/linux_x86_64/gstreamer-1.0-1.19.3/gst

Working directory配置的路径不对的时候,debug的时候代码里面设置了断点,执行到断点的时候会显示汇编部门代码,所以根据汇编代码里面的路径提示,设置为gstreamer-1.0-1.19.3/gst后gst-launch就可以用起来了。

配置环境变量

这里有两个重要的环境变量,如果没有GST_PLUGIN_PATH,gstreamer启动时候就报错,比如找不到playbin,配置的时候在Enviroment部门添加一项,填入路径就可以。

GST_PLUGIN_PATH = /home/hui/gstreamer/gstreamer-cerbero/build/dist/linux_x86_64/lib/gstreamer-1.0
LD_LIBRARY_PATH = /home/hui/gstreamer/gstreamer-cerbero/build/dist/linux_x86_64/lib

也可以配置上gst-scanner环境变量

GST_PLUGIN_SCANNER = /home/hui/gstreamer/gstreamer-cerbero/build/dist/linux_x86_64/libexec/gstreamer-1.0/

配置好环境变量后就可以开始调试了。

在这里插入图片描述

下面是debug scan plugin的部分:

在这里插入图片描述

不方便的一点是plugin的代码如果不在gstreamer部门,那么就得修改project里面的Working directory才可以断点在代码里面,比如调试qtdemux,需要设置路径为/home/hui/gstreamer/gstreamer-cerbero/build/sources/linux_x86_64/gst-plugins-good-1.0-1.19.3/gst,如果是gstreamer/gst下的代碼,就切換爲/home/hui/gstreamer/gstreamer-cerbero/build/sources/linux_x86_64/gstreamer-1.0-1.19.3/gst,這個目前沒找到怎麼解決,支持多個目錄。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值