From e0d5ad833e89f47c88601e15158015319e568af8 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 8 Sep 2020 13:23:42 -0400 Subject: meta-speech-framework: Update Alexa Auto SDK to v2.3 Changes: - Mask out the duplicate libopus recipe, the same version is available from a recipe in meta-oe. - Update BBFILES addition for the audio module in the feature template to work with yet another new audio output backend. - Update the AlexaAutoCoreEngineConfig.json.in template based on the new sample JSON in 2.3. - Update alexa-voiceagent-config recipe to add new configuration variables ALEXA_LOCALE, ALEXA_TIMEZONE, ALEXA_MFG_NAME, and ALEXA_DESCRIPTION to match requirements of the updated configuration JSON. - Remove local alexa-voiceagent-service patches merged by Amazon, and update 0001-remove-library-dependency-copying.patch for 2.3. - Update SDK module DEPENDS for alexa-voiceagent-service recipe to match what seems required now with 2.3. - Remove avs-device-sdk patch for building with g++ 9.x, as it is no longer required. - Add avs-device-sdk patch to workaround hang seen on first connection. - Add bbappends for aac-module-car-control and aac-module-messaging recipes to fix their nlohmann-json DEPENDS to work with the recipe that is available in meta-oe. - Rework aac-module-system-audio.bbappend to enable the PipeWire support that has been merged into the module. Bug-AGL: SPEC-3783 Signed-off-by: Scott Murray Change-Id: I18c910f9cbf874fef85d1d84508f6666d53629ed --- .../aac-module-gstreamer.bbappend | 9 --- ...-gstreamer-implement-pipewire-integration.patch | 94 ---------------------- 2 files changed, 103 deletions(-) delete mode 100644 meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer.bbappend delete mode 100644 meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer/0001-gstreamer-implement-pipewire-integration.patch (limited to 'meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer') diff --git a/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer.bbappend b/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer.bbappend deleted file mode 100644 index 1b2618e8..00000000 --- a/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer.bbappend +++ /dev/null @@ -1,9 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" - -# Needed for the required gstreamer-app-1.0 pkgconfig bits -DEPENDS += "gstreamer1.0-plugins-base" - -AAC_PATCHES += "file://0001-gstreamer-implement-pipewire-integration.patch" - -# Pull static library into appropriate package to avoid a QA error -FILES_${PN}-staticdev += "${AAC_PREFIX}/lib/libaal.a" diff --git a/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer/0001-gstreamer-implement-pipewire-integration.patch b/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer/0001-gstreamer-implement-pipewire-integration.patch deleted file mode 100644 index b0a5c104..00000000 --- a/meta-speech-framework/meta-aac/recipes-modules/aac-module-gstreamer/aac-module-gstreamer/0001-gstreamer-implement-pipewire-integration.patch +++ /dev/null @@ -1,94 +0,0 @@ -gstreamer: implement pipewire integration using pwaudiosrc/pwaudiosink - -The code path is wrapped in #ifdef USE_PIPEWIRE so that it can be toggled -easily at compile time. - -The device string is abused to hold the role name, just like it was -with 4A. In the future this may need to be reconsidered. In theory, -we could detect the backend or make it configurable from the upper layer -if we knew exactly what kind of data is in that device string -(is it an ALSA device name? a pipewire role? a pipewire node id? -a pulseaudio device name? ...) - -Upstream-Status: Pending - -Signed-off-by: George Kiagiadakis -[reworked for SDK 2.0] -Signed-off-by: Scott Murray - -diff --git a/lib/aal/CMakeLists.txt b/lib/aal/CMakeLists.txt -index a892465..c92b2cf 100644 ---- a/lib/aal/CMakeLists.txt -+++ b/lib/aal/CMakeLists.txt -@@ -7,6 +7,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) - - add_definitions(-DUSE_GLOOP) - add_definitions(-DUSE_FAKEMUTE) -+add_definitions(-DUSE_PIPEWIRE) - - # GStreamer - find_package(PkgConfig) -diff --git a/lib/aal/src/player.c b/lib/aal/src/player.c -index 02a2881..8747854 100644 ---- a/lib/aal/src/player.c -+++ b/lib/aal/src/player.c -@@ -120,6 +120,19 @@ aal_handle_t aal_player_create(const aal_attributes_t *attr) - g_object_get(volume, "volume", &ctx->saved_volume, NULL); - #endif - -+#ifdef USE_PIPEWIRE -+ sink = create_and_add_element(bin, "pwaudiosink", "sink"); -+ if (sink && attr->device && !IS_EMPTY_STRING(attr->device)) { -+ g_info("Using role: %s\n", attr->device); -+ GstStructure *s = gst_structure_new("properties", -+ "media.role", -+ G_TYPE_STRING, -+ attr->device, -+ NULL); -+ g_object_set(G_OBJECT(sink), "stream-properties", s, NULL); -+ gst_structure_free(s); -+ } -+#else - if (!attr->device || IS_EMPTY_STRING(attr->device)) { - sink = create_and_add_element(bin, "autoaudiosink", "sink"); - } else { -@@ -128,6 +141,7 @@ aal_handle_t aal_player_create(const aal_attributes_t *attr) - if (sink) - g_object_set(G_OBJECT(sink), "device", attr->device, NULL); - } -+#endif - if (!sink) - goto exit; - -diff --git a/lib/aal/src/recorder.c b/lib/aal/src/recorder.c -index 96c9b2a..66b36e1 100644 ---- a/lib/aal/src/recorder.c -+++ b/lib/aal/src/recorder.c -@@ -86,6 +86,19 @@ aal_handle_t aal_recorder_create(const aal_attributes_t *attr) - if (!ctx) - goto exit; - -+#ifdef USE_PIPEWIRE -+ source = create_and_add_element(ctx->pipeline, "pwaudiosrc", "source"); -+ if (source && attr->device && !IS_EMPTY_STRING(attr->device)) { -+ g_info("Using role: %s\n", attr->device); -+ GstStructure *s = gst_structure_new("properties", -+ "media.role", -+ G_TYPE_STRING, -+ attr->device, -+ NULL); -+ g_object_set(G_OBJECT(source), "stream-properties", s, NULL); -+ gst_structure_free(s); -+ } -+#else - if (!attr->device || IS_EMPTY_STRING(attr->device)) { - source = create_and_add_element(ctx->pipeline, "autoaudiosrc", "source"); - } else { -@@ -94,6 +107,7 @@ aal_handle_t aal_recorder_create(const aal_attributes_t *attr) - if (source) - g_object_set(G_OBJECT(source), "device", attr->device, NULL); - } -+#endif - if (!source) - goto exit; - -- cgit 1.2.3-korg