From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../recipes-multimedia/alsa/alsa-oss/libio.patch | 43 + .../recipes-multimedia/alsa/alsa-oss_1.0.28.bb | 20 + .../audiofile/audiofile_0.3.6.bb | 27 + .../files/0001-fix-negative-shift-constants.patch | 77 ++ .../audiofile/files/0002-fix-build-on-gcc6.patch | 75 ++ .../audiofile/files/0003-fix-CVE-2015-7747.patch | 35 + .../recipes-multimedia/cdrkit/cdrkit_1.1.11.bb | 24 + ...ne-__THROW-to-avoid-build-issue-with-musl.patch | 47 + ...te-a-run-test-to-determine-order-of-bitfi.patch | 53 ++ ...001-genisoimage-Fix-fprintf-format-errors.patch | 49 ++ .../0002-Do-not-use-rcmd-on-build-with-musl.patch | 31 + .../0001-audio_alsa09.c-alsa-drain-fix.patch | 24 + .../esound/0002-Undefine-open64-and-fopen64.patch | 33 + .../esound/0003-Use-I-path-in-configure.patch | 36 + .../recipes-multimedia/esound/esound/no-docs.patch | 19 + .../recipes-multimedia/esound/esound_0.2.41.bb | 37 + .../meta-oe/recipes-multimedia/faad2/faad2_2.7.bb | 28 + .../id3lib/id3lib/acdefine.patch | 42 + .../recipes-multimedia/id3lib/id3lib_3.8.3.bb | 18 + ...-pthread-library-dependency-to-fix-linkin.patch | 43 + .../jack/a2jmidid/0002-aarch64.patch | 31 + .../meta-oe/recipes-multimedia/jack/a2jmidid_8.bb | 26 + .../meta-oe/recipes-multimedia/jack/jack_git.bb | 38 + .../recipes-multimedia/libass/libass_0.14.0.bb | 30 + .../recipes-multimedia/libburn/libburn_1.4.0.bb | 11 + .../libcdio/libcdio-paranoia_10.2+0.93+1.bb | 24 + .../recipes-multimedia/libcdio/libcdio_2.0.0.bb | 29 + .../libdvdread/libdvdread_5.0.3.bb | 13 + ...4-Remove-clang-unsupported-compiler-flags.patch | 43 + .../libmad/libmad/add-pkgconfig.patch | 70 ++ .../libmad/libmad/automake-foreign.patch | 12 + .../libmad/fix_for_mips_with_gcc-4.5.0.patch | 33 + .../libmad/libmad/no-force-mem.patch | 18 + .../libmad/libmad/obsolete_automake_macros.patch | 14 + .../recipes-multimedia/libmad/libmad_0.15.1b.bb | 37 + .../recipes-multimedia/libmms/libmms_0.6.4.bb | 12 + .../libmodplug/libmodplug_0.8.8.5.bb | 21 + .../recipes-multimedia/libopus/libopus_1.1.3.bb | 52 ++ .../libsdl-image/libsdl-image/configure.patch | 43 + .../libsdl-image/libsdl-image_1.2.12.bb | 32 + .../libsdl-image/libsdl2-image_2.0.1.bb | 31 + .../libsdl-mixer/libsdl-mixer/configure.patch | 21 + .../libsdl-mixer/libsdl-mixer_1.2.12.bb | 39 + .../libsdl-mixer/libsdl2-mixer_2.0.2.bb | 27 + .../live555/files/config.linux-cross | 17 + .../meta-oe/recipes-multimedia/live555/live555.inc | 56 ++ .../recipes-multimedia/live555/live555_20170410.bb | 9 + .../recipes-multimedia/mikmod/libmikmod_3.3.6.bb | 28 + .../minidlna/minidlna/minidlna-daemon.init.d | 54 ++ .../minidlna/minidlna/minidlna.service | 10 + .../recipes-multimedia/mplayer/mplayer-common.bb | 23 + .../mplayer/mplayer-common/mplayer.conf | 15 + .../recipes-multimedia/mplayer/mpv_0.26.0.bb | 73 ++ .../opus-tools/opus-tools_0.1.8.bb | 15 + .../0001-build-sys-Use-C-11-for-building.patch | 27 + ...-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch | 624 +++++++++++++ .../pulseaudio/pavucontrol_3.0.bb | 20 + .../sound-themes/sound-theme-freedesktop_0.8.bb | 16 + ...a-ctl-Don-t-install-libmediactl-and-libv4.patch | 43 + ...tem-do-not-assume-building-in-source-tree.patch | 108 +++ ...tl-Define-TEMP_FAILURE_RETRY-if-undefined.patch | 53 ++ ...t-Link-mc_nextgen_test-with-libargp-if-ne.patch | 26 + .../0003-v4l2-ctl-Do-not-use-getsubopt.patch | 47 + .../v4l-utils/export-mediactl-headers.patch | 23 + .../v4l2apps/v4l-utils/mediactl-pkgconfig.patch | 20 + .../v4l2apps/v4l-utils_1.12.3.bb | 55 ++ ...mode-to-allow-streaming-over-the-network-.patch | 961 +++++++++++++++++++++ .../recipes-multimedia/v4l2apps/yavta_git.bb | 25 + .../recipes-multimedia/wavpack/wavpack_4.60.1.bb | 10 + .../libvpx-configure-support-blank-prefix.patch | 52 ++ .../recipes-multimedia/webm/libvpx_1.6.1.bb | 49 ++ .../recipes-multimedia/xpext/xpext/auxdir.patch | 13 + .../recipes-multimedia/xpext/xpext_1.0-5.bb | 20 + .../recipes-multimedia/xsp/xsp/xsp-fix-pc.patch | 10 + .../meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb | 15 + 75 files changed, 3985 insertions(+) create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch create mode 100644 meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb (limited to 'meta-openembedded/meta-oe/recipes-multimedia') diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch new file mode 100644 index 000000000..5299945e1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch @@ -0,0 +1,43 @@ +Index: alsa-oss-1.0.28/alsa/stdioemu.c +=================================================================== +--- alsa-oss-1.0.28.orig/alsa/stdioemu.c ++++ alsa-oss-1.0.28/alsa/stdioemu.c +@@ -37,7 +37,9 @@ + #endif + + #include ++#ifdef HAVE_LIBIO_H + #include ++#endif + + struct fd_cookie { + int fd; +@@ -99,7 +101,11 @@ static FILE *fake_fopen(const char *path + + if (open_mode && fdc->fd > 0) { + result = fopencookie (fdc,"w", fns); ++#ifdef HAVE_FILENO + result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */ ++#else ++ result->__filedes = fdc->fd; ++#endif + } + return result; + } +Index: alsa-oss-1.0.28/configure.ac +=================================================================== +--- alsa-oss-1.0.28.orig/configure.ac ++++ alsa-oss-1.0.28/configure.ac +@@ -35,6 +35,12 @@ if test "$with_aoss" = "yes"; then + LIBS="$OLD_LIBS" + fi + ++AC_CHECK_HEADERS_ONCE([libio.h]) ++ ++AC_CHECK_MEMBER([struct _IO_FILE._fileno], ++ [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])], ++ [],[]) ++ + AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \ + oss-redir/Makefile test/Makefile \ + alsa/testaoss test/testaoss) diff --git a/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb new file mode 100644 index 000000000..0c4a9f545 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb @@ -0,0 +1,20 @@ +SUMMARY = "Alsa OSS Compatibility Package" +SECTION = "libs/multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" +DEPENDS = "alsa-lib" + +SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \ + file://libio.patch \ +" +SRC_URI[md5sum] = "91f57e8cee1ad4cc956caa8b62ac5d43" +SRC_URI[sha256sum] = "3ae62caa88a0bc7b30ed836dcb794dc6ef4d3650439e2260db54cace7d5c6ad5" + +inherit autotools + +LEAD_SONAME = "libaoss.so.0" + +do_configure_prepend () { + touch NEWS README AUTHORS ChangeLog + sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb new file mode 100644 index 000000000..f4e19e4ad --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "The Audio File Library provides a uniform and elegant \ +API for accessing a variety of audio file formats, such as AIFF/AIFF-C, \ +WAVE, NeXT/Sun .snd/.au, Berkeley/IRCAM/CARL Sound File, Audio Visual \ +Research, Amiga IFF/8SVX, and NIST SPHERE." +HOMEPAGE = "http://www.68k.org/~michael/audiofile/" +SECTION = "libs" +LICENSE = "LGPLv2 & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = " \ + ${GNOME_MIRROR}/audiofile/0.3/${BP}.tar.xz \ + file://0001-fix-negative-shift-constants.patch \ + file://0002-fix-build-on-gcc6.patch \ + file://0003-fix-CVE-2015-7747.patch \ +" +SRC_URI[md5sum] = "235dde14742317328f0109e9866a8008" +SRC_URI[sha256sum] = "ea2449ad3f201ec590d811db9da6d02ffc5e87a677d06b92ab15363d8cb59782" + +inherit autotools lib_package pkgconfig + +DEPENDS = " \ + asciidoc-native \ + alsa-lib \ + libogg \ + flac \ +" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch new file mode 100644 index 000000000..ecb310805 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch @@ -0,0 +1,77 @@ +From 99127676dba8f5d607757428bc14a6b7ab52d5ed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:42:06 +0100 +Subject: [PATCH 1/3] fix negative shift constants +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-left-shift-neg.patch + +Upstrem-Status: Pending + +Signed-off-by: Andreas Müller +--- + libaudiofile/modules/SimpleModule.h | 2 +- + test/FloatToInt.cpp | 2 +- + test/IntToFloat.cpp | 2 +- + test/Sign.cpp | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h +index 03c6c69..e4cc138 100644 +--- a/libaudiofile/modules/SimpleModule.h ++++ b/libaudiofile/modules/SimpleModule.h +@@ -123,7 +123,7 @@ struct signConverter + typedef typename IntTypes::UnsignedType UnsignedType; + + static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; +- static const int kMinSignedValue = -1 << kScaleBits; ++ static const int kMinSignedValue = 0-(1U< + { +diff --git a/test/FloatToInt.cpp b/test/FloatToInt.cpp +index 0d179a8..bf491b2 100644 +--- a/test/FloatToInt.cpp ++++ b/test/FloatToInt.cpp +@@ -115,7 +115,7 @@ TEST_F(FloatToIntTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + + TEST_F(FloatToIntTest, Int24) +diff --git a/test/IntToFloat.cpp b/test/IntToFloat.cpp +index b716635..1d91b58 100644 +--- a/test/IntToFloat.cpp ++++ b/test/IntToFloat.cpp +@@ -117,7 +117,7 @@ TEST_F(IntToFloatTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + + TEST_F(IntToFloatTest, Int24) +diff --git a/test/Sign.cpp b/test/Sign.cpp +index 7275399..c339514 100644 +--- a/test/Sign.cpp ++++ b/test/Sign.cpp +@@ -116,7 +116,7 @@ TEST_F(SignConversionTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + static const uint32_t kMaxUInt24 = (1<<24) - 1; + +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch new file mode 100644 index 000000000..2c66cf4d0 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch @@ -0,0 +1,75 @@ +From a74c1e9c583375b9e55c29a36442485089e4b7f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:42:06 +0100 +Subject: [PATCH 2/3] fix build on gcc6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-narrowing.patch + +Upstrem-Status: Pending + +Signed-off-by: Andreas Müller +--- + test/NeXT.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/test/NeXT.cpp b/test/NeXT.cpp +index 7e39850..a37cea1 100644 +--- a/test/NeXT.cpp ++++ b/test/NeXT.cpp +@@ -37,13 +37,13 @@ + + #include "TestUtilities.h" + +-const char kDataUnspecifiedLength[] = ++const signed char kDataUnspecifiedLength[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes +- 0xff, 0xff, 0xff, 0xff, // unspecified length ++ -1, -1, -1, -1, // unspecified length + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 1, // 1 channel + 0, 1, + 0, 1, +@@ -57,13 +57,13 @@ const char kDataUnspecifiedLength[] = + 0, 55 + }; + +-const char kDataTruncated[] = ++const signed char kDataTruncated[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes + 0, 0, 0, 20, // length of 20 bytes + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 1, // 1 channel + 0, 1, + 0, 1, +@@ -152,13 +152,13 @@ TEST(NeXT, Truncated) + ASSERT_EQ(::unlink(testFileName.c_str()), 0); + } + +-const char kDataZeroChannels[] = ++const signed char kDataZeroChannels[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes + 0, 0, 0, 2, // 2 bytes + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 0, // 0 channels + 0, 1 + }; +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch new file mode 100644 index 000000000..895e320ba --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch @@ -0,0 +1,35 @@ +From 746c38105ce4fa1b609995d3386ea6b8b1f2f7bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:50:51 +0100 +Subject: [PATCH 3/3] fix CVE-2015-7747 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-CVE-2015-7747.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + libaudiofile/modules/ModuleState.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libaudiofile/modules/ModuleState.cpp b/libaudiofile/modules/ModuleState.cpp +index f76c495..0c29d7a 100644 +--- a/libaudiofile/modules/ModuleState.cpp ++++ b/libaudiofile/modules/ModuleState.cpp +@@ -402,7 +402,7 @@ status ModuleState::arrange(AFfilehandle file, Track *track) + addModule(new Transform(outfc, in.pcm, out.pcm)); + + if (in.channelCount != out.channelCount) +- addModule(new ApplyChannelMatrix(infc, isReading, ++ addModule(new ApplyChannelMatrix(outfc, isReading, + in.channelCount, out.channelCount, + in.pcm.minClip, in.pcm.maxClip, + track->channelMatrix)); +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb new file mode 100644 index 000000000..3b10e978e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb @@ -0,0 +1,24 @@ +SUMMARY = "CD/DVD command line tools" +HOMEPAGE = "http://cdrkit.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b30d3b2750b668133fc17b401e1b98f8" + +# While writing download from cdrkit.org was broken so get sources from debian +SRC_URI = "${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch \ + file://0001-genisoimage-Fix-fprintf-format-errors.patch \ + file://0001-define-__THROW-to-avoid-build-issue-with-musl.patch \ + file://0002-Do-not-use-rcmd-on-build-with-musl.patch \ + " +SRC_URI[md5sum] = "efe08e2f3ca478486037b053acd512e9" +SRC_URI[sha256sum] = "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da" + +inherit cmake + +DEPENDS = "libcap file bzip2" +RDEPENDS_${PN} = "perl" + +do_install_append() { + ln -sf ${bindir}/genisoimage ${D}${bindir}/mkisofs +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch new file mode 100644 index 000000000..b3beb069e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch @@ -0,0 +1,47 @@ +From 7c3036609494296f7c29413bf3acba829c81f62c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 8 Aug 2015 22:58:57 +0200 +Subject: [PATCH 1/2] define __THROW to avoid build issue with musl + +Fixes: +http://autobuild.buildroot.net/results/d27/d2781e70b04a207e2e9397d888032294c7285034/build-end.log + +Signed-off-by: Romain Naour +--- + genisoimage/sha256.h | 4 ++++ + genisoimage/sha512.h | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/genisoimage/sha256.h b/genisoimage/sha256.h +index e7f4cb9..bcae7ef 100644 +--- a/genisoimage/sha256.h ++++ b/genisoimage/sha256.h +@@ -29,6 +29,10 @@ + #include + #include + ++/* define __THROW to avoid build issue when it's not available from the libc */ ++#ifndef __THROW ++# define __THROW ++#endif + + /* Structure to save state of computation between the single steps. */ + struct sha256_ctx +diff --git a/genisoimage/sha512.h b/genisoimage/sha512.h +index 7298355..8cee8b0 100644 +--- a/genisoimage/sha512.h ++++ b/genisoimage/sha512.h +@@ -29,6 +29,10 @@ + #include + #include + ++/* define __THROW to avoid build issue when it's not available from the libc */ ++#ifndef __THROW ++# define __THROW ++#endif + + /* Structure to save state of computation between the single steps. */ + struct sha512_ctx +-- +2.14.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch new file mode 100644 index 000000000..c9725cb06 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch @@ -0,0 +1,53 @@ +From a702cd1bb5eba5a05d1098862b5b863a3f6dd558 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 10 Sep 2015 09:39:13 +0200 +Subject: [PATCH] do not create a run test to determine order of bitfields +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +taken from [1] + +Upstream-Status: Inappropriate [cross compile specific] + +[1] http://cgit.openembedded.org/openembedded/tree/recipes/cdrkit/cdrkit/xconfig.patch + +Signed-off-by: Andreas Müller +--- + include/CMakeLists.txt | 2 -- + include/xconfig.h.in | 6 +++++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt +index 99a69fd..e5ba8a7 100644 +--- a/include/CMakeLists.txt ++++ b/include/CMakeLists.txt +@@ -35,8 +35,6 @@ endif(VA_LIST_IS_ARRAY) + INCLUDE(TestBigEndian) + TEST_BIG_ENDIAN(WORDS_BIGENDIAN) + +-TRY_RUN(BITFIELDS_HTOL TEST_DUMMY ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_BITFIELDS_HTOL.c) +- + INCLUDE(CheckIncludeFiles) + + #SET(CMAKE_REQUIRED_INCLUDES "/usr/include;/usr/local/include") +diff --git a/include/xconfig.h.in b/include/xconfig.h.in +index c130600..476c00b 100644 +--- a/include/xconfig.h.in ++++ b/include/xconfig.h.in +@@ -233,7 +233,11 @@ + /* If using network byte order */ + #cmakedefine WORDS_BIGENDIAN + /* If high bits come first in structures */ +-#cmakedefine BITFIELDS_HTOL ++#ifdef WORDS_BIGENDIAN ++#define BITFIELDS_HTOL ++#else ++#define BITFIELDS_LTOH ++#endif + #define HAVE_C_BIGENDIAN /* Flag that WORDS_BIGENDIAN test was done */ + #define HAVE_C_BITFIELDS /* Flag that BITFIELDS_HTOL test was done */ + +-- +2.1.0 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch new file mode 100644 index 000000000..f52f71b63 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch @@ -0,0 +1,49 @@ +From 8547f23c4416ed98f585c53c62e7d8afd8edab36 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 21:05:31 -0700 +Subject: [PATCH] genisoimage: Fix fprintf format errors + +Signed-off-by: Khem Raj +--- + genisoimage/genisoimage.c | 4 ++-- + genisoimage/tree.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/genisoimage/genisoimage.c b/genisoimage/genisoimage.c +index 46f0cb7..9089081 100644 +--- a/genisoimage/genisoimage.c ++++ b/genisoimage/genisoimage.c +@@ -3406,7 +3406,7 @@ if (check_session == 0) + if (goof) { + fprintf(stderr, "ISO9660/Rock Ridge tree sort failed.\n"); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + #ifdef UDF +@@ -3419,7 +3419,7 @@ if (check_session == 0) + if (goof) { + fprintf(stderr, "Joliet tree sort failed. The -joliet-long switch may help you.\n"); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + /* +diff --git a/genisoimage/tree.c b/genisoimage/tree.c +index 7805888..8412cc3 100644 +--- a/genisoimage/tree.c ++++ b/genisoimage/tree.c +@@ -647,7 +647,7 @@ got_valid_name: + fprintf(stderr, "Unable to sort directory %s\n", + this_dir->whole_name); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + /* +-- +2.13.2 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch new file mode 100644 index 000000000..547a21c67 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch @@ -0,0 +1,31 @@ +From 510838b2c96a9b097b3ee2694cba1c3623b0bac7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Sep 2017 22:38:05 -0700 +Subject: [PATCH 2/2] Do not use rcmd on build with musl + +cdrkit unconditionally enables code using rcmd(3), which isn't available +on musl. + +Signed-off-by: Khem Raj +--- + include/xconfig.h.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/xconfig.h.in b/include/xconfig.h.in +index 476c00b..6b4b298 100644 +--- a/include/xconfig.h.in ++++ b/include/xconfig.h.in +@@ -186,8 +186,9 @@ + * Instead use the tests AC_SMALL_FSEEKO/AC_SMALL/STELLO and make sure + * they are placed before the large file tests. + */ +- ++#ifdef __GLIBC__ + #define HAVE_RCMD 1 /* rcmd() is present in libc/libsocket */ ++#endif + #define HAVE_SOCKET 1 /* socket() is present in libc/libsocket */ + #define HAVE_SOCKETPAIR 1 /* socketpair() is present in libc/libsocket */ + #define HAVE_GETSERVBYNAME 1 /* getservbyname() is present in libc/libsocket */ +-- +2.14.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch new file mode 100644 index 000000000..130f3c229 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch @@ -0,0 +1,24 @@ +From 945df2da87a412758ceab4ac5711abbb269a47c1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:09:51 -0700 +Subject: [PATCH] audio_alsa09.c: alsa drain fix + +Signed-off-by: Khem Raj + +--- + audio_alsa09.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/audio_alsa09.c b/audio_alsa09.c +index 534e3db..d9450e6 100644 +--- a/audio_alsa09.c ++++ b/audio_alsa09.c +@@ -506,7 +506,7 @@ void esd_audio_flush(void) + } + + if (alsa_playback_handle != NULL) +- snd_pcm_drain( alsa_playback_handle ); ++ snd_pcm_drop( alsa_playback_handle ); + + if (alsadbg) + print_state(); diff --git a/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch new file mode 100644 index 000000000..10a6ba03a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch @@ -0,0 +1,33 @@ +From e218d5a0a545ebb9623d62da5cfca478f9c90fce Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:11:31 -0700 +Subject: [PATCH] Undefine open64 and fopen64 + +Since the signatures do not match with libc + +Signed-off-by: Khem Raj + +--- + esddsp.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/esddsp.c b/esddsp.c +index d3c6ea9..17b5949 100644 +--- a/esddsp.c ++++ b/esddsp.c +@@ -290,6 +290,7 @@ open (const char *pathname, int flags, ...) + return open_wrapper(func, pathname, flags, mode); + } + ++#undef open64 + int + open64 (const char *pathname, int flags, ...) + { +@@ -374,6 +375,7 @@ fopen (const char *path, const char *mode) + return fopen_wrapper(func, path, mode); + } + ++#undef fopen64 + FILE * + fopen64 (const char *path, const char *mode) + { diff --git a/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch new file mode 100644 index 000000000..83365b4e6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch @@ -0,0 +1,36 @@ +From 89c62db54716d514e639f9e1bfd3c1f7d82641dd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:12:36 -0700 +Subject: [PATCH] Use -I= in configure + +This helps to use proper sysroot in +cross build environment + +Signed-off-by: Khem Raj + +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5645dce..d374cda 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -208,7 +208,7 @@ if test "x$enable_local_sound" = "xyes"; then + AC_CHECK_HEADERS(CoreAudio/CoreAudio.h) + # mme_api.h directly includes other files from the mme subdir + xCPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" ++ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" + AC_CHECK_HEADERS(mme/mme_api.h) + CPPFLAGS="$xCPPFLAGS" + AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no) +@@ -269,7 +269,7 @@ if test "x$enable_local_sound" = "xyes"; then + osf*) + found_sound=yes + AC_DEFINE(DRIVER_OSF, 1, [Defined if OSF backend is enabled]) +- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" ++ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" + SOUND_LIBS=-lmme + esac + fi diff --git a/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch new file mode 100644 index 000000000..8a546e6db --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch @@ -0,0 +1,19 @@ +From bfcaa9bdc70440db96f10afc0c2a792870f75acb Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Fri, 3 Jun 2011 19:39:02 +0200 + +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 08c4c94..ede9d26 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,5 +1,5 @@ + +-SUBDIRS = docs ++SUBDIRS = + + ACLOCAL_AMFLAGS = -I m4 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb new file mode 100644 index 000000000..0ddf94f2d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb @@ -0,0 +1,37 @@ +SUMMARY = "Enlightened Sound Daemon" +SECTION = "gpe/base" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" +DEPENDS = "audiofile" + +inherit gnome + +SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/${P}.tar.bz2;name=archive \ + file://no-docs.patch \ + file://0001-audio_alsa09.c-alsa-drain-fix.patch \ + file://0002-Undefine-open64-and-fopen64.patch \ + file://0003-Use-I-path-in-configure.patch \ + " +SRC_URI[archive.md5sum] = "8d9aad3d94d15e0d59ba9dc0ea990c6c" +SRC_URI[archive.sha256sum] = "5eb5dd29a64b3462a29a5b20652aba7aa926742cef43577bf0796b787ca34911" + +EXTRA_OECONF += " \ + --disable-arts \ + --disable-artstest \ +" +EXTRA_OECONF_remove = "--disable-schemas-install" + +CFLAGS += "-lm" + +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libwrap] = "--with-libwrap,--without-libwrap,tcp-wrappers," +PACKAGECONFIG[alsa] = "--enable-alsa --disable-oss,--disable-alsa,alsa-lib," + +PACKAGECONFIG ??= "libwrap alsa \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGES =+ "esddsp esd esd-utils" + +FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" +FILES_esd = "${bindir}/esd" +FILES_esd-utils = "${bindir}/*" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb new file mode 100644 index 000000000..63e590c9e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb @@ -0,0 +1,28 @@ +SUMMARY = "Library for reading some sort of media format" +SECTION = "libs" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958" + +PR = "r1" + +inherit autotools + +SRC_URI = "${SOURCEFORGE_MIRROR}/faac/faad2-src/faad2-${PV}/${BP}.tar.bz2;name=faad2 \ +" + +SRC_URI[faad2.md5sum] = "4c332fa23febc0e4648064685a3d4332" +SRC_URI[faad2.sha256sum] = "14561b5d6bc457e825bfd3921ae50a6648f377a9396eaf16d4b057b39a3f63b5" + +PACKAGES =+ "libfaad libfaad-dev libmp4ff libmp4ff-dev" + +FILES_${PN} = "${bindir}/faad" + +FILES_libfaad = "${libdir}/libfaad.so.*" +FILES_libfaad-dev = "${libdir}/libfaad.so ${libdir}/libfaad.la ${includedir}/faad.h" +FILES_libfaad-staticdev = "${libdir}/libfaad.a" + +FILES_libmp4ff = "${libdir}/libmp4ff.so.*" +FILES_libmp4ff-dev = "${libdir}/libmp4ff.so ${libdir}/libmp4ff.la ${includedir}/mp4ff.h" +FILES_libmp4ff-staticdev = "${libdir}/libmp4ff.a" + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch new file mode 100644 index 000000000..09edecc96 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch @@ -0,0 +1,42 @@ +Add a description to the AC_DEFINE statements so that it appears in config.h and silences a fatal warning. + +Upstream-Status:Pending +Signed-off-by: Matthieu Crapet +--- + configure.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.in b/configure.in +index abfe4cd..ce0d380 100644 +--- a/configure.in ++++ b/configure.in +@@ -168,7 +168,7 @@ if test $has_iconv = 1; then + iconv_oldstyle=1, iconv_oldstyle=0) + if test $iconv_oldstyle = 1; then + AC_MSG_RESULT(const char **) +- AC_DEFINE(ID3LIB_ICONV_OLDSTYLE) ++ AC_DEFINE(ID3LIB_ICONV_OLDSTYLE,[1],[Old iconv prototype definition in iconv.h]) + #we'll check out the need of + #typecast in the call of iconv_open + AC_MSG_CHECKING(whether to typecast in iconv) +@@ -184,7 +184,7 @@ if test $has_iconv = 1; then + iconv_cast=0, iconv_cast=1) + if test $iconv_cast = 1; then + AC_MSG_RESULT(yes) +- AC_DEFINE(ID3LIB_ICONV_CAST_OK) ++ AC_DEFINE(ID3LIB_ICONV_CAST_OK,[1],[Accepting const char ** in iconv prototype]) + else + AC_MSG_RESULT(no) + fi +@@ -206,7 +206,7 @@ if test $has_iconv = 1; then + iconv_cast=0, iconv_cast=1) + if test $iconv_cast = 1; then + AC_MSG_RESULT(yes) +- AC_DEFINE(ID3LIB_ICONV_CAST_OK) ++ AC_DEFINE(ID3LIB_ICONV_CAST_OK,[1],[Accepting const char ** in iconv prototype]) + else + AC_MSG_RESULT(no) + fi +-- +2.0.0 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb new file mode 100644 index 000000000..fc80cc0ac --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb @@ -0,0 +1,18 @@ +SUMMARY = "Library for interacting with ID3 tags" +SECTION = "libs/multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +DEPENDS = "zlib" + +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/id3lib/id3lib-${PV}.tar.gz;name=archive \ + http://ftp.de.debian.org/debian/pool/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-7.2.diff.gz;name=patch \ + file://acdefine.patch \ +" +SRC_URI[archive.md5sum] = "19f27ddd2dda4b2d26a559a4f0f402a7" +SRC_URI[archive.sha256sum] = "2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079" +SRC_URI[patch.md5sum] = "805c0320a2efb21c40ce06fa13cd7c4b" +SRC_URI[patch.sha256sum] = "9f03b59ccc8826a5be55a3dcde2f889067d58bdc72bf846416a198c9b933704c" + +inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch new file mode 100644 index 000000000..d17d311bd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch @@ -0,0 +1,43 @@ +From 488dc9b00239976caac6bd9ed76b38d9d1659dd9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 4 Oct 2016 23:44:49 +0200 +Subject: [PATCH] wscript: add pthread library dependency to fix linking +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/a2jmidid.git/tree/a2jmidid-linking.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + wscript | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index 664625b..66a532a 100644 +--- a/wscript ++++ b/wscript +@@ -67,6 +67,7 @@ def configure(conf): + conf.env['DBUS_ENABLED'] = False + + conf.env['LIB_DL'] = ['dl'] ++ conf.env['LIB_PTHREAD'] = ['pthread'] + + #conf.check_header('expat.h', mandatory=True) + #conf.env['LIB_EXPAT'] = ['expat'] +@@ -152,7 +153,7 @@ def build(bld): + + prog.includes = '.' # make waf dependency tracking work + prog.target = 'a2jmidid' +- prog.uselib = 'ALSA JACK DL' ++ prog.uselib = 'ALSA JACK DL PTHREAD' + if bld.env()['DBUS_ENABLED']: + prog.uselib += " DBUS-1" + prog = bld.create_obj('cc', 'program') +-- +2.5.5 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch new file mode 100644 index 000000000..b344f5427 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch @@ -0,0 +1,31 @@ +Consider compiler define for aarch64 + +Signed-off-by: Khem Raj +Upstream-Status:Pending + +Index: a2jmidid-8/sigsegv.c +=================================================================== +--- a2jmidid-8.orig/sigsegv.c ++++ a2jmidid-8/sigsegv.c +@@ -91,18 +91,18 @@ static void signal_segv(int signum, sigi + a2j_error("info.si_errno = %d", info->si_errno); + a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); + a2j_error("info.si_addr = %p", info->si_addr); +-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) ++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) + for(i = 0; i < NGREG; i++) + a2j_error("reg[%02d] = 0x" REGFORMAT, i, + #if defined(__powerpc__) + ucontext->uc_mcontext.uc_regs[i] +-#elif defined(__sparc__) && defined(__arch64__) ++#elif defined(__sparc__) || defined(__arch64__) + ucontext->uc_mcontext.mc_gregs[i] + #else + ucontext->uc_mcontext.gregs[i] + #endif + ); +-#endif /* alpha, ia64, kFreeBSD, arm, hppa */ ++#endif /* alpha, ia64, kFreeBSD, arm, hppa aarch64 */ + + #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) + # if defined(SIGSEGV_STACK_IA64) diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb new file mode 100644 index 000000000..59b73f8e8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb @@ -0,0 +1,26 @@ +SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI" +SECTION = "libs/multimedia" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://gpl2.txt;md5=751419260aa954499f7abaabaa882bbe \ +" + +DEPENDS = "alsa-lib jack dbus" +DEPENDS_append_libc-musl = " libexecinfo" + +SRC_URI = " \ + http://download.gna.org/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch \ + file://0002-aarch64.patch \ +" +SRC_URI[md5sum] = "9cf4edbc3ad2ddeeaf6c8c1791ff3ddd" +SRC_URI[sha256sum] = "2a9635f62aabc59edb54ada07048dd47e896b90caff94bcee710d3582606f55f" + +inherit waf pkgconfig + +LDFLAGS_append_libc-musl = " -lexecinfo" + +export LINKFLAGS="${LDFLAGS}" + +FILES_${PN} += "${datadir}/dbus-1/services" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb new file mode 100644 index 000000000..11da6b1be --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \ +server for multi-processor machines. It is a new implementation of the \ +JACK server core features that aims in removing some limitations of \ +the JACK1 design. The activation system has been changed for a data \ +flow model and lock-free programming techniques for graph access have \ +been used to have a more dynamic and robust system." +SECTION = "libs/multimedia" + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://common/jack/control.h;beginline=2;endline=21;md5=e6df0bf30cde8b3b825451459488195d \ + file://common/jack/jack.h;beginline=1;endline=19;md5=6b736ed6b810592b135480a5e853392e \ +" + +DEPENDS = "libsamplerate0 libsndfile1 readline" + +SRC_URI = "git://github.com/jackaudio/jack2.git" +SRCREV = "c1647819eed6d11f94b21981d9c869629299f357" +PV = "1.9.12" +S = "${WORKDIR}/git" + +inherit waf pkgconfig + +PACKAGECONFIG ??= "alsa" +PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib" +PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus" + +# portaudio is for windows builds only +EXTRA_OECONF = "--portaudio=no" + +PACKAGES =+ "libjack jack-server jack-utils" + +RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})" + +FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" +FILES_jack-server = "${bindir}/jackd" +FILES_jack-utils = "${bindir}/*" +FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* " diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb new file mode 100644 index 000000000..3454a5c27 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format. It is mostly compatible with VSFilter." +HOMEPAGE = "https://github.com/libass/libass" +SECTION = "libs/multimedia" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=a42532a0684420bdb15556c3cdd49a75" + +DEPENDS = "enca fontconfig freetype libpng fribidi" + +SRC_URI = "git://github.com/libass/libass.git" +SRCREV = "73284b676b12b47e17af2ef1b430527299e10c17" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz" + +EXTRA_OECONF = " \ + --enable-fontconfig \ +" + +# Disable compiling with ASM for x86 to avoid textrel +EXTRA_OECONF_append_x86 = " --disable-asm" + +PACKAGES =+ "${PN}-tests" + +FILES_${PN}-tests = " \ + ${libdir}/test/test \ +" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb new file mode 100644 index 000000000..91fe69338 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "Library for reading, mastering and writing optical discs" +HOMEPAGE = "http://libburnia-project.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" + +SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "82ff94bb04e78eac9b12c7546f005d6f" +SRC_URI[sha256sum] = "6c975abae4ae1f80e47fc5d1e235f85157f73e954c84627a5ef85d8b1b95ae94" + +inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb new file mode 100644 index 000000000..82a16cc94 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb @@ -0,0 +1,24 @@ +SUMMARY = "library to read digital audio CDs with error correction" +HOMEPAGE = "http://www.gnu.org/software/libcdio/" +SECTION = "libs" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "libcdio" + +SRC_URI = "${GNU_MIRROR}/libcdio/${BP}.tar.bz2" +SRC_URI[md5sum] = "0255aa50e660db7f2c39658b9c565814" +SRC_URI[sha256sum] = "ec1d9b1d5a28cc042f2cb33a7cc0a2b5ce5525f102bc4c15db1fac322559a493" + +inherit autotools pkgconfig + +PACKAGES += "${PN}-utils" + +FILES_${PN} = "${libdir}/${BPN}${SOLIB}" +FILES_${PN}-utils = "${bindir}/*" + +python libcdio_split_packages() { + libdir = d.expand('${libdir}') + do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True) +} + +PACKAGESPLITFUNCS =+ "libcdio_split_packages" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb new file mode 100644 index 000000000..6bf64d663 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb @@ -0,0 +1,29 @@ +SUMMARY = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access." +HOMEPAGE = "http://www.gnu.org/software/libcdio/" +SECTION = "libs" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz" + +SRC_URI[md5sum] = "0cb25905113b930e4539d2f4eb6574b0" +SRC_URI[sha256sum] = "1b481b5da009bea31db875805665974e2fc568e2b2afa516f4036733657cf958" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "cdda-player" +PACKAGECONFIG[cdda-player] = "--with-cdda-player,--without-cdda-player,ncurses" +PACKAGECONFIG[cddb] = "--enable-cddb,--disable-cddb,libcddb" +PACKAGECONFIG[vcd-info] = "--enable-vcd-info,--disable-vcd-info,vcdimager" + +PACKAGES += "${PN}-utils" + +FILES_${PN} = "${libdir}/${BPN}${SOLIB}" +FILES_${PN}-utils = "${bindir}/*" + +python libcdio_split_packages() { + libdir = d.expand('${libdir}') + do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True) +} + +PACKAGESPLITFUNCS =+ "libcdio_split_packages" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb new file mode 100644 index 000000000..050672599 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "DVD access multimeda library" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" +SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2" + +SRC_URI[md5sum] = "b7b7d2a782087ed2a913263087083715" +SRC_URI[sha256sum] = "321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch new file mode 100644 index 000000000..5bfce4d90 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch @@ -0,0 +1,43 @@ +From 3d3fce9b8b927a817b89dd78a60b5cf7d978f64c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Tue, 16 Sep 2014 12:28:47 +0300 +Subject: [PATCH 4/4] Remove clang unsupported compiler flags + +--- + configure.ac | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4fcd48b..40302db 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -140,20 +140,20 @@ then + case "$optimize" in + -O|"-O "*) + optimize="-O" +- optimize="$optimize -fforce-addr" ++ : #optimize="$optimize -fforce-addr" + : #x optimize="$optimize -finline-functions" + : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" ++ : #optimize="$optimize -fthread-jumps" ++ : #optimize="$optimize -fcse-follow-jumps" ++ : #optimize="$optimize -fcse-skip-blocks" + : #x optimize="$optimize -frerun-cse-after-loop" + : #x optimize="$optimize -frerun-loop-opt" + : #x optimize="$optimize -fgcse" + optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" ++ : #optimize="$optimize -fregmove" + : #* optimize="$optimize -fdelayed-branch" + : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" ++ : #optimize="$optimize -fschedule-insns2" + : #? optimize="$optimize -ffunction-sections" + : #? optimize="$optimize -fcaller-saves" + : #> optimize="$optimize -funroll-loops" +-- +2.1.0 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch new file mode 100644 index 000000000..b49dc8c98 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch @@ -0,0 +1,70 @@ +Here is a patch for adding pkg-config support to libmad. +It would make life a bit easier for distro maintainers if this was applied. +In case you didn't know, pkg-config is a tool for providing LDFLAGS and +CFLAGS for packages using shared libraries. It's on freedesktop.org. +Debian has already been distributing the pkg-config file mad.pc with +libmad for some time, and people developing on debian (notably xmms2 +developers) have started relying on this support being present, causing +some confusion for people installing from source and on some BSDs which +do not provide mad.pc (google: pkgconfig libmad). + +EMH + +Upstream-Status: Inappropriate [configuration] + +--h31gzZEtNLTqOjlF +Content-Type: text/plain; charset=us-ascii +Content-Disposition: attachment; filename="libmad-0.15.1b-pkgconfig.patch" + +diff -Naur libmad-0.15.1b.old/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b.old/configure.ac 2004-01-23 10:41:32.000000000 +0100 ++++ libmad-0.15.1b/configure.ac 2004-08-07 02:25:24.633462168 +0200 +@@ -429,5 +429,5 @@ + dnl AC_SUBST(LTLIBOBJS) + + AC_CONFIG_FILES([Makefile msvc++/Makefile \ +- libmad.list]) ++ libmad.list mad.pc]) + AC_OUTPUT +diff -Naur libmad-0.15.1b.old/mad.pc.in libmad-0.15.1b/mad.pc.in +--- libmad-0.15.1b.old/mad.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ libmad-0.15.1b/mad.pc.in 2004-08-07 02:04:59.617692872 +0200 +@@ -0,0 +1,14 @@ ++# libmad pkg-config source file ++ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: mad ++Description: MPEG Audio Decoder ++Version: @VERSION@ ++Requires: ++Conflicts: ++Libs: -L${libdir} -lmad -lm ++Cflags: -I${includedir} +diff -Naur libmad-0.15.1b.old/Makefile.am libmad-0.15.1b/Makefile.am +--- libmad-0.15.1b.old/Makefile.am 2004-02-17 03:02:03.000000000 +0100 ++++ libmad-0.15.1b/Makefile.am 2004-08-07 02:03:19.859858368 +0200 +@@ -24,6 +24,9 @@ + SUBDIRS = + DIST_SUBDIRS = msvc++ + ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = mad.pc ++ + lib_LTLIBRARIES = libmad.la + include_HEADERS = mad.h + +@@ -34,7 +37,8 @@ + minimad_LDADD = libmad.la + + EXTRA_DIST = mad.h.sed \ +- CHANGES COPYRIGHT CREDITS README TODO VERSION ++ CHANGES COPYRIGHT CREDITS README TODO VERSION \ ++ mad.pc.in + + exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \ + synth.h decoder.h + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch new file mode 100644 index 000000000..3e544248d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch @@ -0,0 +1,12 @@ +Pass foreign to AM_INIT_AUTOMAKE so it doesn't enforce GNU strictness. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/configure.ac b/configure.ac +index e602fd3..e075b86 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29 +29 @@ AC_CONFIG_SRCDIR([decoder.h]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch new file mode 100644 index 000000000..01c7aa3c8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch @@ -0,0 +1,33 @@ +gcc 4.4 did this: The MIPS port no longer recognizes the h asm constraint. It was necessary to remove this constraint in order to avoid generating unpredictable code sequences. + +so the libmad build with gcc-4.5.0 was failing. + +Found a solution here: + +http://us.generation-nt.com/answer/bug-568418-libmad0-dev-mpg321-compilation-errors-mips-mipsel-architectures-help-169033451.html + +Upstream-Status: Pending + +2010/07/29 +Nitin A Kamble + +Index: libmad-0.15.1b/fixed.h +=================================================================== +--- libmad-0.15.1b.orig/fixed.h ++++ libmad-0.15.1b/fixed.h +@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t + + /* --- MIPS ---------------------------------------------------------------- */ + ++# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ++ typedef unsigned int u64_di_t __attribute__ ((mode (DI))); ++# define MAD_F_MLX(hi, lo, x, y) \ ++ do { \ ++ u64_di_t __ll = (u64_di_t) (x) * (y); \ ++ hi = __ll >> 32; \ ++ lo = __ll; \ ++ } while (0) ++ + # elif defined(FPM_MIPS) + + /* diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch new file mode 100644 index 000000000..d5e6d206e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch @@ -0,0 +1,18 @@ +This option no longer exists in gcc 3.4.1 + +RP - 18/07/2008 + +Upstream-Status: Inappropriate [configuration] + +Index: libmad-0.15.1b/configure.ac +=================================================================== +--- libmad-0.15.1b.orig/configure.ac 2008-07-18 15:45:30.000000000 +0100 ++++ libmad-0.15.1b/configure.ac 2008-07-18 15:45:37.000000000 +0100 +@@ -140,7 +140,6 @@ + case "$optimize" in + -O|"-O "*) + optimize="-O" +- optimize="$optimize -fforce-mem" + optimize="$optimize -fforce-addr" + : #x optimize="$optimize -finline-functions" + : #- optimize="$optimize -fstrength-reduce" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch new file mode 100644 index 000000000..cc87d299e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch @@ -0,0 +1,14 @@ +Upstream-Status: Submitted [https://sourceforge.net/tracker/?group_id=12349&atid=112349] + +Signed-off-by: Marko Lindqvist +diff -Nurd libmad-0.15.1b/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b/configure.ac 2004-01-23 11:41:32.000000000 +0200 ++++ libmad-0.15.1b/configure.ac 2013-01-03 08:28:23.718693697 +0200 +@@ -28,7 +28,7 @@ + + AM_INIT_AUTOMAKE + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + dnl System type. diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb new file mode 100644 index 000000000..8d9246a5c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb @@ -0,0 +1,37 @@ +SUMMARY = "MPEG Audio Decoder library" +HOMEPAGE = "http://sourceforge.net/projects/mad/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349" +LICENSE = "GPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \ + file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454" +SECTION = "libs" +DEPENDS = "libid3tag" +PR = "r3" + +SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libmad-${PV}.tar.gz \ + file://no-force-mem.patch \ + file://add-pkgconfig.patch \ + file://fix_for_mips_with_gcc-4.5.0.patch \ + file://obsolete_automake_macros.patch \ + file://automake-foreign.patch \ +" +SRC_URI_append_toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch " + +SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c" +SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690" + +S = "${WORKDIR}/libmad-${PV}" + +inherit autotools pkgconfig + +EXTRA_OECONF = "-enable-speed --enable-shared" +EXTRA_OECONF_append_arm = " --enable-fpm=arm" + +do_configure_prepend () { +# damn picky automake... + touch NEWS AUTHORS ChangeLog +} + +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb b/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb new file mode 100644 index 000000000..831394e5c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb @@ -0,0 +1,12 @@ +SUMMARY = "MMS stream protocol library" +HOMEPAGE = "http://sourceforge.net/projects/libmms/" +SECTION = "libs/multimedia" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz" +SRC_URI[md5sum] = "d6b665b335a6360e000976e770da7691" +SRC_URI[sha256sum] = "3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f" + +inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb b/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb new file mode 100644 index 000000000..1070246c8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb @@ -0,0 +1,21 @@ +SUMMARY = "Library for reading mod-like audio files" +HOMEPAGE = "http://modplug-xmms.sf.net" + +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=c9182faa1f7c316f7b97d404bcbe3685" + +SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz" +SRC_URI[md5sum] = "5f30241db109d647781b784e62ddfaa1" +SRC_URI[sha256sum] = "77462d12ee99476c8645cb5511363e3906b88b33a6b54362b4dbc0f39aa2daad" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-option-checking" + +# NOTE: autotools_stage_all does nothing here, we need to do it manually +do_install_append() { + install -d ${D}${includedir}/libmodplug + install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug + install -m 0644 ${S}/src/modplug.h ${D}${includedir}/ +} + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb new file mode 100644 index 000000000..a24f5e30b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb @@ -0,0 +1,52 @@ +SUMMARY = "Opus Audio Codec" +DESCRIPTION = "The Opus codec is designed for interactive \ +speech and audio transmission over the Internet. It is \ +designed by the IETF Codec Working Group and incorporates \ +technology from Skype's SILK codec and Xiph.Org's CELT codec." +HOMEPAGE = "http://www.opus-codec.org/" +SECTION = "libs/multimedia" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" +SRC_URI[md5sum] = "32bbb6b557fe1b6066adc0ae1f08b629" +SRC_URI[sha256sum] = "58b6fe802e7e30182e95d0cde890c0ace40b6f125cffc50635f0ad2eef69b633" + +S = "${WORKDIR}/opus-${PV}" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,," +PACKAGECONFIG[float-approx] = "--enable-float-approx,," + +EXTRA_OECONF = " \ + --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \ + --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \ + --enable-asm \ + --enable-intrinsics \ + --enable-custom-modes \ +" + +python () { + if d.getVar('TARGET_FPU') in [ 'soft' ]: + d.appendVar('PACKAGECONFIG', ' fixed-point') + + # Ne10 is only available for armv7 and aarch64 + if any((t.startswith('armv7') or t.startswith('aarch64')) for t in d.getVar('TUNE_FEATURES').split()): + d.appendVar('DEPENDS', ' ne10') +} + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4' +#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1' +#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0' +#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1' +#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1' +#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3' +#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10' +#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9' +#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8' +#| make[2]: *** [celt/celt.lo] Error 1 +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch new file mode 100644 index 000000000..5299d378e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch @@ -0,0 +1,43 @@ +Index: SDL_image-1.2.12/configure.in +=================================================================== +--- SDL_image-1.2.12.orig/configure.in 2012-01-21 01:51:33.000000000 +0000 ++++ SDL_image-1.2.12/configure.in 2014-07-18 06:56:56.853466678 +0000 +@@ -1,5 +1,4 @@ + dnl Process this file with autoconf to produce a configure script. +-AC_INIT(README) + + dnl Set various version strings - taken gratefully from the GTk sources + +@@ -11,12 +10,19 @@ + # if backwards compatibility has been broken, + # set BINARY_AGE and INTERFACE_AGE to 0. + +-MAJOR_VERSION=1 +-MINOR_VERSION=2 +-MICRO_VERSION=12 ++m4_define([sdlimage_major_version],[1]) ++m4_define([sdlimage_minor_version],[2]) ++m4_define([sdlimage_micro_version],[12]) ++m4_define([sdlimage_version], [sdlimage_major_version.sdlimage_minor_version.sdlimage_micro_version]) ++ ++AC_INIT([SDL_image], [sdlimage_version]) ++ ++MAJOR_VERSION=sdlimage_major_version ++MINOR_VERSION=sdlimage_minor_version ++MICRO_VERSION=sdlimage_micro_version + INTERFACE_AGE=4 + BINARY_AGE=12 +-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION ++VERSION=sdlimage_version + + AC_SUBST(MAJOR_VERSION) + AC_SUBST(MINOR_VERSION) +@@ -42,7 +48,7 @@ + AC_CANONICAL_HOST + + dnl Setup for automake +-AM_INIT_AUTOMAKE(SDL_image, $VERSION) ++AM_INIT_AUTOMAKE([foreign]) + + dnl Check for tools + AC_PROG_LIBTOOL diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb new file mode 100644 index 000000000..ea8e9eaa3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb @@ -0,0 +1,32 @@ +SUMMARY = "Simple DirectMedia Layer image library" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227" + +DEPENDS = "tiff zlib libpng jpeg virtual/libsdl" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz \ + file://configure.patch" +SRC_URI[md5sum] = "a0f9098ebe5400f0bdc9b62e60797ecb" +SRC_URI[sha256sum] = "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" + +S = "${WORKDIR}/SDL_image-${PV}" + +inherit autotools pkgconfig + +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure_prepend() { + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb new file mode 100644 index 000000000..1f9c794c7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Simple DirectMedia Layer image library v2" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=ec65b9778f5584a0bd8dfc17d6340ba0" + +DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" +SRC_URI[md5sum] = "d94b94555ba022fa249a53a021dc3606" +SRC_URI[sha256sum] = "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64" + +S = "${WORKDIR}/SDL2_image-${PV}" + +inherit autotools pkgconfig + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure_prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl2.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch new file mode 100644 index 000000000..4c9e8d094 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch @@ -0,0 +1,21 @@ +diff -Nurd SDL_mixer-1.2.12/configure.in SDL_mixer-1.2.12/configure.in +--- SDL_mixer-1.2.12/configure.in 2012-01-16 00:01:05.000000000 +0200 ++++ SDL_mixer-1.2.12/configure.in 2012-12-15 04:08:04.627871456 +0200 +@@ -1,6 +1,5 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT(README) +-AC_CONFIG_AUX_DIR(build-scripts) + + dnl Set various version strings - taken gratefully from the GTk sources + +@@ -40,10 +39,6 @@ + AC_SUBST(LT_REVISION) + AC_SUBST(LT_AGE) + +-dnl Detect the canonical build and host environments +-AC_CONFIG_AUX_DIRS($srcdir/build-scripts) +-dnl AC_CANONICAL_HOST +- + dnl Check for tools + AC_PROG_LIBTOOL + AC_PROG_CC diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb new file mode 100644 index 000000000..c83fcc8da --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb @@ -0,0 +1,39 @@ +SUMMARY = "Simple DirectMedia Layer mixer library" +SECTION = "libs" +DEPENDS = "virtual/libsdl flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=a37a47a0e579e461474cd03b9e05199d" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz \ + file://configure.patch \ +" + +SRC_URI[md5sum] = "e03ff73d77a55e3572ad0217131dc4a1" +SRC_URI[sha256sum] = "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a" + +S = "${WORKDIR}/SDL_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_AUTORECONF += "--include=acinclude" +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done + cp build-scripts/* . || true + rm -rf build-scripts/ + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR + + autotools_do_configure + + rm config.log + for i in $(find -name "Makefile") ; do + sed -i -e 's:-L/usr/lib:-L${STAGING_LIBDIR}:g' $i + done +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb new file mode 100644 index 000000000..718f3f5fd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb @@ -0,0 +1,27 @@ +SUMMARY = "Simple DirectMedia Layer mixer library V2" +SECTION = "libs" +DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=95e0c3cf63f71b950911e698a54b7fc5" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz" + +SRC_URI[md5sum] = "aaa0551393993c14a13f72b339c0ed6c" +SRC_URI[sha256sum] = "4e615e27efca4f439df9af6aa2c6de84150d17cbfd12174b54868c12f19c83bb" + +S = "${WORKDIR}/SDL2_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_AUTORECONF += "--include=acinclude" +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure_prepend () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross b/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross new file mode 100644 index 000000000..d1277da8d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross @@ -0,0 +1,17 @@ +COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_STRSTREAM=1 -D_LARGEFILE_SOURCE=1 +C = c +C_COMPILER = $(CC) +C_FLAGS = $(COMPILE_OPTS) +CPP = cpp +CPLUSPLUS_COMPILER = $(CXX) +CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 +OBJ = o +LINK = $(CXX) -o +LINK_OPTS = -L. +CONSOLE_LINK_OPTS = $(LINK_OPTS) +LIBRARY_LINK = $(LD) -o +LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic +LIB_SUFFIX = a +LIBS_FOR_CONSOLE_APPLICATION = +LIBS_FOR_GUI_APPLICATION = +EXE = diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc new file mode 100644 index 000000000..14ea66442 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc @@ -0,0 +1,56 @@ +# live555 OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "LIVE555 Streaming Media libraries" +HOMEPAGE = "http://live.com/" +LICENSE = "LGPLv3" +SECTION = "devel" + +URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}" +SRC_URI = "http://www.live555.com/liveMedia/public/live.${URLV}.tar.gz \ + file://config.linux-cross" +# only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older +MIRRORS += "http://www.live555.com/liveMedia/public/ http://distcache.FreeBSD.org/ports-distfiles/ \n" + +S = "${WORKDIR}/live" +TARGET_CC_ARCH += "${LDFLAGS}" + +do_configure() { + cp ${WORKDIR}/config.linux-cross . + echo "COMPILE_OPTS+=" -fPIC -DXLOCALE_NOT_USED"" >> config.linux-cross + ./genMakefiles linux-cross +} + +do_compile() { + oe_runmake +} + +do_install() { + install -d ${D}${includedir}/BasicUsageEnvironment + install -d ${D}${includedir}/groupsock + install -d ${D}${includedir}/liveMedia + install -d ${D}${includedir}/UsageEnvironment + install -d ${D}${libdir} + cp -R --no-dereference --preserve=mode,links -v ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/ + cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/ + cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/ + cp -R --no-dereference --preserve=mode,links -v ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/ + cp -R --no-dereference --preserve=mode,links -v ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/ + # Find all the headers + for i in $(find . -name "*.hh") $(find . -name "*.h") ; do + install ${i} ${D}${includedir} + done + cp ${S}/*/*.a ${D}${libdir} + install -d ${D}${bindir} + for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do + install -m 0755 ${S}/testProgs/${i} ${D}${bindir}/ + done + install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/ +} + +PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver" +FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer" +FILES_live555-openrtsp = "${bindir}/openRTSP" +FILES_live555-playsip = "${bindir}/playSIP" +FILES_live555-mediaserver = "${bindir}/live555MediaServer" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb new file mode 100644 index 000000000..27fc42987 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb @@ -0,0 +1,9 @@ +require live555.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " + +SRC_URI[md5sum] = "b7084a72aeb09549c8b248f8cc308841" +SRC_URI[sha256sum] = "4c37d9c828f9028403997272e49968c260385dbbaef62e28ba24faef0dda868b" + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb b/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb new file mode 100644 index 000000000..d53dff6a0 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "libmikmod is a module player library supporting many formats, including mod, s3m, it, and xm." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "alsa-lib texinfo" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/project/mikmod/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ +" +SRC_URI[md5sum] = "9dd9bed30c6f7607a55480234606071b" +SRC_URI[sha256sum] = "3f363e03f7b1db75b9b6602841bbd440ed275a548e53545f980df8155de4d330" + +inherit autotools binconfig lib_package + +EXTRA_OECONF = "\ + --disable-af \ + --enable-alsa \ + --disable-esd \ + --enable-oss \ + --disable-sam9407 \ + --disable-ultra \ + --disable-esdtest \ + --enable-threads \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d b/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d new file mode 100644 index 000000000..9e64a20fd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d @@ -0,0 +1,54 @@ +#!/bin/sh + +NAME="minidlna" +DAEMON=/usr/sbin/minidlnad +SCRIPTNAME=/etc/init.d/$NAME +PIDFILE=/var/run/$NAME.pid +CONF=/etc/$NAME.conf +ARGS="-f $CONF" + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +start_function() { + + export PATH=$PWD:$PATH + + if [ -f ${PIDFILE} ]; then + echo "$SCRIPTNAME already running with PID #`cat $PIDFILE` ( according to ${PIDFILE} )"; + exit 0 + fi + + $DAEMON $ARGS + + pid=$! + + if [ "$pid" != "" ]; then + echo -n "$pid" > ${PIDFILE} + fi +} + +stop_function() { + + export PATH=$PWD:$PATH + + if [ ! -e "${PIDFILE}" ]; then + echo "${SCRIPTNAME} not running ( according to ${PIDFILE} )"; + exit 1; + fi + PID=`cat ${PIDFILE}` + kill -INT ${PID} + rm -f ${PIDFILE} +} + +case $1 in + "start") + start_function + ;; + "stop") + stop_function + ;; + *) + echo "Usage: $0 {start | stop}" + +esac diff --git a/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service b/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service new file mode 100644 index 000000000..656100bb6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service @@ -0,0 +1,10 @@ +[Unit] +Description=Minidlna Daemon +After=network.target + +[Service] +Type=notify +ExecStart=/usr/sbin/minidlnad -f /etc/minidlna.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb new file mode 100644 index 000000000..829c3b243 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb @@ -0,0 +1,23 @@ +# Copyright Matthias Hentges (c) 2006 +# License: MIT (see COPYING.MIT) + +SUMMARY = "Preconfigured mplayer preferences" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PV = "0.0.1" +PR = "r1" + +SRC_URI = "file://mplayer.conf" + +# Yes, really /usr/etc!!! +do_install() { + install -d "${D}/usr${sysconfdir}/mplayer" + + install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr${sysconfdir}/mplayer" +} + +FILES_${PN} = "/usr${sysconfdir}/mplayer" + +inherit allarch diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf new file mode 100644 index 000000000..37ad65fa2 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf @@ -0,0 +1,15 @@ + +# You probably shouldn't touch these +ac=mad, +ao=alsa, + +# Required on SL-Cxxxx for correct rotation in the *VT*, +# breaks rotation in X! +# vf=rotate=1 + +# Enable fullscreen display by default +# fs=true + +# Drop frames to keep audio and video in sync +framedrop=true + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb new file mode 100644 index 000000000..de78de27f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb @@ -0,0 +1,73 @@ +SUMMARY = "Open Source multimedia player" +DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more." +SECTION = "multimedia" +HOMEPAGE = "http://www.mpv.io/" +DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \ + libxscrnsaver libv4l libxinerama \ +" + +REQUIRED_DISTRO_FEATURES = "x11" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \ + http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=${BPN}-${PV} \ +" +SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab" +SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46" +SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" +SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" + +inherit waf pkgconfig pythonnative distro_features_check + +# Note: both lua and libass are required to get on-screen-display (controls) +PACKAGECONFIG ??= " \ + lua \ + libass \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ +" +PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm" +PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa" +PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit" +PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" +PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive" +PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack" +PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau, --disable-vdpau,libvdpau" +PACKAGECONFIG[wayland] = "--enable-wayland, --disable-wayland,wayland libxkbcommon" + +SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}" + +EXTRA_OECONF = " \ + --prefix=${prefix} \ + --target=${SIMPLE_TARGET_SYS} \ + --confdir=${sysconfdir} \ + --datadir=${datadir} \ + --disable-manpage-build \ + --disable-gl \ + --disable-libsmbclient \ + --disable-encoding \ + --disable-libbluray \ + --disable-dvdread \ + --disable-dvdnav \ + --disable-cdda \ + --disable-uchardet \ + --disable-rubberband \ + --disable-lcms2 \ + --disable-vapoursynth \ + --disable-vapoursynth-lazy \ + ${PACKAGECONFIG_CONFARGS} \ +" + +adjust_waf_perms() { + chmod +x ${S}/waf +} + +do_patch[postfuncs] += "adjust_waf_perms" + +FILES_${PN} += "${datadir}/icons" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb new file mode 100644 index 000000000..ff6311147 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb @@ -0,0 +1,15 @@ +SUMMARY = "Opus Audio Tools" +HOMEPAGE = "http://www.opus-codec.org/" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz" +SRC_URI[md5sum] = "b424790eda9357a4df394e2d7ca19eac" +SRC_URI[sha256sum] = "e4e188579ea1c4e4d5066460d4a7214a7eafe3539e9a4466fdc98af41ba4a2f6" + +S = "${WORKDIR}/opus-tools-${PV}" + +DEPENDS = "libopus flac" + +inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch new file mode 100644 index 000000000..b59569f2c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch @@ -0,0 +1,27 @@ +From 1f92aa5c8d910519e3a74b2e3a9199aa9026a16c Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +Date: Mon, 25 Jan 2016 08:41:42 +0530 +Subject: [PATCH 1/2] build-sys: Use C++11 for building + +This requirement was added by gtkmm at some point: + +http://www.murrayc.com/permalink/2015/07/31/gtkmm-now-uses-c11/ +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 5b50e2d..8f28782 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -39,6 +39,7 @@ AC_PROG_CC + AC_PROG_LN_S + AC_TYPE_SIGNAL + AC_HEADER_STDC ++AX_CXX_COMPILE_STDCXX_11 + + AC_ARG_ENABLE(gtk3, + [AS_HELP_STRING([--disable-gtk3], +-- +2.12.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch new file mode 100644 index 000000000..97ec37d4c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch @@ -0,0 +1,624 @@ +From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +Date: Tue, 2 Feb 2016 17:01:47 +0530 +Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11 + +--- + m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++ + m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++ + 2 files changed, 597 insertions(+) + create mode 100644 m4/ax_cxx_compile_stdcxx.m4 + create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 + +diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 +new file mode 100644 +index 0000000..079e17d +--- /dev/null ++++ b/m4/ax_cxx_compile_stdcxx.m4 +@@ -0,0 +1,558 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) ++# ++# DESCRIPTION ++# ++# Check for baseline language coverage in the compiler for the specified ++# version of the C++ standard. If necessary, add switches to CXXFLAGS to ++# enable support. VERSION may be '11' (for the C++11 standard) or '14' ++# (for the C++14 standard). ++# ++# The second argument, if specified, indicates whether you insist on an ++# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. ++# -std=c++11). If neither is specified, you get whatever works, with ++# preference for an extended mode. ++# ++# The third argument, if specified 'mandatory' or if left unspecified, ++# indicates that baseline support for the specified C++ standard is ++# required and that the macro should error out if no mode with that ++# support is found. If specified 'optional', then configuration proceeds ++# regardless, after defining HAVE_CXX${VERSION} if and only if a ++# supporting mode is found. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Benjamin Kosnik ++# Copyright (c) 2012 Zack Weinberg ++# Copyright (c) 2013 Roy Stogner ++# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov ++# Copyright (c) 2015 Paul Norman ++# Copyright (c) 2015 Moritz Klammler ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 1 ++ ++dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro ++dnl (serial version number 13). ++ ++AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl ++ m4_if([$1], [11], [], ++ [$1], [14], [], ++ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], ++ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl ++ m4_if([$2], [], [], ++ [$2], [ext], [], ++ [$2], [noext], [], ++ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl ++ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], ++ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], ++ [$3], [optional], [ax_cxx_compile_cxx$1_required=false], ++ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) ++ AC_LANG_PUSH([C++])dnl ++ ac_success=no ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, ++ ax_cv_cxx_compile_cxx$1, ++ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [ax_cv_cxx_compile_cxx$1=yes], ++ [ax_cv_cxx_compile_cxx$1=no])]) ++ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then ++ ac_success=yes ++ fi ++ ++ m4_if([$2], [noext], [], [dnl ++ if test x$ac_success = xno; then ++ for switch in -std=gnu++$1 -std=gnu++0x; do ++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, ++ $cachevar, ++ [ac_save_CXXFLAGS="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAGS $switch" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [eval $cachevar=yes], ++ [eval $cachevar=no]) ++ CXXFLAGS="$ac_save_CXXFLAGS"]) ++ if eval test x\$$cachevar = xyes; then ++ CXXFLAGS="$CXXFLAGS $switch" ++ ac_success=yes ++ break ++ fi ++ done ++ fi]) ++ ++ m4_if([$2], [ext], [], [dnl ++ if test x$ac_success = xno; then ++ dnl HP's aCC needs +std=c++11 according to: ++ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf ++ dnl Cray's crayCC needs "-h std=c++11" ++ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do ++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, ++ $cachevar, ++ [ac_save_CXXFLAGS="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAGS $switch" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [eval $cachevar=yes], ++ [eval $cachevar=no]) ++ CXXFLAGS="$ac_save_CXXFLAGS"]) ++ if eval test x\$$cachevar = xyes; then ++ CXXFLAGS="$CXXFLAGS $switch" ++ ac_success=yes ++ break ++ fi ++ done ++ fi]) ++ AC_LANG_POP([C++]) ++ if test x$ax_cxx_compile_cxx$1_required = xtrue; then ++ if test x$ac_success = xno; then ++ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) ++ fi ++ else ++ if test x$ac_success = xno; then ++ HAVE_CXX$1=0 ++ AC_MSG_NOTICE([No compiler with C++$1 support was found]) ++ else ++ HAVE_CXX$1=1 ++ AC_DEFINE(HAVE_CXX$1,1, ++ [define if the compiler supports basic C++$1 syntax]) ++ fi ++ ++ AC_SUBST(HAVE_CXX$1) ++ fi ++]) ++ ++ ++dnl Test body for checking C++11 support ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ++) ++ ++ ++dnl Test body for checking C++14 support ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ++) ++ ++ ++dnl Tests for new features in C++11 ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ ++ ++// If the compiler admits that it is not ready for C++11, why torture it? ++// Hopefully, this will speed up the test. ++ ++#ifndef __cplusplus ++ ++#error "This is not a C++ compiler" ++ ++#elif __cplusplus < 201103L ++ ++#error "This is not a C++11 compiler" ++ ++#else ++ ++namespace cxx11 ++{ ++ ++ namespace test_static_assert ++ { ++ ++ template ++ struct check ++ { ++ static_assert(sizeof(int) <= sizeof(T), "not big enough"); ++ }; ++ ++ } ++ ++ namespace test_final_override ++ { ++ ++ struct Base ++ { ++ virtual void f() {} ++ }; ++ ++ struct Derived : public Base ++ { ++ virtual void f() override {} ++ }; ++ ++ } ++ ++ namespace test_double_right_angle_brackets ++ { ++ ++ template < typename T > ++ struct check {}; ++ ++ typedef check single_type; ++ typedef check> double_type; ++ typedef check>> triple_type; ++ typedef check>>> quadruple_type; ++ ++ } ++ ++ namespace test_decltype ++ { ++ ++ int ++ f() ++ { ++ int a = 1; ++ decltype(a) b = 2; ++ return a + b; ++ } ++ ++ } ++ ++ namespace test_type_deduction ++ { ++ ++ template < typename T1, typename T2 > ++ struct is_same ++ { ++ static const bool value = false; ++ }; ++ ++ template < typename T > ++ struct is_same ++ { ++ static const bool value = true; ++ }; ++ ++ template < typename T1, typename T2 > ++ auto ++ add(T1 a1, T2 a2) -> decltype(a1 + a2) ++ { ++ return a1 + a2; ++ } ++ ++ int ++ test(const int c, volatile int v) ++ { ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == false, ""); ++ static_assert(is_same::value == false, ""); ++ auto ac = c; ++ auto av = v; ++ auto sumi = ac + av + 'x'; ++ auto sumf = ac + av + 1.0; ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == false, ""); ++ static_assert(is_same::value == true, ""); ++ return (sumf > 0.0) ? sumi : add(c, v); ++ } ++ ++ } ++ ++ namespace test_noexcept ++ { ++ ++ int f() { return 0; } ++ int g() noexcept { return 0; } ++ ++ static_assert(noexcept(f()) == false, ""); ++ static_assert(noexcept(g()) == true, ""); ++ ++ } ++ ++ namespace test_constexpr ++ { ++ ++ template < typename CharT > ++ unsigned long constexpr ++ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept ++ { ++ return *s ? strlen_c_r(s + 1, acc + 1) : acc; ++ } ++ ++ template < typename CharT > ++ unsigned long constexpr ++ strlen_c(const CharT *const s) noexcept ++ { ++ return strlen_c_r(s, 0UL); ++ } ++ ++ static_assert(strlen_c("") == 0UL, ""); ++ static_assert(strlen_c("1") == 1UL, ""); ++ static_assert(strlen_c("example") == 7UL, ""); ++ static_assert(strlen_c("another\0example") == 7UL, ""); ++ ++ } ++ ++ namespace test_rvalue_references ++ { ++ ++ template < int N > ++ struct answer ++ { ++ static constexpr int value = N; ++ }; ++ ++ answer<1> f(int&) { return answer<1>(); } ++ answer<2> f(const int&) { return answer<2>(); } ++ answer<3> f(int&&) { return answer<3>(); } ++ ++ void ++ test() ++ { ++ int i = 0; ++ const int c = 0; ++ static_assert(decltype(f(i))::value == 1, ""); ++ static_assert(decltype(f(c))::value == 2, ""); ++ static_assert(decltype(f(0))::value == 3, ""); ++ } ++ ++ } ++ ++ namespace test_uniform_initialization ++ { ++ ++ struct test ++ { ++ static const int zero {}; ++ static const int one {1}; ++ }; ++ ++ static_assert(test::zero == 0, ""); ++ static_assert(test::one == 1, ""); ++ ++ } ++ ++ namespace test_lambdas ++ { ++ ++ void ++ test1() ++ { ++ auto lambda1 = [](){}; ++ auto lambda2 = lambda1; ++ lambda1(); ++ lambda2(); ++ } ++ ++ int ++ test2() ++ { ++ auto a = [](int i, int j){ return i + j; }(1, 2); ++ auto b = []() -> int { return '0'; }(); ++ auto c = [=](){ return a + b; }(); ++ auto d = [&](){ return c; }(); ++ auto e = [a, &b](int x) mutable { ++ const auto identity = [](int y){ return y; }; ++ for (auto i = 0; i < a; ++i) ++ a += b--; ++ return x + identity(a + b); ++ }(0); ++ return a + b + c + d + e; ++ } ++ ++ int ++ test3() ++ { ++ const auto nullary = [](){ return 0; }; ++ const auto unary = [](int x){ return x; }; ++ using nullary_t = decltype(nullary); ++ using unary_t = decltype(unary); ++ const auto higher1st = [](nullary_t f){ return f(); }; ++ const auto higher2nd = [unary](nullary_t f1){ ++ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; ++ }; ++ return higher1st(nullary) + higher2nd(nullary)(unary); ++ } ++ ++ } ++ ++ namespace test_variadic_templates ++ { ++ ++ template ++ struct sum; ++ ++ template ++ struct sum ++ { ++ static constexpr auto value = N0 + sum::value; ++ }; ++ ++ template <> ++ struct sum<> ++ { ++ static constexpr auto value = 0; ++ }; ++ ++ static_assert(sum<>::value == 0, ""); ++ static_assert(sum<1>::value == 1, ""); ++ static_assert(sum<23>::value == 23, ""); ++ static_assert(sum<1, 2>::value == 3, ""); ++ static_assert(sum<5, 5, 11>::value == 21, ""); ++ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); ++ ++ } ++ ++ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae ++ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function ++ // because of this. ++ namespace test_template_alias_sfinae ++ { ++ ++ struct foo {}; ++ ++ template ++ using member = typename T::member_type; ++ ++ template ++ void func(...) {} ++ ++ template ++ void func(member*) {} ++ ++ void test(); ++ ++ void test() { func(0); } ++ ++ } ++ ++} // namespace cxx11 ++ ++#endif // __cplusplus >= 201103L ++ ++]]) ++ ++ ++dnl Tests for new features in C++14 ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ ++ ++// If the compiler admits that it is not ready for C++14, why torture it? ++// Hopefully, this will speed up the test. ++ ++#ifndef __cplusplus ++ ++#error "This is not a C++ compiler" ++ ++#elif __cplusplus < 201402L ++ ++#error "This is not a C++14 compiler" ++ ++#else ++ ++namespace cxx14 ++{ ++ ++ namespace test_polymorphic_lambdas ++ { ++ ++ int ++ test() ++ { ++ const auto lambda = [](auto&&... args){ ++ const auto istiny = [](auto x){ ++ return (sizeof(x) == 1UL) ? 1 : 0; ++ }; ++ const int aretiny[] = { istiny(args)... }; ++ return aretiny[0]; ++ }; ++ return lambda(1, 1L, 1.0f, '1'); ++ } ++ ++ } ++ ++ namespace test_binary_literals ++ { ++ ++ constexpr auto ivii = 0b0000000000101010; ++ static_assert(ivii == 42, "wrong value"); ++ ++ } ++ ++ namespace test_generalized_constexpr ++ { ++ ++ template < typename CharT > ++ constexpr unsigned long ++ strlen_c(const CharT *const s) noexcept ++ { ++ auto length = 0UL; ++ for (auto p = s; *p; ++p) ++ ++length; ++ return length; ++ } ++ ++ static_assert(strlen_c("") == 0UL, ""); ++ static_assert(strlen_c("x") == 1UL, ""); ++ static_assert(strlen_c("test") == 4UL, ""); ++ static_assert(strlen_c("another\0test") == 7UL, ""); ++ ++ } ++ ++ namespace test_lambda_init_capture ++ { ++ ++ int ++ test() ++ { ++ auto x = 0; ++ const auto lambda1 = [a = x](int b){ return a + b; }; ++ const auto lambda2 = [a = lambda1(x)](){ return a; }; ++ return lambda2(); ++ } ++ ++ } ++ ++ namespace test_digit_seperators ++ { ++ ++ constexpr auto ten_million = 100'000'000; ++ static_assert(ten_million == 100000000, ""); ++ ++ } ++ ++ namespace test_return_type_deduction ++ { ++ ++ auto f(int& x) { return x; } ++ decltype(auto) g(int& x) { return x; } ++ ++ template < typename T1, typename T2 > ++ struct is_same ++ { ++ static constexpr auto value = false; ++ }; ++ ++ template < typename T > ++ struct is_same ++ { ++ static constexpr auto value = true; ++ }; ++ ++ int ++ test() ++ { ++ auto x = 0; ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++ return x; ++ } ++ ++ } ++ ++} // namespace cxx14 ++ ++#endif // __cplusplus >= 201402L ++ ++]]) +diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 +new file mode 100644 +index 0000000..09db383 +--- /dev/null ++++ b/m4/ax_cxx_compile_stdcxx_11.m4 +@@ -0,0 +1,39 @@ ++# ============================================================================ ++# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html ++# ============================================================================ ++# ++# SYNOPSIS ++# ++# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional]) ++# ++# DESCRIPTION ++# ++# Check for baseline language coverage in the compiler for the C++11 ++# standard; if necessary, add switches to CXXFLAGS to enable support. ++# ++# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX ++# macro with the version set to C++11. The two optional arguments are ++# forwarded literally as the second and third argument respectively. ++# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for ++# more information. If you want to use this macro, you also need to ++# download the ax_cxx_compile_stdcxx.m4 file. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Benjamin Kosnik ++# Copyright (c) 2012 Zack Weinberg ++# Copyright (c) 2013 Roy Stogner ++# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov ++# Copyright (c) 2015 Paul Norman ++# Copyright (c) 2015 Moritz Klammler ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 14 ++ ++include([ax_cxx_compile_stdcxx.m4]) ++ ++AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])]) +-- +2.12.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb new file mode 100644 index 000000000..959068dd3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "intltool-native gtkmm libcanberra pulseaudio" + +inherit gnome distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz \ + file://0001-build-sys-Use-C-11-for-building.patch \ + file://0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch \ + " +SRC_URI[md5sum] = "176308d2c03f8f3a7b2bd4f4d284fe71" +SRC_URI[sha256sum] = "b3d2ea5a25fc88dcee80c396014f72df1b4742f8cfbbc5349c39d64a0d338890" + +EXTRA_OECONF = " --disable-gtk3 --disable-lynx " + +RDEPENDS_${PN} += "pulseaudio-server" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb new file mode 100644 index 000000000..098b08d47 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb @@ -0,0 +1,16 @@ +SUMMARY = "Freedesktop sound theme" +HOMEPAGE = "http://freedesktop.org/wiki/Specifications/sound-theme-spec" +LICENSE = "GPLv2+ & CC-BY-3.0 & CC-BY-SA-3.0" +LIC_FILES_CHKSUM = "file://CREDITS;md5=3213e601ce34bb42ddc3498903ac4e69" + +# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT +# intltool for intltool.m4 which provides IT_PROG_INTLTOOL +DEPENDS = "glib-2.0 intltool-native" + +inherit autotools gettext + +DEPENDS += "glib-2.0-native intltool-native" + +SRC_URI = "http://people.freedesktop.org/~mccann/dist/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "d7387912cfd275282d1ec94483cb2f62" +SRC_URI[sha256sum] = "cb518b20eef05ec2e82dda1fa89a292c1760dc023aba91b8aa69bafac85e8a14" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch new file mode 100644 index 000000000..eb294b3fb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch @@ -0,0 +1,43 @@ +From 67a6e919b8263d6d2b7150e62f26fb06bbc526ef Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 27 Feb 2015 21:55:36 +0000 +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and + libv4l2subdev" + +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. + +Signed-off-by: Khem Raj + +Conflicts: + utils/media-ctl/Makefile.am + +--- + utils/media-ctl/Makefile.am | 10 +++------- + 1 file changed, 3 insertions(+), 7 deletions(-) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index ee7dcc9..d11fa2e 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -1,8 +1,7 @@ +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la +- ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) + + media-bus-format-names.h: ../../include/linux/media-bus-format.h + sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) + libv4l2subdev_la_SOURCES = libv4l2subdev.c + libv4l2subdev_la_LIBADD = libmediactl.la +-libv4l2subdev_la_CFLAGS = -static +-libv4l2subdev_la_LDFLAGS = -static +- + mediactl_includedir=$(includedir)/mediactl + noinst_HEADERS = mediactl.h v4l2subdev.h + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch new file mode 100644 index 000000000..12609d30e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch @@ -0,0 +1,108 @@ +From 75372b8088c20474497b79ec6cf1e99f2d17f56d Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Mon, 3 Apr 2017 13:23:38 +0300 +Subject: [PATCH] buildsystem: do not assume building in source tree. + +Use $(top_srcdir) as reference for include paths and buildtime scripts. +Otherwise compilation outside of project root directory will fail +because header and script paths are wrong. + +To reproduce: mkdir b; cd b; ../configure; make + +Upstream-status: Accepted [https://git.linuxtv.org//v4l-utils.git/commit/?id=bd98c9a99bffc8d44c54859345e4dfee0ada4275] + +Signed-off-by: Ismo Puustinen + +--- + utils/cec-compliance/Makefile.am | 2 +- + utils/cec-ctl/Makefile.am | 2 +- + utils/cec-follower/Makefile.am | 4 ++-- + utils/qv4l2/Makefile.am | 2 +- + utils/v4l2-compliance/Makefile.am | 2 +- + utils/v4l2-ctl/Makefile.am | 2 +- + 6 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/utils/cec-compliance/Makefile.am b/utils/cec-compliance/Makefile.am +index f05fe6c..f7d1535 100644 +--- a/utils/cec-compliance/Makefile.am ++++ b/utils/cec-compliance/Makefile.am +@@ -7,7 +7,7 @@ cec_compliance_LDFLAGS = -lrt + cec-compliance.cpp: cec-table.h + + cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + cec-compliance.cpp: version.h + +diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am +index 4a6eae5..570a070 100644 +--- a/utils/cec-ctl/Makefile.am ++++ b/utils/cec-ctl/Makefile.am +@@ -6,7 +6,7 @@ cec_ctl_SOURCES = cec-ctl.cpp + cec-ctl.cpp: cec-ctl-gen.h + + cec-ctl-gen.h: msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ./msg2ctl.pl 0 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 0 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + clean-local: + -rm -vf cec-ctl-gen.h +diff --git a/utils/cec-follower/Makefile.am b/utils/cec-follower/Makefile.am +index d8ad292..e3553eb 100644 +--- a/utils/cec-follower/Makefile.am ++++ b/utils/cec-follower/Makefile.am +@@ -7,12 +7,12 @@ cec_follower_LDFLAGS = -lrt + cec-log.cpp: cec-log.h + + cec-log.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 1 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 1 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + cec-follower.cpp: cec-table.h version.h + + cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + version.h: + @if git show-ref -s HEAD >/dev/null 2>&1; then \ +diff --git a/utils/qv4l2/Makefile.am b/utils/qv4l2/Makefile.am +index fd58486..ccd1a2a 100644 +--- a/utils/qv4l2/Makefile.am ++++ b/utils/qv4l2/Makefile.am +@@ -8,7 +8,7 @@ qv4l2_SOURCES = qv4l2.cpp general-tab.cpp ctrl-tab.cpp vbi-tab.cpp capture-win.c + nodist_qv4l2_SOURCES = moc_qv4l2.cpp moc_general-tab.cpp moc_capture-win.cpp moc_vbi-tab.cpp qrc_qv4l2.cpp + qv4l2_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la \ + ../libv4l2util/libv4l2util.la ../libmedia_dev/libmedia_dev.la +-qv4l2_CPPFLAGS = -I../common ++qv4l2_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_QTGL + qv4l2_CPPFLAGS += $(QTGL_CFLAGS) +diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am +index c2b5919..fb8d12e 100644 +--- a/utils/v4l2-compliance/Makefile.am ++++ b/utils/v4l2-compliance/Makefile.am +@@ -5,7 +5,7 @@ DEFS := + v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-input-output.cpp \ + v4l2-test-controls.cpp v4l2-test-io-config.cpp v4l2-test-formats.cpp v4l2-test-buffers.cpp \ + v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h +-v4l2_compliance_CPPFLAGS = -I../common ++v4l2_compliance_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_V4L2_COMPLIANCE_LIBV4L + v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread +diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am +index 955647d..825e53f 100644 +--- a/utils/v4l2-ctl/Makefile.am ++++ b/utils/v4l2-ctl/Makefile.am +@@ -7,7 +7,7 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp + v4l2-ctl-overlay.cpp v4l2-ctl-vbi.cpp v4l2-ctl-selection.cpp v4l2-ctl-misc.cpp \ + v4l2-ctl-streaming.cpp v4l2-ctl-sdr.cpp v4l2-ctl-edid.cpp v4l2-ctl-modes.cpp \ + v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c +-v4l2_ctl_CPPFLAGS = -I../common ++v4l2_ctl_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_V4L2_CTL_LIBV4L + v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch new file mode 100644 index 000000000..82fc3e120 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch @@ -0,0 +1,53 @@ +From b2efcc20617d6317f74c4acb2a6af5b765f20b34 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:11:25 -0700 +Subject: [PATCH] ir-ctl: Define TEMP_FAILURE_RETRY if undefined + +use strndup() instead of strndupa() which is not +universally available in C libraries + +Taken from AlpineLinux + +Signed-off-by: Khem Raj + +--- + utils/ir-ctl/ir-ctl.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c +index bc58cee..1a44011 100644 +--- a/utils/ir-ctl/ir-ctl.c ++++ b/utils/ir-ctl/ir-ctl.c +@@ -42,6 +42,16 @@ + # define _(string) string + #endif + ++/* taken from glibc unistd.h */ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + # define N_(string) string + + +@@ -344,12 +354,14 @@ static struct file *read_scancode(const char *name) + return NULL; + } + +- pstr = strndupa(name, p - name); ++ pstr = strndup(name, p - name); + + if (!protocol_match(pstr, &proto)) { + fprintf(stderr, _("error: protocol '%s' not found\n"), pstr); ++ free(pstr); + return NULL; + } ++ free(pstr); + + if (!strtoscancode(p + 1, &scancode)) { + fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1); diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch new file mode 100644 index 000000000..a779a307d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch @@ -0,0 +1,26 @@ +From 49f865a17d62db7bbd333a9b83fadeea55686e35 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:17:19 -0700 +Subject: [PATCH] contrib/test: Link mc_nextgen_test with libargp if needed + +musl depends on external argp implementation e.g. + +Signed-off-by: Khem Raj + +--- + contrib/test/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/contrib/test/Makefile.am b/contrib/test/Makefile.am +index 4641e21..e47b948 100644 +--- a/contrib/test/Makefile.am ++++ b/contrib/test/Makefile.am +@@ -32,7 +32,7 @@ v4l2gl_LDFLAGS = $(X11_LIBS) $(GL_LIBS) $(GLU_LIBS) $(ARGP_LIBS) + v4l2gl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la + + mc_nextgen_test_CFLAGS = $(LIBUDEV_CFLAGS) +-mc_nextgen_test_LDFLAGS = $(LIBUDEV_LIBS) ++mc_nextgen_test_LDFLAGS = $(ARGP_LIBS) $(LIBUDEV_LIBS) + + + ioctl_test_SOURCES = ioctl-test.c ioctl-test.h ioctl_32.h ioctl_64.h diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch new file mode 100644 index 000000000..5b84af2c3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch @@ -0,0 +1,47 @@ +From f7a4b79b3323534460a63b3e6c58ebaf06adf207 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:20:05 -0700 +Subject: [PATCH] v4l2-ctl: Do not use getsubopt + +POSIX says that behavior when subopts list is empty is undefined. +musl libs will set value to NULL which leads to crash. + +Taken from AlpineLinux + +Signed-off-by: Khem Raj + +--- + utils/v4l2-ctl/v4l2-ctl-common.cpp | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp +index 3ea6cd3..291fb3e 100644 +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp +@@ -692,16 +692,17 @@ static bool parse_subset(char *optarg) + + static bool parse_next_subopt(char **subs, char **value) + { +- static char *const subopts[] = { +- NULL +- }; +- int opt = getsubopt(subs, subopts, value); ++ char *p = *subs; ++ *value = *subs; + +- if (opt < 0 || *value) +- return false; +- fprintf(stderr, "No value given to suboption <%s>\n", +- subopts[opt]); +- return true; ++ while (*p && *p != ',') ++ p++; ++ ++ if (*p) ++ *p++ = '\0'; ++ ++ *subs = p; ++ return false; + } + + void common_cmd(int ch, char *optarg) diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch new file mode 100644 index 000000000..55a5cdc8a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch @@ -0,0 +1,23 @@ +From b82e509c10659a4647961a6da3adf4d285dea2dd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 1 Mar 2015 22:25:07 +0000 + +--- + utils/media-ctl/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index 7c520a2..748353d 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) + libv4l2subdev_la_SOURCES = libv4l2subdev.c + libv4l2subdev_la_LIBADD = libmediactl.la +-mediactl_includedir=$(includedir)/mediactl +-noinst_HEADERS = mediactl.h v4l2subdev.h ++otherincludedir = $(includedir)/mediactl ++otherinclude_HEADERS = mediactl.h v4l2subdev.h + + pkgconfig_DATA = libmediactl.pc + bin_PROGRAMS = media-ctl diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch new file mode 100644 index 000000000..9fcf61165 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch @@ -0,0 +1,20 @@ +From 480c04ac6a9d11bfef9d4aca073052fdcee4fdea Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 1 Mar 2015 22:25:07 +0000 + +--- + utils/media-ctl/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index d11fa2e..7c520a2 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la + mediactl_includedir=$(includedir)/mediactl + noinst_HEADERS = mediactl.h v4l2subdev.h + ++pkgconfig_DATA = libmediactl.pc + bin_PROGRAMS = media-ctl + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h + media_ctl_LDADD = libmediactl.la libv4l2subdev.la diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb new file mode 100644 index 000000000..57cfb1318 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb @@ -0,0 +1,55 @@ +SUMMARY = "v4l2 and IR applications" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \ + file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0" +PROVIDES = "libv4l media-ctl" + +DEPENDS = "jpeg \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" +DEPENDS_append_libc-musl = " argp-standalone" +DEPENDS_append_class-target = " udev" +LDFLAGS_append = " -pthread" + +inherit autotools gettext pkgconfig + +PACKAGECONFIG ??= "media-ctl" +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," + +SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \ + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ + file://0001-buildsystem-do-not-assume-building-in-source-tree.patch \ + file://mediactl-pkgconfig.patch \ + file://export-mediactl-headers.patch \ + file://0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch \ + file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \ + file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \ + " +SRC_URI[md5sum] = "89e1ed6c69c94e0489dc0a638c7841aa" +SRC_URI[sha256sum] = "5a47dd6f0e7dfe902d94605c01d385a4a4e87583ff5856d6f181900ea81cf46e" + +EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev" + +VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps" + +PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev" + +FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*" + +FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules" +RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}" + +FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*" + +FILES_${PN} = "${bindir} ${sbindir}" + +FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \ + ${libdir}/libdvbv5*${SOLIBS} \ + ${libdir}/libv4l/*-decomp" + +FILES_libv4l-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug" +FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \ + ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \ + ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la" + +PARALLEL_MAKE_class-native = "" +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch new file mode 100644 index 000000000..41a5dbf4f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch @@ -0,0 +1,961 @@ +From 141d3b3593722eb3d588e7c4b1542f810bc25853 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Thu, 5 Jun 2014 11:29:20 -0500 +Subject: [PATCH] Add stdout mode to allow streaming over the network with nc + +Signed-off-by: Koen Kooi +Signed-off-by: Chase Maupin +--- + yavta.c | 315 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 169 insertions(+), 146 deletions(-) + +diff --git a/yavta.c b/yavta.c +index 32adc26..b398da0 100644 +--- a/yavta.c ++++ b/yavta.c +@@ -309,7 +309,7 @@ static bool video_has_fd(struct device *dev) + static int video_set_fd(struct device *dev, int fd) + { + if (video_has_fd(dev)) { +- printf("Can't set fd (already open).\n"); ++ fprintf(stderr, "Can't set fd (already open).\n"); + return -1; + } + +@@ -321,18 +321,18 @@ static int video_set_fd(struct device *dev, int fd) + static int video_open(struct device *dev, const char *devname) + { + if (video_has_fd(dev)) { +- printf("Can't open device (already open).\n"); ++ fprintf(stderr, "Can't open device (already open).\n"); + return -1; + } + + dev->fd = open(devname, O_RDWR); + if (dev->fd < 0) { +- printf("Error opening device %s: %s (%d).\n", devname, ++ fprintf(stderr, "Error opening device %s: %s (%d).\n", devname, + strerror(errno), errno); + return dev->fd; + } + +- printf("Device %s opened.\n", devname); ++ fprintf(stderr, "Device %s opened.\n", devname); + + dev->opened = 1; + +@@ -352,7 +352,7 @@ static int video_querycap(struct device *dev, unsigned int *capabilities) + *capabilities = cap.capabilities & V4L2_CAP_DEVICE_CAPS + ? cap.device_caps : cap.capabilities; + +- printf("Device `%s' on `%s' is a video %s (%s mplanes) device.\n", ++ fprintf(stderr, "Device `%s' on `%s' is a video %s (%s mplanes) device.\n", + cap.card, cap.bus_info, + video_is_capture(dev) ? "capture" : "output", + video_is_mplane(dev) ? "with" : "without"); +@@ -370,7 +370,7 @@ static int cap_get_buf_type(unsigned int capabilities) + } else if (capabilities & V4L2_CAP_VIDEO_OUTPUT) { + return V4L2_BUF_TYPE_VIDEO_OUTPUT; + } else { +- printf("Device supports neither capture nor output.\n"); ++ fprintf(stderr, "Device supports neither capture nor output.\n"); + return -EINVAL; + } + +@@ -440,7 +440,7 @@ static int get_control(struct device *dev, unsigned int id, int type, + } + } + +- printf("unable to get control 0x%8.8x: %s (%d).\n", ++ fprintf(stderr, "unable to get control 0x%8.8x: %s (%d).\n", + id, strerror(errno), errno); + return -1; + } +@@ -484,12 +484,12 @@ static void set_control(struct device *dev, unsigned int id, int type, + val = old.value; + } + if (ret == -1) { +- printf("unable to set control 0x%8.8x: %s (%d).\n", ++ fprintf(stderr, "unable to set control 0x%8.8x: %s (%d).\n", + id, strerror(errno), errno); + return; + } + +- printf("Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n", ++ fprintf(stderr, "Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n", + id, old_val, val); + } + +@@ -504,7 +504,7 @@ static int video_get_format(struct device *dev) + + ret = ioctl(dev->fd, VIDIOC_G_FMT, &fmt); + if (ret < 0) { +- printf("Unable to get format: %s (%d).\n", strerror(errno), ++ fprintf(stderr, "Unable to get format: %s (%d).\n", strerror(errno), + errno); + return ret; + } +@@ -514,7 +514,7 @@ static int video_get_format(struct device *dev) + dev->height = fmt.fmt.pix_mp.height; + dev->num_planes = fmt.fmt.pix_mp.num_planes; + +- printf("Video format: %s (%08x) %ux%u field %s, %u planes: \n", ++ fprintf(stderr, "Video format: %s (%08x) %ux%u field %s, %u planes: \n", + v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat, + fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height, + v4l2_field_name(fmt.fmt.pix_mp.field), +@@ -527,7 +527,7 @@ static int video_get_format(struct device *dev) + fmt.fmt.pix_mp.plane_fmt[i].bytesperline ? + fmt.fmt.pix_mp.plane_fmt[i].sizeimage : 0; + +- printf(" * Stride %u, buffer size %u\n", ++ fprintf(stderr, " * Stride %u, buffer size %u\n", + fmt.fmt.pix_mp.plane_fmt[i].bytesperline, + fmt.fmt.pix_mp.plane_fmt[i].sizeimage); + } +@@ -539,7 +539,7 @@ static int video_get_format(struct device *dev) + dev->plane_fmt[0].bytesperline = fmt.fmt.pix.bytesperline; + dev->plane_fmt[0].sizeimage = fmt.fmt.pix.bytesperline ? fmt.fmt.pix.sizeimage : 0; + +- printf("Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n", ++ fprintf(stderr, "Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n", + v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat, + fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline, + v4l2_field_name(fmt.fmt.pix_mp.field), +@@ -581,25 +581,25 @@ static int video_set_format(struct device *dev, unsigned int w, unsigned int h, + + ret = ioctl(dev->fd, VIDIOC_S_FMT, &fmt); + if (ret < 0) { +- printf("Unable to set format: %s (%d).\n", strerror(errno), ++ fprintf(stderr, "Unable to set format: %s (%d).\n", strerror(errno), + errno); + return ret; + } + + if (video_is_mplane(dev)) { +- printf("Video format set: %s (%08x) %ux%u field %s, %u planes: \n", ++ fprintf(stderr, "Video format set: %s (%08x) %ux%u field %s, %u planes: \n", + v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat, + fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height, + v4l2_field_name(fmt.fmt.pix_mp.field), + fmt.fmt.pix_mp.num_planes); + + for (i = 0; i < fmt.fmt.pix_mp.num_planes; i++) { +- printf(" * Stride %u, buffer size %u\n", ++ fprintf(stderr, " * Stride %u, buffer size %u\n", + fmt.fmt.pix_mp.plane_fmt[i].bytesperline, + fmt.fmt.pix_mp.plane_fmt[i].sizeimage); + } + } else { +- printf("Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n", ++ fprintf(stderr, "Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n", + v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat, + fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline, + v4l2_field_name(fmt.fmt.pix.field), +@@ -619,16 +619,16 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f + + ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm); + if (ret < 0) { +- printf("Unable to get frame rate: %s (%d).\n", ++ fprintf(stderr, "Unable to get frame rate: %s (%d).\n", + strerror(errno), errno); + return ret; + } + +- printf("Current frame rate: %u/%u\n", ++ fprintf(stderr, "Current frame rate: %u/%u\n", + parm.parm.capture.timeperframe.numerator, + parm.parm.capture.timeperframe.denominator); + +- printf("Setting frame rate to: %u/%u\n", ++ fprintf(stderr, "Setting frame rate to: %u/%u\n", + time_per_frame->numerator, + time_per_frame->denominator); + +@@ -637,19 +637,19 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f + + ret = ioctl(dev->fd, VIDIOC_S_PARM, &parm); + if (ret < 0) { +- printf("Unable to set frame rate: %s (%d).\n", strerror(errno), ++ fprintf(stderr, "Unable to set frame rate: %s (%d).\n", strerror(errno), + errno); + return ret; + } + + ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm); + if (ret < 0) { +- printf("Unable to get frame rate: %s (%d).\n", strerror(errno), ++ fprintf(stderr, "Unable to get frame rate: %s (%d).\n", strerror(errno), + errno); + return ret; + } + +- printf("Frame rate set: %u/%u\n", ++ fprintf(stderr, "Frame rate set: %u/%u\n", + parm.parm.capture.timeperframe.numerator, + parm.parm.capture.timeperframe.denominator); + return 0; +@@ -674,7 +674,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer, + buffer->mem[i] = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED, + dev->fd, offset); + if (buffer->mem[i] == MAP_FAILED) { +- printf("Unable to map buffer %u/%u: %s (%d)\n", ++ fprintf(stderr, "Unable to map buffer %u/%u: %s (%d)\n", + buffer->idx, i, strerror(errno), errno); + return -1; + } +@@ -682,7 +682,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer, + buffer->size[i] = length; + buffer->padding[i] = 0; + +- printf("Buffer %u/%u mapped at address %p.\n", ++ fprintf(stderr, "Buffer %u/%u mapped at address %p.\n", + buffer->idx, i, buffer->mem[i]); + } + +@@ -697,7 +697,7 @@ static int video_buffer_munmap(struct device *dev, struct buffer *buffer) + for (i = 0; i < dev->num_planes; i++) { + ret = munmap(buffer->mem[i], buffer->size[i]); + if (ret < 0) { +- printf("Unable to unmap buffer %u/%u: %s (%d)\n", ++ fprintf(stderr, "Unable to unmap buffer %u/%u: %s (%d)\n", + buffer->idx, i, strerror(errno), errno); + } + +@@ -725,7 +725,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer, + ret = posix_memalign(&buffer->mem[i], page_size, + length + offset + padding); + if (ret < 0) { +- printf("Unable to allocate buffer %u/%u (%d)\n", ++ fprintf(stderr, "Unable to allocate buffer %u/%u (%d)\n", + buffer->idx, i, ret); + return -ENOMEM; + } +@@ -734,7 +734,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer, + buffer->size[i] = length; + buffer->padding[i] = padding; + +- printf("Buffer %u/%u allocated at address %p.\n", ++ fprintf(stderr, "Buffer %u/%u allocated at address %p.\n", + buffer->idx, i, buffer->mem[i]); + } + +@@ -809,12 +809,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs, + + ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb); + if (ret < 0) { +- printf("Unable to request buffers: %s (%d).\n", strerror(errno), ++ fprintf(stderr, "Unable to request buffers: %s (%d).\n", strerror(errno), + errno); + return ret; + } + +- printf("%u buffers requested.\n", rb.count); ++ fprintf(stderr, "%u buffers requested.\n", rb.count); + + buffers = malloc(rb.count * sizeof buffers[0]); + if (buffers == NULL) +@@ -835,12 +835,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs, + + ret = ioctl(dev->fd, VIDIOC_QUERYBUF, &buf); + if (ret < 0) { +- printf("Unable to query buffer %u: %s (%d).\n", i, ++ fprintf(stderr, "Unable to query buffer %u: %s (%d).\n", i, + strerror(errno), errno); + return ret; + } + get_ts_flags(buf.flags, &ts_type, &ts_source); +- printf("length: %u offset: %u timestamp type/source: %s/%s\n", ++ fprintf(stderr, "length: %u offset: %u timestamp type/source: %s/%s\n", + buf.length, buf.m.offset, ts_type, ts_source); + + buffers[i].idx = i; +@@ -899,12 +899,12 @@ static int video_free_buffers(struct device *dev) + + ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb); + if (ret < 0) { +- printf("Unable to release buffers: %s (%d).\n", ++ fprintf(stderr, "Unable to release buffers: %s (%d).\n", + strerror(errno), errno); + return ret; + } + +- printf("%u buffers released.\n", dev->nbufs); ++ fprintf(stderr, "%u buffers released.\n", dev->nbufs); + + free(dev->buffers); + dev->nbufs = 0; +@@ -974,7 +974,7 @@ static int video_queue_buffer(struct device *dev, int index, enum buffer_fill_mo + + ret = ioctl(dev->fd, VIDIOC_QBUF, &buf); + if (ret < 0) +- printf("Unable to queue buffer: %s (%d).\n", ++ fprintf(stderr, "Unable to queue buffer: %s (%d).\n", + strerror(errno), errno); + + return ret; +@@ -987,7 +987,7 @@ static int video_enable(struct device *dev, int enable) + + ret = ioctl(dev->fd, enable ? VIDIOC_STREAMON : VIDIOC_STREAMOFF, &type); + if (ret < 0) { +- printf("Unable to %s streaming: %s (%d).\n", ++ fprintf(stderr, "Unable to %s streaming: %s (%d).\n", + enable ? "start" : "stop", strerror(errno), errno); + return ret; + } +@@ -1009,10 +1009,10 @@ static void video_query_menu(struct device *dev, struct v4l2_queryctrl *query, + continue; + + if (query->type == V4L2_CTRL_TYPE_MENU) +- printf(" %u: %.32s%s\n", menu.index, menu.name, ++ fprintf(stderr, " %u: %.32s%s\n", menu.index, menu.name, + menu.index == value ? " (*)" : ""); + else +- printf(" %u: %lld%s\n", menu.index, menu.value, ++ fprintf(stderr, " %u: %lld%s\n", menu.index, menu.value, + menu.index == value ? " (*)" : ""); + }; + } +@@ -1043,7 +1043,7 @@ static void video_list_controls(struct device *dev) + continue; + + if (query.type == V4L2_CTRL_TYPE_CTRL_CLASS) { +- printf("--- %s (class 0x%08x) ---\n", query.name, query.id); ++ fprintf(stderr, "--- %s (class 0x%08x) ---\n", query.name, query.id); + continue; + } + +@@ -1053,7 +1053,7 @@ static void video_list_controls(struct device *dev) + else + sprintf(value, "%" PRId64, val64); + +- printf("control 0x%08x `%s' min %d max %d step %d default %d current %s.\n", ++ fprintf(stderr, "control 0x%08x `%s' min %d max %d step %d default %d current %s.\n", + query.id, query.name, query.minimum, query.maximum, + query.step, query.default_value, value); + +@@ -1065,9 +1065,9 @@ static void video_list_controls(struct device *dev) + } + + if (nctrls) +- printf("%u control%s found.\n", nctrls, nctrls > 1 ? "s" : ""); ++ fprintf(stderr, "%u control%s found.\n", nctrls, nctrls > 1 ? "s" : ""); + else +- printf("No control found.\n"); ++ fprintf(stderr, "No control found.\n"); + } + + static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat, +@@ -1088,30 +1088,30 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat, + break; + + if (i != ival.index) +- printf("Warning: driver returned wrong ival index " ++ fprintf(stderr, "Warning: driver returned wrong ival index " + "%u.\n", ival.index); + if (pixelformat != ival.pixel_format) +- printf("Warning: driver returned wrong ival pixel " ++ fprintf(stderr, "Warning: driver returned wrong ival pixel " + "format %08x.\n", ival.pixel_format); + if (width != ival.width) +- printf("Warning: driver returned wrong ival width " ++ fprintf(stderr, "Warning: driver returned wrong ival width " + "%u.\n", ival.width); + if (height != ival.height) +- printf("Warning: driver returned wrong ival height " ++ fprintf(stderr, "Warning: driver returned wrong ival height " + "%u.\n", ival.height); + + if (i != 0) +- printf(", "); ++ fprintf(stderr, ", "); + + switch (ival.type) { + case V4L2_FRMIVAL_TYPE_DISCRETE: +- printf("%u/%u", ++ fprintf(stderr, "%u/%u", + ival.discrete.numerator, + ival.discrete.denominator); + break; + + case V4L2_FRMIVAL_TYPE_CONTINUOUS: +- printf("%u/%u - %u/%u", ++ fprintf(stderr, "%u/%u - %u/%u", + ival.stepwise.min.numerator, + ival.stepwise.min.denominator, + ival.stepwise.max.numerator, +@@ -1119,7 +1119,7 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat, + return; + + case V4L2_FRMIVAL_TYPE_STEPWISE: +- printf("%u/%u - %u/%u (by %u/%u)", ++ fprintf(stderr, "%u/%u - %u/%u (by %u/%u)", + ival.stepwise.min.numerator, + ival.stepwise.min.denominator, + ival.stepwise.max.numerator, +@@ -1149,23 +1149,23 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat) + break; + + if (i != frame.index) +- printf("Warning: driver returned wrong frame index " ++ fprintf(stderr, "Warning: driver returned wrong frame index " + "%u.\n", frame.index); + if (pixelformat != frame.pixel_format) +- printf("Warning: driver returned wrong frame pixel " ++ fprintf(stderr, "Warning: driver returned wrong frame pixel " + "format %08x.\n", frame.pixel_format); + + switch (frame.type) { + case V4L2_FRMSIZE_TYPE_DISCRETE: +- printf("\tFrame size: %ux%u (", frame.discrete.width, ++ fprintf(stderr, "\tFrame size: %ux%u (", frame.discrete.width, + frame.discrete.height); + video_enum_frame_intervals(dev, frame.pixel_format, + frame.discrete.width, frame.discrete.height); +- printf(")\n"); ++ fprintf(stderr, ")\n"); + break; + + case V4L2_FRMSIZE_TYPE_CONTINUOUS: +- printf("\tFrame size: %ux%u - %ux%u (", ++ fprintf(stderr, "\tFrame size: %ux%u - %ux%u (", + frame.stepwise.min_width, + frame.stepwise.min_height, + frame.stepwise.max_width, +@@ -1173,11 +1173,11 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat) + video_enum_frame_intervals(dev, frame.pixel_format, + frame.stepwise.max_width, + frame.stepwise.max_height); +- printf(")\n"); ++ fprintf(stderr, ")\n"); + break; + + case V4L2_FRMSIZE_TYPE_STEPWISE: +- printf("\tFrame size: %ux%u - %ux%u (by %ux%u) (\n", ++ fprintf(stderr, "\tFrame size: %ux%u - %ux%u (by %ux%u) (\n", + frame.stepwise.min_width, + frame.stepwise.min_height, + frame.stepwise.max_width, +@@ -1187,7 +1187,7 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat) + video_enum_frame_intervals(dev, frame.pixel_format, + frame.stepwise.max_width, + frame.stepwise.max_height); +- printf(")\n"); ++ fprintf(stderr, ")\n"); + break; + + default: +@@ -1211,19 +1211,19 @@ static void video_enum_formats(struct device *dev, enum v4l2_buf_type type) + break; + + if (i != fmt.index) +- printf("Warning: driver returned wrong format index " ++ fprintf(stderr, "Warning: driver returned wrong format index " + "%u.\n", fmt.index); + if (type != fmt.type) +- printf("Warning: driver returned wrong format type " ++ fprintf(stderr, "Warning: driver returned wrong format type " + "%u.\n", fmt.type); + +- printf("\tFormat %u: %s (%08x)\n", i, ++ fprintf(stderr, "\tFormat %u: %s (%08x)\n", i, + v4l2_format_name(fmt.pixelformat), fmt.pixelformat); +- printf("\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type), ++ fprintf(stderr, "\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type), + fmt.type); +- printf("\tName: %.32s\n", fmt.description); ++ fprintf(stderr, "\tName: %.32s\n", fmt.description); + video_enum_frame_sizes(dev, fmt.pixelformat); +- printf("\n"); ++ fprintf(stderr, "\n"); + } + } + +@@ -1241,13 +1241,13 @@ static void video_enum_inputs(struct device *dev) + break; + + if (i != input.index) +- printf("Warning: driver returned wrong input index " ++ fprintf(stderr, "Warning: driver returned wrong input index " + "%u.\n", input.index); + +- printf("\tInput %u: %s.\n", i, input.name); ++ fprintf(stderr, "\tInput %u: %s.\n", i, input.name); + } + +- printf("\n"); ++ fprintf(stderr, "\n"); + } + + static int video_get_input(struct device *dev) +@@ -1257,7 +1257,7 @@ static int video_get_input(struct device *dev) + + ret = ioctl(dev->fd, VIDIOC_G_INPUT, &input); + if (ret < 0) { +- printf("Unable to get current input: %s (%d).\n", ++ fprintf(stderr, "Unable to get current input: %s (%d).\n", + strerror(errno), errno); + return ret; + } +@@ -1272,7 +1272,7 @@ static int video_set_input(struct device *dev, unsigned int input) + + ret = ioctl(dev->fd, VIDIOC_S_INPUT, &_input); + if (ret < 0) +- printf("Unable to select input %u: %s (%d).\n", input, ++ fprintf(stderr, "Unable to select input %u: %s (%d).\n", input, + strerror(errno), errno); + + return ret; +@@ -1291,14 +1291,14 @@ static int video_set_quality(struct device *dev, unsigned int quality) + + ret = ioctl(dev->fd, VIDIOC_S_JPEGCOMP, &jpeg); + if (ret < 0) { +- printf("Unable to set quality to %u: %s (%d).\n", quality, ++ fprintf(stderr, "Unable to set quality to %u: %s (%d).\n", quality, + strerror(errno), errno); + return ret; + } + + ret = ioctl(dev->fd, VIDIOC_G_JPEGCOMP, &jpeg); + if (ret >= 0) +- printf("Quality set to %u\n", jpeg.quality); ++ fprintf(stderr, "Quality set to %u\n", jpeg.quality); + + return 0; + } +@@ -1313,7 +1313,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename) + if (filename != NULL) { + fd = open(filename, O_RDONLY); + if (fd == -1) { +- printf("Unable to open test pattern file '%s': %s (%d).\n", ++ fprintf(stderr, "Unable to open test pattern file '%s': %s (%d).\n", + filename, strerror(errno), errno); + return -errno; + } +@@ -1331,7 +1331,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename) + if (filename != NULL) { + ret = read(fd, dev->pattern[plane], size); + if (ret != (int)size && dev->plane_fmt[plane].bytesperline != 0) { +- printf("Test pattern file size %u doesn't match image size %u\n", ++ fprintf(stderr, "Test pattern file size %u doesn't match image size %u\n", + ret, size); + ret = -EINVAL; + goto done; +@@ -1341,7 +1341,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename) + unsigned int i; + + if (dev->plane_fmt[plane].bytesperline == 0) { +- printf("Compressed format detected for plane %u and no test pattern filename given.\n" ++ fprintf(stderr, "Compressed format detected for plane %u and no test pattern filename given.\n" + "The test pattern can't be generated automatically.\n", plane); + ret = -EINVAL; + goto done; +@@ -1410,7 +1410,7 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf) + + if (dev->plane_fmt[plane].sizeimage && + dev->plane_fmt[plane].sizeimage != length) +- printf("Warning: bytes used %u != image size %u for plane %u\n", ++ fprintf(stderr, "Warning: bytes used %u != image size %u for plane %u\n", + length, dev->plane_fmt[plane].sizeimage, plane); + + if (buffer->padding[plane] == 0) +@@ -1424,16 +1424,16 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf) + } + + if (errors) { +- printf("Warning: %u bytes overwritten among %u first padding bytes for plane %u\n", ++ fprintf(stderr, "Warning: %u bytes overwritten among %u first padding bytes for plane %u\n", + errors, dirty, plane); + + dirty = (dirty + 15) & ~15; + dirty = dirty > 32 ? 32 : dirty; + + for (i = 0; i < dirty; ++i) { +- printf("%02x ", data[i]); ++ fprintf(stderr, "%02x ", data[i]); + if (i % 16 == 15) +- printf("\n"); ++ fprintf(stderr, "\n"); + } + } + } +@@ -1481,18 +1481,32 @@ static void video_save_image(struct device *dev, struct v4l2_buffer *buf, + + ret = write(fd, dev->buffers[buf->index].mem[i], length); + if (ret < 0) { +- printf("write error: %s (%d)\n", strerror(errno), errno); ++ fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno); + break; + } else if (ret != (int)length) +- printf("write error: only %d bytes written instead of %u\n", ++ fprintf(stderr, "write error: only %d bytes written instead of %u\n", + ret, length); + } + close(fd); + } + ++static void video_stdout_image(struct device *dev, struct v4l2_buffer *buf) ++{ ++ int ret; ++ ++ fprintf(stderr, "stdout"); ++ ret = fwrite(dev->buffers[buf->index].mem, buf->bytesused, 1, stdout); ++ ++ if (ret < 0) ++ fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno); ++ else if (ret != (int)buf->bytesused) ++ fprintf(stderr, "write error: only %d bytes written instead of %u\n", ++ ret, buf->bytesused); ++} ++ + static int video_do_capture(struct device *dev, unsigned int nframes, + unsigned int skip, unsigned int delay, const char *pattern, +- int do_requeue_last, enum buffer_fill_mode fill) ++ int do_requeue_last, enum buffer_fill_mode fill, int do_stdout) + { + struct v4l2_plane planes[VIDEO_MAX_PLANES]; + struct v4l2_buffer buf; +@@ -1529,7 +1543,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + ret = ioctl(dev->fd, VIDIOC_DQBUF, &buf); + if (ret < 0) { + if (errno != EIO) { +- printf("Unable to dequeue buffer: %s (%d).\n", ++ fprintf(stderr, "Unable to dequeue buffer: %s (%d).\n", + strerror(errno), errno); + goto done; + } +@@ -1550,7 +1564,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + + clock_gettime(CLOCK_MONOTONIC, &ts); + get_ts_flags(buf.flags, &ts_type, &ts_source); +- printf("%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index, ++ fprintf(stderr, "%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index, + (buf.flags & V4L2_BUF_FLAG_ERROR) ? 'E' : '-', + v4l2_field_name(buf.field), + buf.sequence, buf.bytesused, buf.timestamp.tv_sec, +@@ -1563,6 +1577,9 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + if (video_is_capture(dev) && pattern && !skip) + video_save_image(dev, &buf, pattern, i); + ++ if (video_is_capture(dev) && do_stdout && !skip) ++ video_stdout_image(dev, &buf); ++ + if (skip) + --skip; + +@@ -1577,7 +1594,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + + ret = video_queue_buffer(dev, buf.index, fill); + if (ret < 0) { +- printf("Unable to requeue buffer: %s (%d).\n", ++ fprintf(stderr, "Unable to requeue buffer: %s (%d).\n", + strerror(errno), errno); + goto done; + } +@@ -1587,7 +1604,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + video_enable(dev, 0); + + if (nframes == 0) { +- printf("No frames captured.\n"); ++ fprintf(stderr, "No frames captured.\n"); + goto done; + } + +@@ -1604,7 +1621,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes, + bps = size/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0; + fps = i/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0; + +- printf("Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n", ++ fprintf(stderr, "Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n", + i, ts.tv_sec, ts.tv_nsec/1000, fps, bps); + + done: +@@ -1616,42 +1633,42 @@ done: + + static void usage(const char *argv0) + { +- printf("Usage: %s [options] device\n", argv0); +- printf("Supported options:\n"); +- printf("-B, --buffer-type Buffer type (\"capture\", \"output\",\n"); +- printf(" \"capture-mplane\" or \"output-mplane\")\n"); +- printf("-c, --capture[=nframes] Capture frames\n"); +- printf("-C, --check-overrun Verify dequeued frames for buffer overrun\n"); +- printf("-d, --delay Delay (in ms) before requeuing buffers\n"); +- printf("-f, --format format Set the video format\n"); +- printf("-F, --file[=name] Read/write frames from/to disk\n"); +- printf("\tFor video capture devices, the first '#' character in the file name is\n"); +- printf("\texpanded to the frame sequence number. The default file name is\n"); +- printf("\t'frame-#.bin'.\n"); +- printf("-h, --help Show this help screen\n"); +- printf("-i, --input input Select the video input\n"); +- printf("-I, --fill-frames Fill frames with check pattern before queuing them\n"); +- printf("-l, --list-controls List available controls\n"); +- printf("-n, --nbufs n Set the number of video buffers\n"); +- printf("-p, --pause Pause before starting the video stream\n"); +- printf("-q, --quality n MJPEG quality (0-100)\n"); +- printf("-r, --get-control ctrl Get control 'ctrl'\n"); +- printf("-R, --realtime=[priority] Enable realtime RR scheduling\n"); +- printf("-s, --size WxH Set the frame size\n"); +- printf("-t, --time-per-frame num/denom Set the time per frame (eg. 1/25 = 25 fps)\n"); +- printf("-u, --userptr Use the user pointers streaming method\n"); +- printf("-w, --set-control 'ctrl value' Set control 'ctrl' to 'value'\n"); +- printf(" --enum-formats Enumerate formats\n"); +- printf(" --enum-inputs Enumerate inputs\n"); +- printf(" --fd Use a numeric file descriptor insted of a device\n"); +- printf(" --field Interlaced format field order\n"); +- printf(" --no-query Don't query capabilities on open\n"); +- printf(" --offset User pointer buffer offset from page start\n"); +- printf(" --requeue-last Requeue the last buffers before streamoff\n"); +- printf(" --timestamp-source Set timestamp source on output buffers [eof, soe]\n"); +- printf(" --skip n Skip the first n frames\n"); +- printf(" --sleep-forever Sleep forever after configuring the device\n"); +- printf(" --stride value Line stride in bytes\n"); ++ fprintf(stderr, "Usage: %s [options] device\n", argv0); ++ fprintf(stderr, "Supported options:\n"); ++ fprintf(stderr, "-B, --buffer-type Buffer type (\"capture\", \"output\",\n"); ++ fprintf(stderr, " \"capture-mplane\" or \"output-mplane\")\n"); ++ fprintf(stderr, "-c, --capture[=nframes] Capture frames\n"); ++ fprintf(stderr, "-C, --check-overrun Verify dequeued frames for buffer overrun\n"); ++ fprintf(stderr, "-d, --delay Delay (in ms) before requeuing buffers\n"); ++ fprintf(stderr, "-f, --format format Set the video format\n"); ++ fprintf(stderr, "-F, --file[=name] Read/write frames from/to disk\n"); ++ fprintf(stderr, "\tFor video capture devices, the first '#' character in the file name is\n"); ++ fprintf(stderr, "\texpanded to the frame sequence number. The default file name is\n"); ++ fprintf(stderr, "\t'frame-#.bin'.\n"); ++ fprintf(stderr, "-h, --help Show this help screen\n"); ++ fprintf(stderr, "-i, --input input Select the video input\n"); ++ fprintf(stderr, "-I, --fill-frames Fill frames with check pattern before queuing them\n"); ++ fprintf(stderr, "-l, --list-controls List available controls\n"); ++ fprintf(stderr, "-n, --nbufs n Set the number of video buffers\n"); ++ fprintf(stderr, "-p, --pause Pause before starting the video stream\n"); ++ fprintf(stderr, "-q, --quality n MJPEG quality (0-100)\n"); ++ fprintf(stderr, "-r, --get-control ctrl Get control 'ctrl'\n"); ++ fprintf(stderr, "-R, --realtime=[priority] Enable realtime RR scheduling\n"); ++ fprintf(stderr, "-s, --size WxH Set the frame size\n"); ++ fprintf(stderr, "-t, --time-per-frame num/denom Set the time per frame (eg. 1/25 = 25 fps)\n"); ++ fprintf(stderr, "-u, --userptr Use the user pointers streaming method\n"); ++ fprintf(stderr, "-w, --set-control 'ctrl value' Set control 'ctrl' to 'value'\n"); ++ fprintf(stderr, " --enum-formats Enumerate formats\n"); ++ fprintf(stderr, " --enum-inputs Enumerate inputs\n"); ++ fprintf(stderr, " --fd Use a numeric file descriptor insted of a device\n"); ++ fprintf(stderr, " --field Interlaced format field order\n"); ++ fprintf(stderr, " --no-query Don't query capabilities on open\n"); ++ fprintf(stderr, " --offset User pointer buffer offset from page start\n"); ++ fprintf(stderr, " --requeue-last Requeue the last buffers before streamoff\n"); ++ fprintf(stderr, " --timestamp-source Set timestamp source on output buffers [eof, soe]\n"); ++ fprintf(stderr, " --skip n Skip the first n frames\n"); ++ fprintf(stderr, " --sleep-forever Sleep forever after configuring the device\n"); ++ fprintf(stderr, " --stride value Line stride in bytes\n"); + } + + #define OPT_ENUM_FORMATS 256 +@@ -1665,6 +1682,7 @@ static void usage(const char *argv0) + #define OPT_FD 264 + #define OPT_TSTAMP_SRC 265 + #define OPT_FIELD 266 ++#define OPT_STDOUT 267 + + static struct option opts[] = { + {"buffer-type", 1, 0, 'B'}, +@@ -1677,6 +1695,7 @@ static struct option opts[] = { + {"field", 1, 0, OPT_FIELD}, + {"file", 2, 0, 'F'}, + {"fill-frames", 0, 0, 'I'}, ++ {"stdout", 0, 0, OPT_STDOUT}, + {"format", 1, 0, 'f'}, + {"help", 0, 0, 'h'}, + {"input", 1, 0, 'i'}, +@@ -1717,7 +1736,8 @@ int main(int argc, char *argv[]) + int do_list_controls = 0, do_get_control = 0, do_set_control = 0; + int do_sleep_forever = 0, do_requeue_last = 0; + int do_rt = 0; +- int no_query = 0; ++ int no_query = 0; ++ int do_stdout = 0; + char *endptr; + int c; + +@@ -1755,7 +1775,7 @@ int main(int argc, char *argv[]) + case 'B': + ret = v4l2_buf_type_from_string(optarg); + if (ret == -1) { +- printf("Bad buffer type \"%s\"\n", optarg); ++ fprintf(stderr, "Bad buffer type \"%s\"\n", optarg); + return 1; + } + video_set_buf_type(&dev, ret); +@@ -1775,7 +1795,7 @@ int main(int argc, char *argv[]) + do_set_format = 1; + info = v4l2_format_by_name(optarg); + if (info == NULL) { +- printf("Unsupported video format '%s'\n", optarg); ++ fprintf(stderr, "Unsupported video format '%s'\n", optarg); + return 1; + } + pixelformat = info->fourcc; +@@ -1812,7 +1832,7 @@ int main(int argc, char *argv[]) + case 'r': + ctrl_name = strtol(optarg, &endptr, 0); + if (*endptr != 0) { +- printf("Invalid control name '%s'\n", optarg); ++ fprintf(stderr, "Invalid control name '%s'\n", optarg); + return 1; + } + do_get_control = 1; +@@ -1826,12 +1846,12 @@ int main(int argc, char *argv[]) + do_set_format = 1; + width = strtol(optarg, &endptr, 10); + if (*endptr != 'x' || endptr == optarg) { +- printf("Invalid size '%s'\n", optarg); ++ fprintf(stderr, "Invalid size '%s'\n", optarg); + return 1; + } + height = strtol(endptr + 1, &endptr, 10); + if (*endptr != 0) { +- printf("Invalid size '%s'\n", optarg); ++ fprintf(stderr, "Invalid size '%s'\n", optarg); + return 1; + } + break; +@@ -1839,12 +1859,12 @@ int main(int argc, char *argv[]) + do_set_time_per_frame = 1; + time_per_frame.numerator = strtol(optarg, &endptr, 10); + if (*endptr != '/' || endptr == optarg) { +- printf("Invalid time per frame '%s'\n", optarg); ++ fprintf(stderr, "Invalid time per frame '%s'\n", optarg); + return 1; + } + time_per_frame.denominator = strtol(endptr + 1, &endptr, 10); + if (*endptr != 0) { +- printf("Invalid time per frame '%s'\n", optarg); ++ fprintf(stderr, "Invalid time per frame '%s'\n", optarg); + return 1; + } + break; +@@ -1854,12 +1874,12 @@ int main(int argc, char *argv[]) + case 'w': + ctrl_name = strtol(optarg, &endptr, 0); + if (*endptr != ' ' || endptr == optarg) { +- printf("Invalid control name '%s'\n", optarg); ++ fprintf(stderr, "Invalid control name '%s'\n", optarg); + return 1; + } + ctrl_value = strtol(endptr + 1, &endptr, 0); + if (*endptr != 0) { +- printf("Invalid control value '%s'\n", optarg); ++ fprintf(stderr, "Invalid control value '%s'\n", optarg); + return 1; + } + do_set_control = 1; +@@ -1873,16 +1893,16 @@ int main(int argc, char *argv[]) + case OPT_FD: + ret = atoi(optarg); + if (ret < 0) { +- printf("Bad file descriptor %d\n", ret); ++ fprintf(stderr, "Bad file descriptor %d\n", ret); + return 1; + } +- printf("Using file descriptor %d\n", ret); ++ fprintf(stderr, "Using file descriptor %d\n", ret); + video_set_fd(&dev, ret); + break; + case OPT_FIELD: + field = v4l2_field_from_string(optarg); + if (field == (enum v4l2_field)-1) { +- printf("Invalid field order '%s'\n", optarg); ++ fprintf(stderr, "Invalid field order '%s'\n", optarg); + return 1; + } + break; +@@ -1907,22 +1927,25 @@ int main(int argc, char *argv[]) + } else if (!strcmp(optarg, "soe")) { + dev.buffer_output_flags |= V4L2_BUF_FLAG_TSTAMP_SRC_SOE; + } else { +- printf("Invalid timestamp source %s\n", optarg); ++ fprintf(stderr, "Invalid timestamp source %s\n", optarg); + return 1; + } + break; + case OPT_USERPTR_OFFSET: + userptr_offset = atoi(optarg); + break; ++ case OPT_STDOUT: ++ do_stdout = 1; ++ break; + default: +- printf("Invalid option -%c\n", c); +- printf("Run %s -h for help.\n", argv[0]); ++ fprintf(stderr, "Invalid option -%c\n", c); ++ fprintf(stderr, "Run %s -h for help.\n", argv[0]); + return 1; + } + } + + if ((fill_mode & BUFFER_FILL_PADDING) && memtype != V4L2_MEMORY_USERPTR) { +- printf("Buffer overrun can only be checked in USERPTR mode.\n"); ++ fprintf(stderr, "Buffer overrun can only be checked in USERPTR mode.\n"); + return 1; + } + +@@ -1959,7 +1982,7 @@ int main(int argc, char *argv[]) + ret = get_control(&dev, ctrl_name, + get_control_type(&dev, ctrl_name), &val); + if (ret >= 0) +- printf("Control 0x%08x value %" PRId64 "\n", ctrl_name, val); ++ fprintf(stderr, "Control 0x%08x value %" PRId64 "\n", ctrl_name, val); + } + + if (do_set_control) +@@ -1970,7 +1993,7 @@ int main(int argc, char *argv[]) + video_list_controls(&dev); + + if (do_enum_formats) { +- printf("- Available formats:\n"); ++ fprintf(stderr, "- Available formats:\n"); + video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE); + video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); + video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_OUTPUT); +@@ -1979,14 +2002,14 @@ int main(int argc, char *argv[]) + } + + if (do_enum_inputs) { +- printf("- Available inputs:\n"); ++ fprintf(stderr, "- Available inputs:\n"); + video_enum_inputs(&dev); + } + + if (do_set_input) { + video_set_input(&dev, input); + ret = video_get_input(&dev); +- printf("Input %d selected\n", ret); ++ fprintf(stderr, "Input %d selected\n", ret); + } + + /* Set the video format. */ +@@ -2028,7 +2051,7 @@ int main(int argc, char *argv[]) + } + + if (do_pause) { +- printf("Press enter to start capture\n"); ++ fprintf(stderr, "Press enter to start capture\n"); + getchar(); + } + +@@ -2037,12 +2060,12 @@ int main(int argc, char *argv[]) + sched.sched_priority = rt_priority; + ret = sched_setscheduler(0, SCHED_RR, &sched); + if (ret < 0) +- printf("Failed to select RR scheduler: %s (%d)\n", ++ fprintf(stderr, "Failed to select RR scheduler: %s (%d)\n", + strerror(errno), errno); + } + + if (video_do_capture(&dev, nframes, skip, delay, filename, +- do_requeue_last, fill_mode) < 0) { ++ do_requeue_last, fill_mode, do_stdout) < 0) { + video_close(&dev); + return 1; + } +-- +1.7.9.5 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb new file mode 100644 index 000000000..a192d1a3b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "Yet Another V4L2 Test Application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "git://git.ideasonboard.org/yavta.git \ + file://0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch" +SRCREV = "7e9f28bedc1ed3205fb5164f686aea96f27a0de2" + +PV = "0.0" +PR = "r2" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +# The yavta sources include copies of the headers required to build in the +# include directory. The Makefile uses CFLAGS to include these, but since +# we override the CFLAGS then we need to add this include path back in. +CFLAGS += "-I${S}/include" + +do_install() { + install -d ${D}${bindir} + install -m 0755 yavta ${D}${bindir} +} + + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb new file mode 100644 index 000000000..cc5b84489 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8" + +SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2" +SRC_URI[md5sum] = "7bb1528f910e4d0003426c02db856063" +SRC_URI[sha256sum] = "175ee4f2effd6f51e6ec487956f41177256bf892c2e8e07de5d27ed4ee6888c5" + +inherit autotools lib_package + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch new file mode 100644 index 000000000..6ad7f2b47 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch @@ -0,0 +1,52 @@ +From dc0a5c3d2dd4e79d12a150a246a95c4dc88326f1 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 16 Aug 2011 16:04:35 +0200 +Subject: [PATCH] Upstream: not yet + +Fix configure to accept "--prefix=" (a blank prefix). + +--- + build/make/configure.sh | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +diff --git a/build/make/configure.sh b/build/make/configure.sh +index 007e020..04d5cbf 100644 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -581,6 +581,8 @@ process_common_cmdline() { + ;; + --prefix=*) + prefix="${optval}" ++ # Distinguish between "prefix not set" and "prefix set to ''" ++ prefixset=1 + ;; + --libdir=*) + libdir="${optval}" +@@ -614,13 +616,23 @@ process_cmdline() { + } + + post_process_common_cmdline() { +- prefix="${prefix:-/usr/local}" ++ if [ "$prefixset" != "1" ] ++ then ++ prefix=/usr/local ++ fi ++ ++ # Strip trailing slash + prefix="${prefix%/}" ++ + libdir="${libdir:-${prefix}/lib}" + libdir="${libdir%/}" +- if [ "${libdir#${prefix}}" = "${libdir}" ]; then +- die "Libdir ${libdir} must be a subdirectory of ${prefix}" +- fi ++ ++ case "$libdir" in ++ "${prefix}/"*) ;; ++ *) ++ die "Libdir ${libdir} must be a subdirectory of ${prefix}" ++ ;; ++ esac + } + + post_process_cmdline() { diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb new file mode 100644 index 000000000..e17cda1a9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb @@ -0,0 +1,49 @@ +SUMMARY = "VPX multi-format codec" +DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." +HOMEPAGE = "http://www.webmproject.org/code/" +BUGTRACKER = "http://code.google.com/p/webm/issues/list" +SECTION = "libs/multimedia" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" + +SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \ + file://libvpx-configure-support-blank-prefix.patch \ + " +SRC_URI[md5sum] = "a19518c8111fa93bdabdd85259162611" +SRC_URI[sha256sum] = "1c2c0c2a97fba9474943be34ee39337dee756780fc12870ba1dc68372586a819" + +# ffmpeg links with this and fails +# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' +ARM_INSTRUCTION_SET = "arm" + +CFLAGS += "-fPIC" + +export CC +export LD = "${CC}" + +VPXTARGET_armv5te = "armv5te-linux-gcc" +VPXTARGET_armv6 = "armv6-linux-gcc" +VPXTARGET_armv7a = "armv7-linux-gcc" +VPXTARGET ?= "generic-gnu" + +CONFIGUREOPTS = " \ + --target=${VPXTARGET} \ + --enable-vp9 \ + --enable-libs \ + --disable-install-docs \ + --disable-static \ + --enable-shared \ + --prefix=${prefix} \ + --libdir=${libdir} \ + --size-limit=16384x16384 \ +" + +do_configure() { + ${S}/configure ${CONFIGUREOPTS} +} + +do_install() { + oe_runmake install DESTDIR=${D} + chown -R root:root ${D} +} diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch new file mode 100644 index 000000000..da5841a13 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch @@ -0,0 +1,13 @@ +--- configure.ac.old 2005-06-03 12:53:28.000000000 +0200 ++++ configure.ac 2005-06-03 12:54:29.000000000 +0200 +@@ -25,9 +25,9 @@ + + AC_PREREQ([2.57]) + AC_INIT([spext], [1.0], [lauri.leukkunen@nokia.com], spext) ++AC_CONFIG_AUX_DIR(.) + AM_INIT_AUTOMAKE([dist-bzip2]) + AM_MAINTAINER_MODE +-AC_CONFIG_AUX_DIR(.) + + dnl PKG_CHECK_MODULES(FIXESEXT, fixesext) + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb new file mode 100644 index 000000000..526659e45 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb @@ -0,0 +1,20 @@ +LICENSE= "MIT" +SUMMARY = "X Server Nokia 770 extensions library" +SECTION = "x11/libs" +DEPENDS = "virtual/libx11 libxext" + +LIC_FILES_CHKSUM = "file://COPYING;md5=db043791349ba57ad1169e1c92477cb6" + +SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/${BPN}/${BPN}_${PV}.tar.gz \ + file://auxdir.patch;striplevel=0" +S = "${WORKDIR}/xpext-1.0" + +inherit autotools pkgconfig distro_features_check +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +# Remove runtime dependency on empty package ${PN} +RDEPENDS_${PN}-dev = "" + +SRC_URI[md5sum] = "1b0cb67b6f2bd7c4abef17648b062896" +SRC_URI[sha256sum] = "a3b06f5188fd9effd0799ae31352b3cd65cb913b964e2c1a923ffa9d3c08abbe" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch new file mode 100644 index 000000000..18bc67cdd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch @@ -0,0 +1,10 @@ +--- Xsp/xsp.pc.in~ 2009-01-07 13:06:07.000000000 +0100 ++++ Xsp/xsp.pc.in 2009-01-07 13:06:07.000000000 +0100 +@@ -6,5 +6,5 @@ + Name: Xsp + Description: X Sputnik Library + Version: @PACKAGE_VERSION@ +-Cflags: -I${includedir} @XSP_CFLAGS@ @X_CFLAGS@ +-Libs: -L${libdir} -lXsp @XSP_LIBS@ @X_LIBS@ ++Cflags: -I${includedir} ++Libs: -L${libdir} -lXsp -lX11 diff --git a/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb new file mode 100644 index 000000000..c7a068df3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb @@ -0,0 +1,15 @@ +LICENSE= "MIT" +SUMMARY = "X Server Nokia 770 extensions library" +SECTION = "x11/libs" +DEPENDS = "virtual/libx11 libxext xpext" +LIC_FILES_CHKSUM = "file://COPYING;md5=ea2bda168c508c7cd8afa567b2fcc549" +SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/xsp/${BPN}_${PV}.tar.gz \ + file://xsp-fix-pc.patch" +S = "${WORKDIR}/Xsp" + +inherit autotools pkgconfig distro_features_check +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "2a0d8d02228d4cbd28b6e07bb7c17cf5" +SRC_URI[sha256sum] = "8b722b952b64841d996c70c3278499886c81bb5012991beed5f66f4158418f59" -- cgit v1.2.3