diff options
author | Tanu Kaskinen <tanu.kaskinen@linux.intel.com> | 2015-07-09 13:43:13 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-16 15:09:15 +0100 |
commit | d8c34285e15c636ef08cfe42d15890984b12280e (patch) | |
tree | c755770bdf83051449277930bd7d721b64f761cc | |
parent | ba07a69f3dc8fb798e372130bf665d059fed9d42 (diff) | |
download | poky-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.patch | 63 | ||||
-rw-r--r-- | meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb | 39 |
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 @@ | |||
1 | From c73370ceafd138becee8ca3c688ba75756830bfe Mon Sep 17 00:00:00 2001 | ||
2 | From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> | ||
3 | Date: Sun, 5 Jul 2015 17:48:16 +0300 | ||
4 | Subject: [PATCH] Don't rely on HAVE_STDINT_H et al. being defined | ||
5 | |||
6 | Not everyone who includes speexdsp_config_types.h will have a test | ||
7 | which defines those, and if we've chosen to use the stdint types at | ||
8 | configure time then we know exactly which header(s) are available, so | ||
9 | just choose the best one then and generate the header to use it. | ||
10 | |||
11 | This patch, including the above text, is copied from a commit in the | ||
12 | speex 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 | |||
17 | Upstream-Status: Backport | ||
18 | |||
19 | Signed-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 | |||
25 | diff --git a/configure.ac b/configure.ac | ||
26 | index 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 | ||
42 | diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in | ||
43 | index 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 | -- | ||
62 | 1.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 @@ | |||
1 | SUMMARY = "A patent-free DSP library" | ||
2 | DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library." | ||
3 | HOMEPAGE = "http://www.speex.org" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "BSD" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8" | ||
7 | |||
8 | SRC_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 | |||
11 | SRC_URI[md5sum] = "70d9d31184f7eb761192fd1ef0b73333" | ||
12 | SRC_URI[sha256sum] = "4ae688600039f5d224bdf2e222d2fbde65608447e4c2f681585e4dca6df692f1" | ||
13 | |||
14 | inherit autotools pkgconfig | ||
15 | |||
16 | EXTRA_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 | ||
32 | EXTRA_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. | ||
36 | RCONFLICTS_${PN} = "speex (< 1.2rc2)" | ||
37 | RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)" | ||
38 | RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)" | ||
39 | RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)" | ||