From 343eecdec909b46a5bc72b3a4a49a49f575a9fd7 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Sun, 30 Jun 2019 10:55:39 +0200 Subject: [PATCH] Correctly link against GStreamer Video is still not being displayed, for some reason --- CMakeLists.txt | 13 ++++- src/VideoStreaming/CMakeLists.txt | 79 ++++++++++++++++--------------- 2 files changed, 54 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b2cf0eb09..32826c09e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.2) -project(QGroundControl LANGUAGES CXX) +project(QGroundControl LANGUAGES C CXX) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release;RelWithDebInfo;MinSizeRel;Coverage") @@ -58,6 +58,16 @@ if (CCACHE AND CCACHE_PROGRAM AND NOT DEFINED ENV{CCACHE_DISABLE}) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") endif() + +#============================================================================= +# GStreamer +# +find_package(PkgConfig) +pkg_check_modules(GST + gstreamer-1.0>=1.14 + gstreamer-video-1.0>=1.14 +) + #============================================================================= # Qt5 # @@ -73,6 +83,7 @@ find_package(Qt5 ${QT_VERSION} Positioning Quick QuickWidgets + OpenGL Sql Svg Test diff --git a/src/VideoStreaming/CMakeLists.txt b/src/VideoStreaming/CMakeLists.txt index 439ba45c5..97f4ad4f3 100644 --- a/src/VideoStreaming/CMakeLists.txt +++ b/src/VideoStreaming/CMakeLists.txt @@ -1,41 +1,46 @@ +if (GST_FOUND) + include_directories( + ${GST_INCLUDE_DIRS} + gstqtvideosink/utils/ + ) -set(EXTRA_SRC) -if(VIDEO) - list(APPEND EXTRA_SRC - gstqtvideosink/delegates/basedelegate.cpp - gstqtvideosink/delegates/qtquick2videosinkdelegate.cpp - gstqtvideosink/delegates/qtvideosinkdelegate.cpp - gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp - gstqtvideosink/gstqtglvideosink.cpp - gstqtvideosink/gstqtglvideosinkbase.cpp - gstqtvideosink/gstqtquick2videosink.cpp - gstqtvideosink/gstqtvideosink.cpp - gstqtvideosink/gstqtvideosinkbase.cpp - gstqtvideosink/gstqtvideosinkplugin.cpp - gstqtvideosink/gstqwidgetvideosink.cpp - gstqtvideosink/painters/genericsurfacepainter.cpp - gstqtvideosink/painters/openglsurfacepainter.cpp - gstqtvideosink/painters/videomaterial.cpp - gstqtvideosink/painters/videonode.cpp - gstqtvideosink/utils/bufferformat.cpp - gstqtvideosink/utils/utils.cpp - ) -endif() - -add_library(VideoStreaming - VideoItem.cc - VideoReceiver.cc - VideoStreaming.cc - VideoSurface.cc - SubtitleWriter.cc - ${EXTRA_SRC} -) + set(EXTRA_SRC + gstqtvideosink/delegates/basedelegate.cpp + gstqtvideosink/delegates/qtquick2videosinkdelegate.cpp + gstqtvideosink/delegates/qtvideosinkdelegate.cpp + gstqtvideosink/delegates/qwidgetvideosinkdelegate.cpp + gstqtvideosink/gstqtglvideosink.cpp + gstqtvideosink/gstqtglvideosinkbase.cpp + gstqtvideosink/gstqtquick2videosink.cpp + gstqtvideosink/gstqtvideosink.cpp + gstqtvideosink/gstqtvideosinkbase.cpp + gstqtvideosink/gstqtvideosinkplugin.cpp + gstqtvideosink/gstqwidgetvideosink.cpp + gstqtvideosink/gstqtvideosinkmarshal.c + gstqtvideosink/painters/genericsurfacepainter.cpp + gstqtvideosink/painters/openglsurfacepainter.cpp + gstqtvideosink/painters/videomaterial.cpp + gstqtvideosink/painters/videonode.cpp + gstqtvideosink/utils/bufferformat.cpp + gstqtvideosink/utils/utils.cpp + ) -target_link_libraries(VideoStreaming - PUBLIC - qgc + add_library(VideoStreaming + VideoItem.cc + VideoReceiver.cc + VideoStreaming.cc + VideoSurface.cc + SubtitleWriter.cc + ${EXTRA_SRC} + ) - Qt5::Multimedia -) + target_link_libraries(VideoStreaming + PUBLIC + qgc + Qt5::Multimedia + Qt5::OpenGL + ${GST_LIBRARIES} + ) -target_include_directories(VideoStreaming INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(VideoStreaming INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) +endif() -- 2.22.0