libsndfile: Fix missing external library support

Message ID 20220303111852.323319-1-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit d1aba25b2559041c96735b58424baf8862796095
Headers show
Series libsndfile: Fix missing external library support | expand

Commit Message

Richard Purdie March 3, 2022, 11:18 a.m. UTC
The recent upgrade regressed codec support since opus is missing and
this caused several codecs to be disabled. Add a patch to work around
the issue whilst it is discussed with upstream.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 .../libsndfile/libsndfile1/noopus.patch       | 55 +++++++++++++++++++
 .../libsndfile/libsndfile1_1.0.31.bb          |  1 +
 2 files changed, 56 insertions(+)
 create mode 100644 meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch

Patch

diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch
new file mode 100644
index 00000000000..6bcb9324298
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch
@@ -0,0 +1,55 @@ 
+We don't have opus in OE-Core which causes all the external libs to be disabled 
+silently. The silent issue is discussed in the link below and hints a patch
+to make things configurable may be accepted.
+
+This patch removing the opus piece at least gets most of the functionality
+we previously used back whilst the issue is discussed.
+
+Upstream-Status: Pending [https://github.com/libsndfile/libsndfile/pull/812]
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: libsndfile-1.0.31/configure.ac
+===================================================================
+--- libsndfile-1.0.31.orig/configure.ac
++++ libsndfile-1.0.31/configure.ac
+@@ -361,13 +361,13 @@ AS_IF([test -n "$PKG_CONFIG"], [
+ 				enable_external_libs=yes
+ 			])
+ 
+-			AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc$ac_cv_opus" = "xyesyesyesyesyes"], [
++			AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc" = "xyesyesyesyes"], [
+ 					HAVE_EXTERNAL_XIPH_LIBS=1
+ 					enable_external_libs=yes
+ 
+-					EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OPUS_CFLAGS $OGG_CFLAGS "
+-					EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OPUS_LIBS $OGG_LIBS "
+-					EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc opus"
++					EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OGG_CFLAGS "
++					EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OGG_LIBS "
++					EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc"
+ 
+ 					if test x$ac_cv_speex = "xyes" ; then
+ 						EXTERNAL_XIPH_REQUIRE="$EXTERNAL_XIPH_REQUIRE speex"
+@@ -716,7 +716,7 @@ AC_MSG_RESULT([
+ 
+     Experimental code : ................... ${enable_experimental:-no}
+     Using ALSA in example programs : ...... ${enable_alsa:-no}
+-    External FLAC/Ogg/Vorbis/Opus : ....... ${enable_external_libs:-no}
++    External FLAC/Ogg/Vorbis : ....... ${enable_external_libs:-no}
+     Building Octave interface : ........... ${OCTAVE_BUILD}
+ 
+   Tools :
+Index: libsndfile-1.0.31/src/ogg_opus.c
+===================================================================
+--- libsndfile-1.0.31.orig/src/ogg_opus.c
++++ libsndfile-1.0.31/src/ogg_opus.c
+@@ -159,7 +159,7 @@
+ #include "sfendian.h"
+ #include "common.h"
+ 
+-#if HAVE_EXTERNAL_XIPH_LIBS
++#if 0
+ 
+ #include <ogg/ogg.h>
+ #include <opus/opus.h>
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.31.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.31.bb
index 9f1a106600b..ea14fe29cb5 100644
--- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.31.bb
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.31.bb
@@ -9,6 +9,7 @@  SECTION = "libs/multimedia"
 LICENSE = "LGPL-2.1-only"
 
 SRC_URI = "https://github.com/libsndfile/libsndfile/releases/download/${PV}/libsndfile-${PV}.tar.bz2 \
+           file://noopus.patch \
           "
 UPSTREAM_CHECK_URI = "https://github.com/libsndfile/libsndfile/releases/"