pax_global_header 0000666 0000000 0000000 00000000064 13753453473 0014530 g ustar 00root root 0000000 0000000 52 comment=0877c5b74cb3d0bacb43f82346c87b9e87dd1140
qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/ 0000775 0000000 0000000 00000000000 13753453473 0025005 5 ustar 00root root 0000000 0000000 qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/ 0000775 0000000 0000000 00000000000 13753453473 0030201 5 ustar 00root root 0000000 0000000 CMakeLists.txt 0000664 0000000 0000000 00000010147 13753453473 0032665 0 ustar 00root root 0000000 0000000 qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp cmake_minimum_required(VERSION 3.10)
project(VideoReceiverApp LANGUAGES C CXX)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release;RelWithDebInfo;MinSizeRel;Coverage")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
include(FeatureSummary)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
add_compile_options(-Wall -Wextra -Wno-address-of-packed-member)
endif()
# CMake build type
# Debug Release RelWithDebInfo MinSizeRel Coverage
if (NOT CMAKE_BUILD_TYPE)
# default to release with debug symbols
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type" FORCE)
endif()
set(QGC_ROOT ${CMAKE_SOURCE_DIR}/..)
# Add folder where are supportive functions
list(APPEND CMAKE_MODULE_PATH ${QGC_ROOT}/cmake)
# Configure Qt5 to get necessary variables
include(Qt5QGCConfiguration)
message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")
message(STATUS "Qt version: ${QT_VERSION}")
message(STATUS "Qt spec: ${QT_MKSPEC}")
set(COMPANY "Auterion")
set(COPYRIGHT "Copyright (c) 2020 VideoReceiverApp. All rights reserved.")
set(IDENTIFIER "labs.auterion.VideoReceiverApp")
include(Git)
message(STATUS "VideoReceiverApp version: ${GIT_VERSION}")
#=============================================================================
# ccache
#
option(CCACHE "Use ccache if available" ON)
find_program(CCACHE_PROGRAM ccache)
if (CCACHE AND CCACHE_PROGRAM AND NOT DEFINED ENV{CCACHE_DISABLE})
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif()
#=============================================================================
# Compile QML
#
option(COMPILE_QML "Pre-compile QML files using the Qt Quick compiler." FALSE)
add_feature_info(COMPILE_QML COMPILE_QML "Pre-compile QML files using the Qt Quick compiler.")
if(COMPILE_QML)
find_package(Qt5QuickCompiler)
set_package_properties(Qt5QuickCompiler PROPERTIES
DESCRIPTION "Pre-compile QML files using the Qt Quick compiler."
TYPE OPTIONAL
)
endif()
#=============================================================================
# Debug QML
#
option(DEBUG_QML "Build VideoReceiverApp with QML debugging/profiling support." FALSE)
add_feature_info(DEBUG_QML DEBUG_QML "Build VideoReceiverApp with QML debugging/profiling support.")
if(DEBUG_QML)
message(STATUS "To enable the QML debugger/profiler, run with: '-qmljsdebugger=port:1234'")
add_definitions(-DQMLJSDEBUGGER)
add_definitions(-DQT_DECLARATIVE_DEBUG)
add_definitions(-DQT_QML_DEBUG)
endif()
#=============================================================================
# GStreamer
#
find_package(PkgConfig)
pkg_check_modules(GST
gstreamer-1.0>=1.14
gstreamer-video-1.0>=1.14
gstreamer-gl-1.0>=1.14
egl
)
if (GST_FOUND)
include_directories(
${GST_INCLUDE_DIRS}
)
endif()
#=============================================================================
# Qt5
#
find_package(Qt5 ${QT_VERSION}
COMPONENTS
Bluetooth
Charts
Concurrent
Core
Location
Multimedia
Network
Positioning
Quick
QuickWidgets
OpenGL
Sql
Svg
Test
TextToSpeech
Widgets
Xml
REQUIRED
HINTS
${QT_LIBRARY_HINTS}
)
# Sets the default flags for compilation and linking.
include(CompileOptions)
include_directories(
${QGC_ROOT}/src
${CMAKE_CURRENT_BINARY_DIR}
${Qt5Location_PRIVATE_INCLUDE_DIRS}
VideoReceiver
)
add_subdirectory(${QGC_ROOT}/libs/qmlglsink qmlglsink.build)
add_subdirectory(${QGC_ROOT}/src/VideoReceiver VideoReceiver.build)
set(VIDEORECIVERAPP_SOURCES main.cpp ${QGC_ROOT}/src/QGCLoggingCategory.cc)
set(VIDEORECIVERAPP_RESOURCES qml.qrc)
if(ANDROID)
add_library(VideoReceiverApp SHARED ${VIDEORECIVERAPP_SOURCES} ${VIDEORECIVERAPP_RESOURCES})
else()
add_executable(VideoReceiverApp ${VIDEORECIVERAPP_SOURCES} ${VIDEORECIVERAPP_RESOURCES})
endif()
target_link_libraries(VideoReceiverApp
PRIVATE
VideoReceiver
Qt5::Core
Qt5::Multimedia
Qt5::OpenGL
Qt5::Quick
Qt5::QuickWidgets
)
qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/Info.plist0000664 0000000 0000000 00000001621 13753453473 0032151 0 ustar 00root root 0000000 0000000
CFBundleDisplayName
QQmlGlSinkTest
CFBundleExecutable
$(EXECUTABLE_NAME)
NSHumanReadableCopyright
Open Source Flight Systems GmbH - Internal Build
CFBundleIconFile
CFBundleIdentifier
labs.auterion.VideoReceiverApp
CFBundleName
$(PRODUCT_NAME)
CFBundlePackageType
APPL
CFBundleShortVersionString
0.0.0
CFBundleSignature
????
CFBundleVersion
1
LSRequiresIPhoneOS
UIFileSharingEnabled
qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/README.md 0000664 0000000 0000000 00000004165 13753453473 0031466 0 ustar 00root root 0000000 0000000 # VideoReceiverApp
## Application
This is a simple test application developed to make VideoReceiver library development and testing easier. It can also be used as part of CI for system tests.
## Use cases and options
Application's behaviour depends on the executable name. There are two modes - QML and console. QML mode is enabled by renaming application executable to something that starts with **Q** (for example QVideoReceiverApp). In this case **video-sink** option is not available and application always tries to use **qmlglsink** for video rendering. In regular case (executable name does not start with **Q**) **autovideosink** or **fakesink** are used, depending on options.
### Available options and required arguments
```VideoReceiverApp [options] url```
for example:
```VideoReceiverApp -d --stop-decoding 30 rtsp://127.0.0.1:8554/test```
#### Options
```-h, --help``` - displays help
```-t, --timeout ``` - specifies source timeout
```-c, --connect ``` - specifies number of connection attempts
```-d, --decode``` - enables or disables video decoding and rendering
```--no-decode``` - disables video decoding and rendering if it was enabled by default
```--stop-decoding ``` - specifies amount of seconds after which decoding should be stopped
```-r, --record ``` - enables record video into file
```-f, --format ``` - specifies recording file format, where format 0 - MKV, 1 - MOV, 2 - MP4
```--stop-recording ``` - specifies amount of seconds after which recording should be stopped
```--video-sink ``` - specifies which video sink to use : 0 - autovideosink, 1 - fakesink
#### Arguments
```url``` - required, specifies video URL.
Following URLs are supported:
```rtsp://:/mount/point``` - usual RTSP URL
```udp://:``` - H.264 over RTP/UDP
```udp265://:``` - H.265 over RTP/UDP
```tsusb://:``` - Taisync's forwarded H.264 byte aligned NALU stream over UDP
```tcp://:``` - MPEG-2 TS over TCP
```mpegts://:``` - MPEG-2 TS over UDP
qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/android/ 0000775 0000000 0000000 00000000000 13753453473 0031621 5 ustar 00root root 0000000 0000000 AndroidManifest.xml 0000664 0000000 0000000 00000013172 13753453473 0035337 0 ustar 00root root 0000000 0000000 qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/android
AndroidManifest.xml.in 0000664 0000000 0000000 00000005527 13753453473 0035751 0 ustar 00root root 0000000 0000000 qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/android
GooglePlayDailyIcon.png 0000664 0000000 0000000 00000531612 13753453473 0036116 0 ustar 00root root 0000000 0000000 qgroundcontrol-0877c5b74cb3d0bacb43f82346c87b9e87dd1140-VideoReceiverApp/VideoReceiverApp/android PNG
IHDR x pHYs t tfx
OiCCPPhotoshop ICC profile xڝSgTS=BKKoR RB&*! J!QEEȠQ,
!{kּ>H3Q5B.@
$p d!s# ~<<+" x M0B\t8K @zB @F&S