[Learn Gst] 工程结构
前言:
Learn Gst 目标在于学习 gstreamer 和 glib。
目前规划工程结构有两个:
- 自己联系的一些plugin
- plugin的测试工程
工程结构及工程文件:
./CMakeList.txt
add_subdirectory(MyPlugins)
add_subdirectory(Tester)
./MyPlugins/CMakeList.txt
#cmake version
cmake_minimum_required(VERSION 3.10)#project name , not target name
project(GstMyPluginProject)#local vars
set(CMAKE_CXX_STANDARD 11) #c++ 11
set(PLUGIN_INSTALL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../_OUTPUT) #plugin install path
set(UTIL_CODE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Utils)
set(MODS_CODE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Modules)#env var
if(NOT DEFINED ENV{GST_PLUGIN_PATH})set(ENV(GST_PLUGIN_PATH) ${PLUGIN_INSTALL_PATH}) #set GST_PLUGIN_PATH with plugin-install-path and export
endif()#pathes of source files search for
#aux_source_directory(${CMAKE_SOURCE_DIR} all_cpp_file)#target and all source files target depends on
add_library(gstmyplugin SHAREDGstMyFilter.cppGstMyPlugin.cppGstMyEsSrc.cpp${UTIL_CODE_PATH}/miscs.cpp${UTIL_CODE_PATH}/log.cpp${MODS_CODE_PATH}/esfilereader.cpp
)set_target_properties(gstmyplugin PROPERTIES LINKER_LANGUAGE CXX)#make install
install(TARGETS gstmyplugin DESTINATION ${PLUGIN_INSTALL_PATH})#pathes of head files search for
target_include_directories(gstmyplugin PUBLIC#system/usr/include#gstreamer/usr/include/gstreamer-1.0#glib/usr/lib/x86_64-linux-gnu/glib-2.0/include/usr/include/glib-2.0#user defined${CMAKE_CURRENT_SOURCE_DIR}/../Utils${CMAKE_CURRENT_SOURCE_DIR}/../Modules
)#pathes of static link search for
link_directories()#libs in use
target_link_libraries(gstmyplugin
# -lavcodec
# libeXosip2.a-lglog-lgstreamer-1.0-lgstbase-1.0 #base plugin ,lack of this will fail with "undefined symbol: gst_push_src_get_type"-lglib-2.0-lgobject-2.0
)#predefined macroS
ADD_DEFINITIONS(-D LINUX)
ADD_DEFINITIONS("-g")
./Tester/CMakeList.txt
#cmake version
cmake_minimum_required(VERSION 3.10)#local vars
set(CMAKE_CXX_STANDARD 11)
set(INSTALL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../_OUTPUT) #install path
set(UTIL_CODE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Utils)#pathes of static link search for
link_directories(#gstreamer#/home/ubuntu/_WORKSPACE/deps/gstreamer-1.18-all/lib/x86_64-linux-gnu
)#project name
project(main)#target and all source files target depends on
add_executable(main main.cpp${UTIL_CODE_PATH}/log.cpp
)#pathes of head files search for
target_include_directories(main PUBLIC#system/usr/include#gstreamer/usr/include/gstreamer-1.0#glib/usr/include/glib-2.0/usr/lib/x86_64-linux-gnu/glib-2.0/include#self def${CMAKE_CURRENT_SOURCE_DIR}/../Utils${CMAKE_CURRENT_SOURCE_DIR}/../MyPlugins
)#libs in use
target_link_libraries(main-lgstreamer-1.0-lglib-2.0-lgobject-2.0-lgstaudio-1.0-lgstpbutils-1.0-lgstvideo-1.0-lglog
)#predefined macro
ADD_DEFINITIONS(-D LINUX)
ADD_DEFINITIONS("-g")#make install
install(TARGETS main DESTINATION ${INSTALL_PATH})
clean.sh
#!/bin/shrm -rf ./BUILD/*
rm -rf ./_OUTPUT/lib*
rm -rf ./_OUTPUT/main
make.sh
#!/bin/shcd _BUILD
cmake ../ && make && make install
cd ../
run.sh
#!/bin/shcd _OUTPUT
./main && cd ../
setenv.sh
#!/bin/shecho "add following statment to .bashrc -> export GST_PLUGIN_PATH=$GST_PLUGIN_PATH/:$PWD/_OUTPUT/"
tail.sh
#! /bin/shcd _OUTPUT/log/ && tail -f -n 100 test.INFO
Readme
# LearnGst
learn gst# make
./make.sh# run
./run.sh
[Learn Gst] 工程结构相关推荐
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- Blender赛车动画制作学习教程 Learn Race Car Animation with Blender
使用Blender 2.93创建您自己的惊人汽车动画 你会学到什么 Blender的界面和导航 建模 UV制图 材料 动画 照明设备 渲染 合成 要求 下载并安装Blender.免费下载和免费用于任何 ...
- Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)
要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...
- Unity与C#创建一个3D平台游戏 Learn to Create a 3D Platformer Game with Unity C#
游戏开发变得容易了.使用Unity学习C#并创建您自己的3D平台! 你会学到什么 学习现代通用编程语言C#. 了解Unity中3D开发的功能 发展强大的可转移的解决问题的技能 了解游戏开发过程 了解面 ...
- 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...
- Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity
Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity MP4 |视频:h264,1280x720 |音频:A ...
- Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games
Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...
1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...
- 读书笔记2013第10本:《学得少却考得好Learn More Study Less》
<学得少却考得好Learn More Study Less>这本书最早是从褪墨网站上看到的,crowncheng翻译了全文.这本书介绍了不少学习方法,非常适合在校的学生,原文的作者Scot ...
最新文章
- 最长上升子序列(LIS)长度及其数量
- ThinkPHP框架使用心得二 CURD操作
- Python函数参数学习
- 洛谷 P4660 bzoj 1168 [ Baltic OI 2008 ] 手套 —— 分析+单调栈
- 13 PP配置-生产主数据-BOM相关-定义修正参数
- 北方民族大学计算机全国排名,校友会:全国15所民族类大学排名,这三所大学进入十强...
- c 语言 移位四舍五入,关于C 语言中的四舍五入问题
- jQuery .tmpl(), .template()学习
- procreate 笔刷_插画学习必备:2000款Procreate大师级笔刷,超级强大,免费领取
- 48. Rotate Image java solutions
- 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页...
- 190317每日一句
- 16个最佳软件配置管理工具
- 史上最强的10大管理定律
- La3713 Astronauts 2-Sat
- (MATLAB)大家来找茬-简易的彩色图像找不同
- 一个接近90岁的维族老大爷用酒把我撂倒了
- 项目经验不丰富、技术不突出的程序员怎么打动面试官?
- PS教程丨如何使用PS消除全景图中的三脚架?
- 一些小软件闪退的解决方案
热门文章
- 射线检测算法在游戏中应用
- sentinel限流介绍
- 一张照片引发的“美国总统泄密”事件
- 【算法笔记题解】《算法笔记知识点记录》第三章——入门模拟1——简单模拟
- “张一鸣”为何突袭“王兴”
- 【Hadoop】运行MR任务,出现Container is running beyond physical memory limits错误
- Ubuntu16.04强制关机再进入系统出现死机的问题
- AC-PEG-OH,Acrylate-PEG-Hydroxyl,丙烯酸酯-聚乙二醇-羟基可用来修饰蛋白质
- 第二十六篇:USB3.0高带宽ISO(48KBytes/125us)实战
- Rebound-Android的弹簧动画库