summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTanu Kaskinen <tanu.kaskinen@linux.intel.com>2015-07-09 13:43:13 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-16 15:09:15 +0100
commitd8c34285e15c636ef08cfe42d15890984b12280e (patch)
treec755770bdf83051449277930bd7d721b64f761cc
parentba07a69f3dc8fb798e372130bf665d059fed9d42 (diff)
downloadpoky-d8c34285e15c636ef08cfe42d15890984b12280e.tar.gz
speexdsp: initial recipe
speexdsp was split off from speex in 1.2rc2, so we need a separate recipe for speexdsp when before we can upgrade speex. The speex recipe has so far used the --enable-fixed-point configure option unconditionally, but I believe that was a mistake, so I dropped that. The option is still enabled if TARGET_FPU is set to "soft". Commit e8f707f16a38d85535593a32efff6dcbf4ddb203 added the TARGET_FPU check, and I think that commit should have removed --enable-fixed-point from the static configure options, like it removed --disable-float-api. The NEON code caused a build failure on qemuarm64. As a workaround, I disabled NEON optimizations when building for aarch64. I added a patch that fixes a build failure in alsa-plugins. Compiling alsa-plugins against the new speexdsp version without the patch resulted in this error: In file included from .../usr/include/speex/speexdsp_types.h:122:0, from .../usr/include/speex/speex_preprocess.h:46, from .../alsa-plugins-1.0.29/speex/pcm_speex.c:23: .../usr/include/speex/speexdsp_config_types.h:13:9: error: unknown type name 'uint16_t' typedef uint16_t spx_uint16_t; ^ (From OE-Core rev: bb826645d188e5ea78718f3ad4b2e420eec3b354) (From OE-Core rev: 28b7bccd226c4d9040ef0d8199a29e74f2da72b1) Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch63
-rw-r--r--meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb39
2 files changed, 102 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch b/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
new file mode 100644
index 0000000000..c7067daaa0
--- /dev/null
+++ b/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
@@ -0,0 +1,63 @@
1From c73370ceafd138becee8ca3c688ba75756830bfe Mon Sep 17 00:00:00 2001
2From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
3Date: Sun, 5 Jul 2015 17:48:16 +0300
4Subject: [PATCH] Don't rely on HAVE_STDINT_H et al. being defined
5
6Not everyone who includes speexdsp_config_types.h will have a test
7which defines those, and if we've chosen to use the stdint types at
8configure time then we know exactly which header(s) are available, so
9just choose the best one then and generate the header to use it.
10
11This patch, including the above text, is copied from a commit in the
12speex repository[1]. The original commit for speex was made by Ron
13<ron@debian.org>.
14
15[1] https://git.xiph.org/?p=speex.git;a=commitdiff;h=774c87d6cb7dd8dabdd17677fc6da753ecf4aa87
16
17Upstream-Status: Backport
18
19Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
20---
21 configure.ac | 6 ++++++
22 include/speex/speexdsp_config_types.h.in | 8 +-------
23 2 files changed, 7 insertions(+), 7 deletions(-)
24
25diff --git a/configure.ac b/configure.ac
26index 2cd2d1e..1de0c23 100644
27--- a/configure.ac
28+++ b/configure.ac
29@@ -334,6 +334,12 @@ AC_SUBST([USIZE16])
30 AC_SUBST([SIZE32])
31 AC_SUBST([USIZE32])
32
33+AS_IF([test "$ac_cv_header_stdint_h" = "yes"], [INCLUDE_STDINT="#include <stdint.h>"],
34+ [test "$ac_cv_header_inttypes_h" = "yes"], [INCLUDE_STDINT="#include <inttypes.h>"],
35+ [test "$ac_cv_header_sys_types_h" = "yes"], [INCLUDE_STDINT="#include <sys/types.h>"])
36+
37+AC_SUBST([INCLUDE_STDINT])
38+
39 AC_CONFIG_FILES([
40 Makefile libspeexdsp/Makefile doc/Makefile SpeexDSP.spec
41 include/Makefile include/speex/Makefile speexdsp.pc
42diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in
43index 02b82fd..5ea7b55 100644
44--- a/include/speex/speexdsp_config_types.h.in
45+++ b/include/speex/speexdsp_config_types.h.in
46@@ -1,13 +1,7 @@
47 #ifndef __SPEEX_TYPES_H__
48 #define __SPEEX_TYPES_H__
49
50-#if defined HAVE_STDINT_H
51-# include <stdint.h>
52-#elif defined HAVE_INTTYPES_H
53-# include <inttypes.h>
54-#elif defined HAVE_SYS_TYPES_H
55-# include <sys/types.h>
56-#endif
57+@INCLUDE_STDINT@
58
59 typedef @SIZE16@ spx_int16_t;
60 typedef @USIZE16@ spx_uint16_t;
61--
621.9.3
63
diff --git a/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb b/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
new file mode 100644
index 0000000000..6b1acedbef
--- /dev/null
+++ b/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
@@ -0,0 +1,39 @@
1SUMMARY = "A patent-free DSP library"
2DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library."
3HOMEPAGE = "http://www.speex.org"
4SECTION = "libs"
5LICENSE = "BSD"
6LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8"
7
8SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz \
9 file://0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch"
10
11SRC_URI[md5sum] = "70d9d31184f7eb761192fd1ef0b73333"
12SRC_URI[sha256sum] = "4ae688600039f5d224bdf2e222d2fbde65608447e4c2f681585e4dca6df692f1"
13
14inherit autotools pkgconfig
15
16EXTRA_OECONF = "\
17 --disable-examples \
18 ${@bb.utils.contains('TARGET_FPU', 'soft', '--enable-fixed-point --disable-float-api', '', d)} \
19"
20
21# Workaround for a build failure when building with MACHINE=qemuarm64. I think
22# aarch64 is supposed to support NEON just fine, but building for qemuarm64
23# fails in NEON code:
24#
25# .../speexdsp-1.2rc3/libspeexdsp/resample_neon.h:148:5: error: impossible constraint in 'asm'
26# asm volatile (" cmp %[len], #0\n"
27# ^
28#
29# I sent an email about the issue to speex-dev. At the time of writing there
30# are no responses yet:
31# http://thread.gmane.org/gmane.comp.audio.compression.speex.devel/7360
32EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--disable-neon', '', d)}"
33
34# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't
35# be installed together with speexdsp, since they contain overlapping files.
36RCONFLICTS_${PN} = "speex (< 1.2rc2)"
37RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)"
38RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)"
39RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)"