栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

qtcreator調試gstreamer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qtcreator調試gstreamer

安装qtcreator

https://www.qt.io/product/development-tools

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/disk4t/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/disk4t/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,這個目前沒找到怎麼解決,支持多個目錄。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号