Add roc-toolkit package and dependencies for Real Time network audio.
This commit is contained in:
parent
5cb6eed78b
commit
febd8d99cf
|
@ -98,6 +98,7 @@ endmenu
|
|||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/lottie-qml/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ncpamixer/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/neon2sse/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/openfec/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/openfst/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-bus-server/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-dashboard/Config.in"
|
||||
|
@ -109,6 +110,7 @@ endmenu
|
|||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/qt5ct/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/respeaker/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/rnnnoise-ladspa/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/roc-toolkit/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/rpi-eeprom/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ruy/Config.in"
|
||||
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/snapcast/Config.in"
|
||||
|
|
|
@ -238,7 +238,6 @@ BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC=y
|
|||
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
|
||||
BR2_PACKAGE_GST1_DEVTOOLS=y
|
||||
BR2_PACKAGE_GST1_INTERPIPE=y
|
||||
BR2_PACKAGE_GST1_LIBAV=y
|
||||
BR2_PACKAGE_GST1_PYTHON=y
|
||||
BR2_PACKAGE_MIMIC=y
|
||||
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO=y
|
||||
|
@ -594,6 +593,7 @@ BR2_PACKAGE_PICOTTS=y
|
|||
BR2_PACKAGE_QT5CT=y
|
||||
BR2_PACKAGE_RESPEAKER=y
|
||||
BR2_PACKAGE_RNNNOISE_LADSPA=y
|
||||
BR2_PACKAGE_ROC_TOOLKIT=y
|
||||
BR2_PACKAGE_SNAPCAST=y
|
||||
BR2_PACKAGE_SNAPCAST_SERVER=y
|
||||
BR2_PACKAGE_SPOTIFYD=y
|
||||
|
|
|
@ -239,7 +239,6 @@ BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC=y
|
|||
BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
|
||||
BR2_PACKAGE_GST1_DEVTOOLS=y
|
||||
BR2_PACKAGE_GST1_INTERPIPE=y
|
||||
BR2_PACKAGE_GST1_LIBAV=y
|
||||
BR2_PACKAGE_GST1_PYTHON=y
|
||||
BR2_PACKAGE_MIMIC=y
|
||||
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_PULSEAUDIO=y
|
||||
|
@ -594,6 +593,7 @@ BR2_PACKAGE_PICOTTS=y
|
|||
BR2_PACKAGE_QT5CT=y
|
||||
BR2_PACKAGE_RESPEAKER=y
|
||||
BR2_PACKAGE_RNNNOISE_LADSPA=y
|
||||
BR2_PACKAGE_ROC_TOOLKIT=y
|
||||
BR2_PACKAGE_SNAPCAST=y
|
||||
BR2_PACKAGE_SNAPCAST_SERVER=y
|
||||
BR2_PACKAGE_SPOTIFYD=y
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
From 57c62db33ed51b7e263d18996ea8656dc31722bb Mon Sep 17 00:00:00 2001
|
||||
From: Victor Gaydov <victor@enise.org>
|
||||
Date: Fri, 2 Dec 2022 16:30:58 +0400
|
||||
Subject: [PATCH] CMake improvements
|
||||
|
||||
---
|
||||
.github/workflows/{build-openfec.yml => build.yml} | 5 +++++
|
||||
CMakeLists.txt | 14 +++++++++++---
|
||||
applis/eperftool/CMakeLists.txt | 8 ++++++--
|
||||
.../simple_client_server/CMakeLists.txt | 10 +++++++---
|
||||
pc/CMakeLists.txt | 6 +++++-
|
||||
src/CMakeLists.txt | 5 +++++
|
||||
tests/CMakeLists.txt | 6 +++---
|
||||
tools/descr_stats_v1.2/CMakeLists.txt | 2 --
|
||||
8 files changed, 42 insertions(+), 14 deletions(-)
|
||||
rename .github/workflows/{build-openfec.yml => build.yml} (94%)
|
||||
|
||||
diff --git a/.github/workflows/build-openfec.yml b/.github/workflows/build.yml
|
||||
similarity index 94%
|
||||
rename from .github/workflows/build-openfec.yml
|
||||
rename to .github/workflows/build.yml
|
||||
index 730aa60..b36ef6d 100644
|
||||
--- a/.github/workflows/build-openfec.yml
|
||||
+++ b/.github/workflows/build.yml
|
||||
@@ -43,6 +43,11 @@ jobs:
|
||||
cd build
|
||||
make -j2
|
||||
|
||||
+ - name: Run tests
|
||||
+ run: |
|
||||
+ cd build
|
||||
+ make test
|
||||
+
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index c1629d2..b3f46e3 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,4 +1,8 @@
|
||||
-cmake_minimum_required(VERSION 3.0.2)
|
||||
+if(CMAKE_MAJOR_VERSION LESS 3)
|
||||
+ cmake_minimum_required(VERSION 2.6)
|
||||
+else()
|
||||
+ cmake_minimum_required(VERSION 2.8.12)
|
||||
+endif()
|
||||
|
||||
##project
|
||||
project(openfec C)
|
||||
@@ -39,13 +43,17 @@ message(STATUS "Optimization level ${OPTIMIZE}")
|
||||
|
||||
endif (DEBUG STREQUAL "ON")
|
||||
|
||||
-set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
|
||||
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
|
||||
+set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}
|
||||
+ CACHE STRING "output path for libraries")
|
||||
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}
|
||||
+ CACHE STRING "output path for executables")
|
||||
MARK_AS_ADVANCED(
|
||||
LIBRARY_OUTPUT_PATH
|
||||
EXECUTABLE_OUTPUT_PATH
|
||||
)
|
||||
|
||||
+option(INSTALL_DEVTOOLS "install developer tools into the system" OFF)
|
||||
+
|
||||
link_directories(${LIBRARY_OUTPUT_PATH})
|
||||
|
||||
add_subdirectory(pc)
|
||||
diff --git a/applis/eperftool/CMakeLists.txt b/applis/eperftool/CMakeLists.txt
|
||||
index ca29521..f7966a1 100644
|
||||
--- a/applis/eperftool/CMakeLists.txt
|
||||
+++ b/applis/eperftool/CMakeLists.txt
|
||||
@@ -1,9 +1,13 @@
|
||||
file (GLOB eperftool_sources ./*)
|
||||
|
||||
-set(EPERFTOOL_BIN ${PROJECT_BINARY_DIR}/applis/eperftool/eperftool CACHE STRING "eperftool dir")
|
||||
+set(EPERFTOOL_BIN ${EXECUTABLE_OUTPUT_PATH}/eperftool CACHE STRING "eperftool exe")
|
||||
add_executable( eperftool ${eperftool_sources})
|
||||
|
||||
|
||||
target_link_libraries( eperftool openfec m)
|
||||
|
||||
-install(TARGETS eperftool)
|
||||
+if(INSTALL_DEVTOOLS)
|
||||
+ install(TARGETS eperftool
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
|
||||
+ COMPONENT devtools)
|
||||
+endif()
|
||||
diff --git a/applis/howto_examples/simple_client_server/CMakeLists.txt b/applis/howto_examples/simple_client_server/CMakeLists.txt
|
||||
index d3eed50..a215699 100644
|
||||
--- a/applis/howto_examples/simple_client_server/CMakeLists.txt
|
||||
+++ b/applis/howto_examples/simple_client_server/CMakeLists.txt
|
||||
@@ -1,6 +1,6 @@
|
||||
file (GLOB simple_server_sources ./simple_server.c)
|
||||
|
||||
-set(SIMPLE_SERVER_BIN ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/simple_server CACHE STRING "simple_server dir")
|
||||
+set(SIMPLE_SERVER_BIN ${EXECUTABLE_OUTPUT_PATH}/simple_server CACHE STRING "simple_server exe")
|
||||
add_executable(simple_server ${simple_server_sources})
|
||||
|
||||
target_link_libraries(simple_server openfec m)
|
||||
@@ -8,9 +8,13 @@ target_link_libraries(simple_server openfec m)
|
||||
|
||||
file (GLOB simple_client_sources ./simple_client.c)
|
||||
|
||||
-set(SIMPLE_SERVER_BIN ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/simple_client CACHE STRING "simple_client dir")
|
||||
+set(SIMPLE_SERVER_BIN ${EXECUTABLE_OUTPUT_PATH}/simple_client CACHE STRING "simple_client exe")
|
||||
add_executable(simple_client ${simple_client_sources})
|
||||
|
||||
target_link_libraries(simple_client openfec m)
|
||||
|
||||
-install(TARGETS simple_server simple_client)
|
||||
\ No newline at end of file
|
||||
+if(INSTALL_DEVTOOLS)
|
||||
+ install(TARGETS simple_server simple_client
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
|
||||
+ COMPONENT applis)
|
||||
+endif()
|
||||
diff --git a/pc/CMakeLists.txt b/pc/CMakeLists.txt
|
||||
index e9e2baf..589b91a 100644
|
||||
--- a/pc/CMakeLists.txt
|
||||
+++ b/pc/CMakeLists.txt
|
||||
@@ -5,7 +5,7 @@ SET(PKG_CONFIG_LIBS
|
||||
"-L\${libdir} -l${PROJECT_NAME}"
|
||||
)
|
||||
SET(PKG_CONFIG_CFLAGS
|
||||
- "-I\${includedir}/lib_common -I\${includedir}/lib_stable"
|
||||
+ "-I\${includedir}/lib_common -I\${includedir}/lib_stable -I\${includedir}/lib_advanced"
|
||||
)
|
||||
|
||||
message(STATUS "Configuring \"${CMAKE_SOURCE_BINARY_DIR}/${PROJECT_NAME}.pc\"")
|
||||
@@ -15,3 +15,7 @@ CONFIGURE_FILE(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc"
|
||||
@ONLY
|
||||
)
|
||||
+
|
||||
+install(
|
||||
+ FILES "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc"
|
||||
+ DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/pkgconfig)
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index f92e095..0a547a0 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -37,6 +37,11 @@ target_link_libraries(openfec m)
|
||||
|
||||
install(TARGETS openfec DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
|
||||
+install(
|
||||
+ DIRECTORY ${PROJECT_SOURCE_DIR}/src/
|
||||
+ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/openfec
|
||||
+ FILES_MATCHING PATTERN "*.h*")
|
||||
+
|
||||
include(TestBigEndian)
|
||||
test_big_endian(BIG_ENDIAN)
|
||||
if(BIG_ENDIAN)
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index ac25678..630d950 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -1,19 +1,19 @@
|
||||
# list of dedicated binary tests
|
||||
add_executable(test_create_instance create_instance_test.c)
|
||||
target_link_libraries(test_create_instance openfec m)
|
||||
-add_test("create_instance" ${PROJECT_BINARY_DIR}/tests/test_create_instance)
|
||||
+add_test("create_instance" ${EXECUTABLE_OUTPUT_PATH}/test_create_instance)
|
||||
set_tests_properties ("create_instance"
|
||||
PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;FAILURE")
|
||||
|
||||
add_executable(test_encoder_instance encoder_instance_test.c)
|
||||
target_link_libraries(test_encoder_instance openfec m)
|
||||
-add_test("encoder_instance" ${PROJECT_BINARY_DIR}/tests/test_encoder_instance)
|
||||
+add_test("encoder_instance" ${EXECUTABLE_OUTPUT_PATH}/test_encoder_instance)
|
||||
set_tests_properties ("encoder_instance"
|
||||
PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;FAILURE")
|
||||
|
||||
add_executable(test_code_params code_params_test.c)
|
||||
target_link_libraries(test_code_params openfec m)
|
||||
-add_test("code_params" ${PROJECT_BINARY_DIR}/tests/test_code_params)
|
||||
+add_test("code_params" ${EXECUTABLE_OUTPUT_PATH}/test_code_params)
|
||||
set_tests_properties ("code_params"
|
||||
PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;FAILURE")
|
||||
|
||||
diff --git a/tools/descr_stats_v1.2/CMakeLists.txt b/tools/descr_stats_v1.2/CMakeLists.txt
|
||||
index 471d732..b3732e9 100644
|
||||
--- a/tools/descr_stats_v1.2/CMakeLists.txt
|
||||
+++ b/tools/descr_stats_v1.2/CMakeLists.txt
|
||||
@@ -4,5 +4,3 @@ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/perf_eval)
|
||||
add_executable(descr_stats ${descr_stat_sources})
|
||||
|
||||
target_link_libraries( descr_stats m)
|
||||
-
|
||||
-install(TARGETS descr_stats)
|
|
@ -0,0 +1,7 @@
|
|||
config BR2_PACKAGE_OPENFEC
|
||||
bool "openfec"
|
||||
help
|
||||
Unofficial OpenFEC fork with various bugfixes.
|
||||
|
||||
https://github.com/roc-streaming/openfec
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
################################################################################
|
||||
#
|
||||
# openfec
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENFEC_VERSION = b452e08e5bb135c9fac541ce7553b7b60ceb8119
|
||||
OPENFEC_SITE = $(call github,roc-streaming,openfec,$(OPENFEC_VERSION))
|
||||
OPENFEC_LICENSE = MIT
|
||||
|
||||
OPENFEC_INSTALL_STAGING = YES
|
||||
OPENFEC_DEPENDENCIES = host-pkgconf
|
||||
OPENFEC_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||
|
||||
OPENFEC_CONF_OPTS = \
|
||||
-DOPTIMIZE=DEFAULT
|
||||
|
||||
$(eval $(cmake-package))
|
|
@ -0,0 +1,3 @@
|
|||
# Locally computed:
|
||||
sha256 5f156edb65d20b856d638dd9ee2dfb43285914d9aa2b6ec779dac0270cd56c3f ragel-6.10.tar.gz
|
||||
sha256 05a87975accb539399d0c8a4f4402ac27a6762fb1e4f31d04d455a8bee3e3693 COPYING
|
|
@ -0,0 +1,16 @@
|
|||
################################################################################
|
||||
#
|
||||
# ragel
|
||||
#
|
||||
################################################################################
|
||||
|
||||
RAGEL_VERSION = 6.10
|
||||
RAGEL_SITE = https://www.colm.net/files/ragel/
|
||||
RAGEL_LICENSE = GPL-2.0
|
||||
RAGEL_LICENSE_FILES = COPYING
|
||||
RAGEL_CONF_OPTS = \
|
||||
--disable-silent-rules \
|
||||
--disable-manual \
|
||||
--disable-dependency-tracking
|
||||
|
||||
$(eval $(host-autotools-package))
|
|
@ -0,0 +1,11 @@
|
|||
config BR2_PACKAGE_ROC_TOOLKIT
|
||||
bool "roc-toolkit"
|
||||
select BR2_PACKAGE_GST1_LIBAV
|
||||
select BR2_PACKAGE_LIBUNWIND
|
||||
select BR2_PACKAGE_OPENFEC
|
||||
select BR2_PACKAGE_SPEEXDSP
|
||||
help
|
||||
Roc is a toolkit for real-time audio streaming over the network.
|
||||
|
||||
https://github.com/roc-streaming/roc-toolkit
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
################################################################################
|
||||
#
|
||||
# roc-toolkit
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ROC_TOOLKIT_VERSION = 127cfc645d0a807a33506001367b6d9a9d46f23e
|
||||
ROC_TOOLKIT_SITE = $(call github,roc-streaming,roc-toolkit,$(ROC_TOOLKIT_VERSION))
|
||||
ROC_TOOLKIT_LICENSE = MPL-2.0
|
||||
ROC_TOOLKIT_LICENSE_FILES = LICENSE
|
||||
ROC_TOOLKIT_INSTALL_STAGING = YES
|
||||
|
||||
ROC_TOOLKIT_DEPENDENCIES = \
|
||||
host-scons \
|
||||
host-pkgconf \
|
||||
host-ragel \
|
||||
gst1-libav \
|
||||
libunwind \
|
||||
openfec \
|
||||
speexdsp \
|
||||
sox \
|
||||
pulseaudio
|
||||
|
||||
define ROC_TOOLKIT_BUILD_CMDS
|
||||
(cd $(@D); \
|
||||
$(TARGET_CONFIGURE_OPTS) CROSS=$(TARGET_CROSS) \
|
||||
$(SCONS) $(ROCTOOLKIT__SCONS_OPTS))
|
||||
endef
|
||||
|
||||
define ROC_TOOLKIT_INSTALL_STAGING_CMDS
|
||||
(cd $(@D); \
|
||||
$(TARGET_CONFIGURE_OPTS) CROSS=$(TARGET_CROSS) \
|
||||
$(SCONS) --prefix="$(STAGING_DIR)/usr" install)
|
||||
endef
|
||||
|
||||
define ROC_TOOLKIT_INSTALL_TARGET_CMDS
|
||||
(cd $(@D); \
|
||||
$(TARGET_CONFIGURE_OPTS) CROSS=$(TARGET_CROSS) \
|
||||
$(SCONS) --prefix="$(TARGET_DIR)/usr" install)
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
Loading…
Reference in New Issue