diff options
Diffstat (limited to 'yocto-poky/meta/recipes-multimedia')
122 files changed, 2574 insertions, 3280 deletions
diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-build-Do-not-try-to-detect-cross-compiler.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-build-Do-not-try-to-detect-cross-compiler.patch deleted file mode 100644 index 583bc3daa..000000000 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-build-Do-not-try-to-detect-cross-compiler.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 17aeb3565f411e7796cabe403f92d15948a8ca95 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 21 Aug 2015 14:42:45 -0700 -Subject: [PATCH] build: Do not try to detect cross-compiler - -cross compilers are passed via path may not be a gcc based cross -compiler in such cases this check fails and try's to force gcc based -cross compiler detection, This code is a convenience that limits the -build system - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - configure.ac | 14 -------------- - 1 file changed, 14 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 3022cf8..9d77440 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -27,20 +27,6 @@ AC_PREFIX_DEFAULT(/usr) - - dnl Checks for programs. - --dnl try to gues cross-compiler if not set --if test "x$host" != "x$build" -a -z "`echo $CC | grep -e '-gcc'`"; --then -- AC_MSG_CHECKING(for cross-compiler) -- -- which ${program_prefix}gcc >/dev/null 2>&1 && CC=${program_prefix}gcc -- which ${host_cpu}-${host_os}-gcc >/dev/null 2>&1 \ -- && CC=${host_cpu}-${host_os}-gcc -- which ${host_cpu}-${host_vendor}-${host_os}-gcc >/dev/null 2>&1 \ -- && CC=${host_cpu}-${host_vendor}-${host_os}-gcc -- -- AC_MSG_RESULT($CC) --fi -- - CFLAGS="$CFLAGS -D_GNU_SOURCE" - - --- -2.1.4 - diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch new file mode 100644 index 000000000..0ead0cdaf --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch @@ -0,0 +1,35 @@ +From 3f1dba9a821b53b42001605f9a126a958804884f Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <tiwai@suse.de> +Date: Mon, 9 Nov 2015 13:37:26 +0100 +Subject: [PATCH] topology: Add missing include sys/stat.h + +Necessary for proper definitions of S_IRUSR & co. Otherwise it +results in compile errors with old glibc and uclibc: + parser.c: In function 'snd_tplg_build_file': + parser.c:262: error: 'S_IRUSR' undeclared (first use in this function) + parser.c:262: error: (Each undeclared identifier is reported only once + parser.c:262: error: for each function it appears in.) + +Upstream-Status: Backport + +Signed-off-by: Takashi Iwai <tiwai@suse.de> +Signed-off-by: Maxin B. John <maxin.john@intel.com> +--- + src/topology/parser.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/topology/parser.c b/src/topology/parser.c +index 80a0ae0..18bb9c7 100644 +--- a/src/topology/parser.c ++++ b/src/topology/parser.c +@@ -16,6 +16,7 @@ + Liam Girdwood <liam.r.girdwood@linux.intel.com> + */ + ++#include <sys/stat.h> + #include "list.h" + #include "tplg_local.h" + +-- +2.4.0 + diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch index 75a6eb8a3..795e48ab2 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch @@ -1,4 +1,4 @@ -From e33357b59a10d44e9bec5d24100ce23ca300cc79 Mon Sep 17 00:00:00 2001 +From 3408f8e78776b12f131e433749721602f87e0a70 Mon Sep 17 00:00:00 2001 From: "Hong H. Pham" <hong.pham@windriver.com> Date: Fri, 29 Aug 2014 17:13:55 +0300 Subject: [PATCH] Check if wordexp function is supported @@ -18,15 +18,15 @@ Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index b8353a0..773b72f 100644 +index 9490d39..b08a90a 100644 --- a/configure.ac +++ b/configure.ac -@@ -311,7 +311,10 @@ fi +@@ -295,7 +295,10 @@ fi AC_SUBST(ALSA_DEPLIBS) dnl Check for headers --AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h]) -+AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h], +-AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h sys/shm.h]) ++AC_CHECK_HEADERS([wordexp.h endian.h sys/endian.h sys/shm.h], + dnl Make sure wordexp is supported by the C library + AC_CHECK_FUNCS([wordexp]) +) @@ -34,7 +34,7 @@ index b8353a0..773b72f 100644 dnl Check for resmgr support... AC_MSG_CHECKING(for resmgr support) diff --git a/src/userfile.c b/src/userfile.c -index 3a73836..b8ce809 100644 +index 72779da..e9d13e6 100644 --- a/src/userfile.c +++ b/src/userfile.c @@ -32,7 +32,7 @@ @@ -47,5 +47,5 @@ index 3a73836..b8ce809 100644 #include <assert.h> int snd_user_file(const char *file, char **result) -- -1.9.1 +2.6.4 diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..161619b27 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,183 @@ +From 7dcf46969e85c881c901df4b49309e9091cad16a Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 9 Feb 2016 14:01:18 -0800 +Subject: [PATCH] avoid including <sys/poll.h> directly + +Fixes compiler warnings when building with musl libc. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + aserver/aserver.c | 2 +- + include/asoundlib-head.h | 2 +- + include/asoundlib.h | 2 +- + include/local.h | 2 +- + src/control/control.c | 2 +- + src/control/control_shm.c | 2 +- + src/pcm/pcm_direct.c | 2 +- + src/pcm/pcm_mmap.c | 2 +- + src/pcm/pcm_share.c | 2 +- + src/pcm/pcm_shm.c | 2 +- + src/seq/seq.c | 2 +- + src/shmarea.c | 2 +- + 12 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/aserver/aserver.c b/aserver/aserver.c +index 1579da7..ef64248 100644 +--- a/aserver/aserver.c ++++ b/aserver/aserver.c +@@ -20,7 +20,7 @@ + + #include <sys/shm.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/un.h> + #include <sys/uio.h> + #include <stdio.h> +diff --git a/include/asoundlib-head.h b/include/asoundlib-head.h +index 1ec611e..21e32c6 100644 +--- a/include/asoundlib-head.h ++++ b/include/asoundlib-head.h +@@ -35,6 +35,6 @@ + #include <string.h> + #include <fcntl.h> + #include <assert.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <errno.h> + #include <stdarg.h> +diff --git a/include/asoundlib.h b/include/asoundlib.h +index 3c2766e..a546194 100644 +--- a/include/asoundlib.h ++++ b/include/asoundlib.h +@@ -35,7 +35,7 @@ + #include <string.h> + #include <fcntl.h> + #include <assert.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <errno.h> + #include <stdarg.h> + #include <endian.h> +diff --git a/include/local.h b/include/local.h +index b429f5d..e05898f 100644 +--- a/include/local.h ++++ b/include/local.h +@@ -47,7 +47,7 @@ + #error Header defining endianness not defined + #endif + #include <stdarg.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/types.h> + #include <errno.h> + #include <linux/types.h> +diff --git a/src/control/control.c b/src/control/control.c +index 4a28cf6..071c5db 100644 +--- a/src/control/control.c ++++ b/src/control/control.c +@@ -48,7 +48,7 @@ and IEC958 structure. + #include <string.h> + #include <fcntl.h> + #include <signal.h> +-#include <sys/poll.h> ++#include <poll.h> + #include "control_local.h" + + /** +diff --git a/src/control/control_shm.c b/src/control/control_shm.c +index bd07d4a..9a2e268 100644 +--- a/src/control/control_shm.c ++++ b/src/control/control_shm.c +@@ -27,7 +27,7 @@ + #include <fcntl.h> + #include <sys/shm.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/un.h> + #include <sys/uio.h> + #include <sys/mman.h> +diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c +index fd3877c..52ac093 100644 +--- a/src/pcm/pcm_direct.c ++++ b/src/pcm/pcm_direct.c +@@ -30,7 +30,7 @@ + #include <grp.h> + #include <sys/ioctl.h> + #include <sys/mman.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/shm.h> + #include <sys/sem.h> + #include <sys/wait.h> +diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c +index 5c4fbe1..2cfa7db 100644 +--- a/src/pcm/pcm_mmap.c ++++ b/src/pcm/pcm_mmap.c +@@ -22,7 +22,7 @@ + #include <stdio.h> + #include <malloc.h> + #include <string.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/mman.h> + #ifdef HAVE_SYS_SHM_H + #include <sys/shm.h> +diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c +index 5d8aaf2..21a57fc 100644 +--- a/src/pcm/pcm_share.c ++++ b/src/pcm/pcm_share.c +@@ -34,7 +34,7 @@ + #include <signal.h> + #include <math.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <pthread.h> + #include "pcm_local.h" + +diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c +index a815ac6..4ee958c 100644 +--- a/src/pcm/pcm_shm.c ++++ b/src/pcm/pcm_shm.c +@@ -36,7 +36,7 @@ + #include <sys/ioctl.h> + #include <sys/shm.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/un.h> + #include <sys/mman.h> + #include <netinet/in.h> +diff --git a/src/seq/seq.c b/src/seq/seq.c +index 620ca3f..681cef1 100644 +--- a/src/seq/seq.c ++++ b/src/seq/seq.c +@@ -777,7 +777,7 @@ void event_filter(snd_seq_t *seq, snd_seq_event_t *ev) + + */ + +-#include <sys/poll.h> ++#include <poll.h> + #include "seq_local.h" + + /**************************************************************************** +diff --git a/src/shmarea.c b/src/shmarea.c +index 9843aa8..eaa71f0 100644 +--- a/src/shmarea.c ++++ b/src/shmarea.c +@@ -27,7 +27,7 @@ + #include <malloc.h> + #include <string.h> + #include <errno.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/mman.h> + #include <sys/shm.h> + #include "list.h" +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.0.29.bb b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb index 730f42740..a73da2882 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.0.29.bb +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb @@ -16,10 +16,11 @@ ARM_INSTRUCTION_SET = "arm" SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/${BP}.tar.bz2 \ file://Check-if-wordexp-function-is-supported.patch \ - file://0001-build-Do-not-try-to-detect-cross-compiler.patch \ + file://avoid-including-sys-poll.h-directly.patch \ + file://0001-topology-Add-missing-include-sys-stat.h.patch \ " -SRC_URI[md5sum] = "de67e0eca72474d6b1121037dafe1024" -SRC_URI[sha256sum] = "73043c35eb9636be0f4af6a240235c213f12a25feb1f04aeeac8cb7e30fcbdd0" +SRC_URI[md5sum] = "69515ca73c3c4a212ef45160dea846c1" +SRC_URI[sha256sum] = "dfde65d11e82b68f82e562ab6228c1fb7c78854345d3c57e2c68a9dd3dae1f15" inherit autotools pkgconfig @@ -32,7 +33,6 @@ EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no " PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc" FILES_${PN} += "${libdir}/${BPN}/smixer/*.so" -FILES_${PN}-dbg += "${libdir}/${BPN}/smixer/.debug" FILES_${PN}-dev += "${libdir}/${BPN}/smixer/*.la" FILES_libasound = "${libdir}/libasound.so.*" FILES_alsa-server = "${bindir}/*" diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch deleted file mode 100644 index c70c72cb7..000000000 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d28c655be3ac4fcb8024555983884f832ee18787 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 29 May 2015 15:17:30 -0700 -Subject: [PATCH] arcam-av: Include sys/select.h for fd_set definition - -fixes build errors on non-glibc based systems - -arcam-av/arcam_av.c:389:2: error: unknown type name 'fd_set' - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted - - arcam-av/arcam_av.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arcam-av/arcam_av.c b/arcam-av/arcam_av.c -index 0491fc6..fff96f9 100644 ---- a/arcam-av/arcam_av.c -+++ b/arcam-av/arcam_av.c -@@ -31,6 +31,7 @@ - #include <unistd.h> - - #include <sys/ipc.h> -+#include <sys/select.h> - #include <sys/shm.h> - #include <sys/stat.h> - #include <sys/stat.h> --- -2.1.4 - diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch deleted file mode 100644 index e5199fb85..000000000 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-include-speexdsp_types.h-not-speex_types.h.patch +++ /dev/null @@ -1,71 +0,0 @@ -From ca41e96a49a568128354f65f90a769debf5435f1 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> -Date: Thu, 9 Jul 2015 11:58:12 +0300 -Subject: [PATCH] include speexdsp_types.h, not speex_types.h - -Speexdsp was separated from speex in 1.2rc2. speex_types.h is not -shipped by speexdsp, so alsa-plugins shouldn't use that file. speexdsp -has speexdsp_types.h, which has the same contents as speex_types.h. - -speexdsp_types.h is a new file introduced in 1.2rc2, so this change -bumps the minimum supported speexdsp version. The version check in -configure.ac will actually break if speexdsp 1.2 ever gets released, -because pkg-config thinks that "1.2" < "1.2rc2", but I think it's -useful to fail if the installed speexdsp version is 1.2rc1 (which I -believe is very common on current distributions). If a non-rc version -of speexdsp will ever get released, I hope version number 1.2 will be -skipped for this reason. (A non-rc version seems unlikely, since -1.2rc1 was released years ago, so it's pretty likely that the project -is stuck on so called "release candidates" forever...) - -Upstream-Status: Submitted (http://thread.gmane.org/gmane.linux.alsa.devel/141149) - -Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> ---- - configure.ac | 2 +- - pph/arch.h | 2 +- - pph/speex_resampler.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 902a6d7..c554d22 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -108,7 +108,7 @@ AC_SUBST(AVCODEC_CFLAGS) - AC_SUBST(AVCODEC_LIBS) - AC_SUBST(AVCODEC_HEADER) - --PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""]) -+PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2rc2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""]) - AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes") - - AC_ARG_WITH([speex], -diff --git a/pph/arch.h b/pph/arch.h -index e2d731a..a07d0d9 100644 ---- a/pph/arch.h -+++ b/pph/arch.h -@@ -36,7 +36,7 @@ - #define ARCH_H - - #ifndef OUTSIDE_SPEEX --#include "speex/speex_types.h" -+#include "speex/speexdsp_types.h" - #endif - - #define ABS(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute integer value. */ -diff --git a/pph/speex_resampler.h b/pph/speex_resampler.h -index c44fbcd..aa85abb 100644 ---- a/pph/speex_resampler.h -+++ b/pph/speex_resampler.h -@@ -82,7 +82,7 @@ - - #else /* OUTSIDE_SPEEX */ - --#include "speex/speex_types.h" -+#include "speex/speexdsp_types.h" - - #endif /* OUTSIDE_SPEEX */ - --- -1.9.3 - diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch new file mode 100644 index 000000000..8e5b6a2a2 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch @@ -0,0 +1,35 @@ +From 4350314c941489833a8baa930e16512e55f72a13 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen <tanuk@iki.fi> +Date: Wed, 27 Jan 2016 13:22:38 +0200 +Subject: [PATCH] pph: include config.h from rate_speexrate.c + +Fixes compilation against libspeexdsp 1.2rc3. + +rate_speexrate.c includes speex_resampler.h, which depends on config.h +by referencing the HAVE_SPEEX_SPEEXDSP_TYPES_H macro. AFAIK it's not +a good idea to include config.h from headers (I don't know/remember +why, though), which is why I include config.h from rate_speexrate.c +instead of speex_resampler.h. + +Upstream-Status: Accepted [expected in 1.1.1] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> +--- + pph/rate_speexrate.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pph/rate_speexrate.c b/pph/rate_speexrate.c +index 0a1325c..8fc4cef 100644 +--- a/pph/rate_speexrate.c ++++ b/pph/rate_speexrate.c +@@ -28,6 +28,7 @@ + POSSIBILITY OF SUCH DAMAGE. + */ + ++#include "config.h" + #include <stdio.h> + #include <alsa/asoundlib.h> + #include <alsa/pcm_rate.h> +-- +2.7.0.rc3 + diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb index c928618c8..fec657530 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb @@ -1,4 +1,4 @@ -DESCRIPTION = "ALSA Plugins" +SUMMARY = "ALSA Plugins" HOMEPAGE = "http://alsa-project.org" SECTION = "multimedia" @@ -8,21 +8,23 @@ SECTION = "multimedia" # build system, and doesn't affect the licensing of the build result. # # The samplerate plugin source code is licensed under GPLv2+ to be consistent -# with the libsamplerate license. +# with the libsamplerate license. However, if the licensee has a commercial +# license for libsamplerate, the samplerate plugin may be used under the terms +# of LGPLv2.1 like the rest of the plugins. LICENSE = "LGPLv2.1 & GPLv2+" LIC_FILES_CHKSUM = "\ file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \ file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ file://m4/attributes.m4;endline=33;md5=b25958da44c02231e3641f1bccef53eb \ - file://rate/rate_samplerate.c;endline=19;md5=f3d3ce0b189846a486517d97a854b276 \ + file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ " -SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2 \ - file://0001-arcam-av-Include-sys-select.h-for-fd_set-definition.patch \ - file://0001-include-speexdsp_types.h-not-speex_types.h.patch \ +SRC_URI = "\ + ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2 \ + file://0001-pph-include-config.h-from-rate_speexrate.c.patch \ " -SRC_URI[md5sum] = "a66797b4471e3cbe96575207bfbe252c" -SRC_URI[sha256sum] = "325d85cac285f632b83e0191ae3f348bad03c1f007b937042f164abb81ea6532" +SRC_URI[md5sum] = "b123e42ed881b9adbc99e4040f257c39" +SRC_URI[sha256sum] = "3b83c329953bef99f5fe25ae04ec4a455fe6514939f3b45a5321966652b2c9ee" DEPENDS += "alsa-lib" @@ -87,8 +89,6 @@ INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavcrate = "dev-so" INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so" INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so" -FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" - # 50-pulseaudio.conf defines a device named "pulse" that applications can use # if they explicitly want to use the PulseAudio plugin. # 99-pulseaudio-default.conf configures the "default" device to use the diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch index 59391d690..319f25d27 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch @@ -20,7 +20,7 @@ diff -ruN alsa-tools-1.0.24.1-orig//Makefile alsa-tools-1.0.24.1/Makefile --- alsa-tools-1.0.24.1-orig//Makefile 2011-07-06 11:27:40.207665000 +0800 +++ alsa-tools-1.0.24.1/Makefile 2011-07-14 15:08:08.877665009 +0800 @@ -1,8 +1,8 @@ - VERSION = 1.0.29 + VERSION = 1.1.0 TOP = . -SUBDIRS = as10k1 envy24control hdsploader hdspconf hdspmixer \ +SUBDIRS = as10k1 envy24control \ diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch index c95760961..9bd6848ed 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch @@ -14,7 +14,7 @@ index 2457a1c..72346d9 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ - VERSION = 1.0.29 + VERSION = 1.1.0 TOP = . -SUBDIRS = as10k1 envy24control \ - mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \ diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.0.29.bb b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb index fdf396e3f..9e633f1f7 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.0.29.bb +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb @@ -16,8 +16,8 @@ SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/${BP}.tar.bz2 \ file://0001-as10k1-Make-output_tram_line-static-inline.patch \ " -SRC_URI[md5sum] = "f339a3cd24f748c9d007bdff0e98775b" -SRC_URI[sha256sum] = "94abf0ab5a73f0710c70d4fb3dc1003af5bae2d2ed721d59d245b41ad0f2fbd1" +SRC_URI[md5sum] = "b476a5afaa3ea3230855553ad59d259d" +SRC_URI[sha256sum] = "7d34558c590a50294b36576d257316a1ac5cd951eb8cd7d330e09f8cc757ab51" inherit autotools-brokensep pkgconfig diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.0.29.bb b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb index a98f9b90b..a98f9b90b 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.0.29.bb +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch new file mode 100644 index 000000000..b6d7d4f0d --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch @@ -0,0 +1,153 @@ +From 28c29dece6c434e7d3d01e805555ba7ddf6fba65 Mon Sep 17 00:00:00 2001 +From: "Lu, Han" <han.lu@intel.com> +Date: Wed, 3 Feb 2016 14:20:33 +0800 +Subject: [PATCH] alsabat: rename to avoid naming conflict + +alsa-utils as well as bareos-bat (as well a some Bacula packages) +all contain a program called /usr/bin/bat, which causes conflicts on +various distributions ("basic audio tester" vs "bareos administration +tool"("bacula administration tool")). +Rename to avoid conflict. + +Signed-off-by: Lu, Han <han.lu@intel.com> +Signed-off-by: Takashi Iwai <tiwai@suse.de> + +Upstream-Status: Accepted [expected in version 1.1.1] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> +--- + bat/Makefile.am | 10 +++++----- + bat/{bat.1 => alsabat.1} | 43 ++++++++++++++++++++++--------------------- + bat/bat.c | 2 +- + 3 files changed, 28 insertions(+), 27 deletions(-) + rename bat/{bat.1 => alsabat.1} (72%) + +diff --git a/bat/Makefile.am b/bat/Makefile.am +index 842ae6b..985f00c 100644 +--- a/bat/Makefile.am ++++ b/bat/Makefile.am +@@ -1,9 +1,9 @@ +-bin_PROGRAMS = bat +-man_MANS = bat.1 ++bin_PROGRAMS = alsabat ++man_MANS = alsabat.1 + +-EXTRA_DIST = bat.1 ++EXTRA_DIST = alsabat.1 + +-bat_SOURCES = \ ++alsabat_SOURCES = \ + bat.c \ + common.c \ + analyze.c \ +@@ -21,4 +21,4 @@ noinst_HEADERS = \ + AM_CPPFLAGS = \ + -Wall -I$(top_srcdir)/include + +-bat_LDADD = @FFTW_LIB@ ++alsabat_LDADD = @FFTW_LIB@ +diff --git a/bat/bat.1 b/bat/alsabat.1 +similarity index 72% +rename from bat/bat.1 +rename to bat/alsabat.1 +index e00fc27..8d0b9c0 100644 +--- a/bat/bat.1 ++++ b/bat/alsabat.1 +@@ -1,23 +1,23 @@ +-.TH BAT 1 "20th October 2015" ++.TH ALSABAT 1 "20th October 2015" + .SH NAME +-bat \- command\-line sound tester for ALSA sound card driver ++alsabat \- command\-line sound tester for ALSA sound card driver + + .SH SYNOPSIS +-\fBbat\fP [\fIflags\fP] ++\fBalsabat\fP [\fIflags\fP] + + .SH DESCRIPTION +-\fBBAT(Basic Audio Tester)\fP is a simple command\-line utility intended +-to help automate audio driver and sound server testing with little human +-interaction. BAT can be used to test audio quality, stress test features +-and test audio before and after PM state changes. ++\fBALSABAT(ALSA Basic Audio Tester)\fP is a simple command\-line utility ++intended to help automate audio driver and sound server testing with little ++human interaction. ALSABAT can be used to test audio quality, stress test ++features and test audio before and after PM state changes. + +-BAT's design is relatively simple. BAT plays an audio stream and captures +-the same stream in either a digital or analog loop back. It then compares +-the captured stream using a FFT to the original to determine if the test +-case passes or fails. ++ALSABAT's design is relatively simple. ALSABAT plays an audio stream and ++captures the same stream in either a digital or analog loop back. It then ++compares the captured stream using a FFT to the original to determine if ++the test case passes or fails. + +-BAT can either run wholly on the target machine being tested (standalone +-mode) or can run as a client/server mode where by bat client runs on the ++ALSABAT can either run wholly on the target machine being tested (standalone ++mode) or can run as a client/server mode where by alsabat client runs on the + target and runs as a server on a separate tester machine. The client/server + mode still requires some manual interaction for synchronization, but this + is actively being developed for future releases. +@@ -93,8 +93,8 @@ Frequencies with amplitude larger than threshold will be recognized as a + peak, and the frequency with largest peak value will be recognized as a + detected frequency. + .br +-BAT then compares the detected frequency to target frequency, to decide +-if the detecting passes or fails. ++ALSABAT then compares the detected frequency to target frequency, to ++decide if the detecting passes or fails. + .br + The default value is 3.0. + .TP +@@ -117,18 +117,19 @@ Target WAV file to save capture test content. + .TP + \fI\-\-local\fP + Internal loopback mode. +-Playback, capture and analysis internal to BAT only. This is intended for +-developers to test new BAT features as no audio is routed outside of BAT. ++Playback, capture and analysis internal to ALSABAT only. This is intended ++for developers to test new ALSABAT features as no audio is routed outside ++of ALSABAT. + + .SH EXAMPLES + + .TP +-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR ++\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR + Generate and play a sine wave of 250 Hertz with 2 channel and S32_LE format, + and then capture and analyze. + + .TP +-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR ++\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR + Play the RIFF WAV file "500Hz.wav" which contains 500 Hertz waveform LPCM + data, and then capture and analyze. + +@@ -152,7 +153,7 @@ Currently only support RIFF WAV format with PCM data. Please report any bugs to + the alsa-devel mailing list. + + .SH AUTHOR +-\fBbat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard Gautier +-<bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>. ++\fBalsabat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard ++Gautier <bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>. + This document is by Liam Girdwood <liam.r.girdwood@linux.intel.com> and Han Lu + <han.lu@intel.com>. +diff --git a/bat/bat.c b/bat/bat.c +index 086b9fa..ddb60b7 100644 +--- a/bat/bat.c ++++ b/bat/bat.c +@@ -272,7 +272,7 @@ static void test_capture(struct bat *bat) + static void usage(struct bat *bat) + { + fprintf(bat->log, +-_("Usage: bat [-options]...\n" ++_("Usage: alsabat [-options]...\n" + "\n" + " -h, --help this help\n" + " -D pcm device for both playback and capture\n" +-- +2.7.0 + diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch index e99dd515f..e578dfe74 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch @@ -1,4 +1,4 @@ -From 43a56fa36a12f09ccd78b3cf5e6ae197fcab501f Mon Sep 17 00:00:00 2001 +From 8c3e0ef9625066c2bb67ee3d2b8cd37fd44eadac Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Fri, 29 Aug 2014 18:58:56 +0300 Subject: [PATCH] alsactl: don't let systemd unit restore the volume when @@ -12,16 +12,20 @@ Upstream-Status: Pending Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> + +Rebased on 1.1.0. + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> --- alsactl/Makefile.am | 7 ++++--- alsactl/alsa-restore.service.in | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am -index 47f06e9..b728c06 100644 +index cac8094..ff865dc 100644 --- a/alsactl/Makefile.am +++ b/alsactl/Makefile.am -@@ -43,9 +43,10 @@ install-data-hook: +@@ -38,9 +38,10 @@ install-data-hook: endif edit = \ @@ -36,17 +40,17 @@ index 47f06e9..b728c06 100644 alsa-state.service: alsa-state.service.in diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in -index 245a439..b017854 100644 +index 2884098..bac3ccc 100644 --- a/alsactl/alsa-restore.service.in +++ b/alsactl/alsa-restore.service.in -@@ -10,6 +10,7 @@ DefaultDependencies=no +@@ -8,6 +8,7 @@ Description=Save/Restore Sound Card State + ConditionPathExists=!@daemonswitch@ + ConditionPathExistsGlob=/dev/snd/control* After=alsa-state.service - Before=shutdown.target - Conflicts=shutdown.target +ConditionPathExists=@localstatedir@/lib/alsa/asound.state [Service] Type=oneshot -- -1.9.1 +2.7.0.rc3 diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch deleted file mode 100644 index 5df004aea..000000000 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/alsa-utils-aplay-interrupt-signal-handling.patch +++ /dev/null @@ -1,48 +0,0 @@ -Upstream-Status: Pending - -aplay/arecord (alsa-utils v1.0.28) cannot interrupt streaming -via CTRL-C. Fixed the issue by reverting buggy patches and -properly handling 'in_aborting' flag in appropriate functions. - -Signed-off-by: Anant Agrawal <Anant_Agrawal@mentor.com> -Signed-off-by: Mikhail Durnev <mikhail_durnev@mentor.com> - ---- a/aplay/aplay.c 2014-05-19 16:25:14.000000000 +0530 -+++ b/aplay/aplay.c 2014-05-20 15:17:14.364823007 +0530 -@@ -392,14 +392,22 @@ - putchar('\n'); - if (!quiet_mode) - fprintf(stderr, _("Aborted by signal %s...\n"), strsignal(sig)); -- if (handle) -+ if (stream == SND_PCM_STREAM_CAPTURE) { -+ if (fmt_rec_table[file_type].end) { -+ fmt_rec_table[file_type].end(fd); -+ fd = -1; -+ } -+ stream = -1; -+ } -+ if (fd > 1) { -+ close(fd); -+ fd = -1; -+ } -+ if (handle && sig != SIGABRT) { - snd_pcm_abort(handle); -- if (sig == SIGABRT) { -- /* do not call snd_pcm_close() and abort immediately */ - handle = NULL; -- prg_exit(EXIT_FAILURE); - } -- signal(sig, signal_handler); -+ prg_exit(EXIT_FAILURE); - } - - /* call on SIGUSR1 signal. */ -@@ -2096,7 +2104,7 @@ - ssize_t result = count, r; - size_t size; - -- while (count > 0) { -+ while (count > 0 && !in_aborting) { - size = count; - if (size > chunk_bytes - buffer_pos) - size = chunk_bytes - buffer_pos; diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch deleted file mode 100644 index f67283db7..000000000 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/assume-storing-is-success-if-not-sound-card-device.patch +++ /dev/null @@ -1,34 +0,0 @@ -[PATCH] assume storing is success if not sound card device - -Upstream-Statue: Pending - -Systemd will report failure when run alsa-*, if the machine has not the -sound card. To void this annoyed message, alsa-restore/alsa-state ignore -all the exit codes by prefixing "-" in ExecStart, like: - - alsa-utils-1.0.29$ grep "=-" ./ -r|grep service.in - ./alsactl/alsa-restore.service.in:ExecStart=-@sbindir@/alsactl restore - ./alsactl/alsa-state.service.in:ExecStart=-@sbindir@/alsactl -s -n 19 -c rdaemon - ./alsactl/alsa-state.service.in:ExecStop=-@sbindir@/alsactl -s kill save_and_quit - lsa-utils-1.0.29$ - -But alsa-store.service.in is missing, and better solution is to ignore -the exit code 19 which means not sound card device, not all exit code - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - alsactl/alsa-store.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/alsactl/alsa-store.service.in b/alsactl/alsa-store.service.in -index f1a56bb..68ca529 100644 ---- a/alsactl/alsa-store.service.in -+++ b/alsactl/alsa-store.service.in -@@ -13,3 +13,4 @@ Before=shutdown.target - Type=oneshot - ExecStart=@sbindir@/alsactl store - StandardOutput=syslog -+SuccessExitStatus=0 19 --- -1.9.1 - diff --git a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.0.29.bb b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb index 97fe4b2fe..af4048818 100644 --- a/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.0.29.bb +++ b/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb @@ -8,17 +8,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ DEPENDS = "alsa-lib ncurses libsamplerate0" PACKAGECONFIG ??= "udev" +PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftw" PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev" PACKAGECONFIG[xmlto] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \ file://0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch \ - file://alsa-utils-aplay-interrupt-signal-handling.patch \ - file://assume-storing-is-success-if-not-sound-card-device.patch \ + file://0001-alsabat-rename-to-avoid-naming-conflict.patch \ " -SRC_URI[md5sum] = "6b289bf874c4c9a63f4b3973093dd404" -SRC_URI[sha256sum] = "5160058f3e14483ced5de919dd473f93932059454530a9b7ef97dcabd6833e9b" +SRC_URI[md5sum] = "b9d6102fbbd0b68040bb77023ed30c0c" +SRC_URI[sha256sum] = "3b1c3135b76e14532d3dd23fb15759ddd7daf9ffbc183f7a9a0a3a86374748f1" # lazy hack. needs proper fixing in gettext.m4, see # http://bugs.openembedded.org/show_bug.cgi?id=2348 @@ -32,7 +32,9 @@ inherit autotools gettext pkgconfig # ipk depends on them. ALSA_UTILS_PKGS = "\ + ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \ alsa-utils-alsamixer \ + alsa-utils-alsatplg \ alsa-utils-midi \ alsa-utils-aplay \ alsa-utils-amixer \ @@ -50,6 +52,8 @@ PACKAGES += "${ALSA_UTILS_PKGS}" RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}" FILES_${PN} = "" +FILES_alsa-utils-alsabat = "${bindir}/alsabat" +FILES_alsa-utils-alsatplg = "${bindir}/alsatplg" FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord" FILES_alsa-utils-amixer = "${bindir}/amixer" FILES_alsa-utils-alsamixer = "${bindir}/alsamixer" @@ -63,7 +67,8 @@ FILES_alsa-utils-aseqdump = "${bindir}/aseqdump" FILES_alsa-utils-alsaloop = "${bindir}/alsaloop" FILES_alsa-utils-alsaucm = "${bindir}/alsaucm" - +SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver" +SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel" SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA" SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings" SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings" diff --git a/yocto-poky/meta/recipes-multimedia/libav/libav.inc b/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb index d3f4b1b55..1dfbb9b04 100644 --- a/yocto-poky/meta/recipes-multimedia/libav/libav.inc +++ b/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb @@ -1,10 +1,8 @@ -SUMMARY = "Open source audio and video processing tools and librairies" -DESCRIPTION = "Libav is a friendly and community-driven effort to provide its users \ - with a set of portable, functional and high-performance libraries for \ - dealing with multimedia formats of all sorts. It originates from the \ - FFmpeg codebase, but goes its own way these days, providing its users \ - with reliable releases and a clear vision how to go forward." -HOMEPAGE = "http://libav.org/" +SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." +DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \ + mux, demux, stream, filter and play pretty much anything that humans and machines \ + have created. It supports the most obscure ancient formats up to the cutting edge." +HOMEPAGE = "https://www.ffmpeg.org/" SECTION = "libs" LICENSE = "GPLv2+" @@ -15,31 +13,44 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" -SRC_URI = "http://libav.org/releases/${BP}.tar.xz" +SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz" -# Provides ffmpeg compat, see http://libav.org/about.html -PROVIDES = "ffmpeg" +SRC_URI[md5sum] = "ef9b6634bb7c920efc940b4d55adf7b2" +SRC_URI[sha256sum] = "12f32cee41c74435f608c30793fd616bdf53467bb513278e273e135a4c58e470" +# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 ARM_INSTRUCTION_SET = "arm" +# Should be API compatible with libav (which was a fork of ffmpeg) +# libpostproc was previously packaged from a separate recipe +PROVIDES = "libav libpostproc" + DEPENDS = "alsa-lib zlib libogg yasm-native" inherit autotools pkgconfig -B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" - -FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" -BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" - -EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" -EXTRA_FFCONF ?= "" - -PACKAGECONFIG ??= "bzip2 x264 theora ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" -PACKAGECONFIG[bzip2] = "--enable-bzlib,--disable-bzlib,bzip2" +PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \ + bzlib gpl lzma theora x264 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xv', '', d)}" + +# libraries to build in addition to avutil +PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice" +PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter" +PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec" +PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" +PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" +PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" +PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" + +# features to support +PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac" +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" +PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger" @@ -49,22 +60,20 @@ PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto virtual/libsdl" PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" +PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" # Check codecs that require --enable-nonfree USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'faac', 'openssl' ], 'yes', '', d)}" EXTRA_OECONF = " \ + --disable-stripping \ + --enable-pic \ --enable-shared \ --enable-pthreads \ - --enable-gpl \ ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ - --enable-avfilter \ \ --cross-prefix=${TARGET_PREFIX} \ - --prefix=${prefix} \ \ - --enable-avserver \ - --enable-avplay \ --ld="${CCLD}" \ --arch=${TARGET_ARCH} \ --target-os="linux" \ @@ -76,36 +85,25 @@ EXTRA_OECONF = " \ ${EXTRA_FFCONF} \ --libdir=${libdir} \ --shlibdir=${libdir} \ + --datadir=${datadir}/ffmpeg \ " do_configure() { - # We don't have TARGET_PREFIX-pkgconfig - sed -i '/pkg_config_default="${cross_prefix}${pkg_config_default}"/d' ${S}/configure - mkdir -p ${B} - cd ${B} ${S}/configure ${EXTRA_OECONF} - sed -i -e s:Os:O4:g ${B}/config.h -} - -do_install_append() { - install -m 0644 ${S}/libavfilter/*.h ${D}${includedir}/libavfilter/ } -PACKAGES += "${PN}-vhook-dbg ${PN}-vhook ffmpeg-x264-presets" -PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|swscale).*" - -RSUGGESTS_${PN} = "mplayer" -FILES_${PN} = "${bindir}" -FILES_${PN}-dev = "${includedir}/${PN}" - -FILES_${PN}-vhook = "${libdir}/vhook" -FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug" - -FILES_ffmpeg-x264-presets = "${datadir}/*.avpreset" - -LEAD_SONAME = "libavcodec.so" +PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util|resample)|swscale|swresample|postproc).*" -FILES_${PN}-dev = "${includedir}" +# ffmpeg disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" +INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" +INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" +INSANE_SKIP_${MLPREFIX}libavformat = "textrel" +INSANE_SKIP_${MLPREFIX}libavutil = "textrel" +INSANE_SKIP_${MLPREFIX}libavresample = "textrel" +INSANE_SKIP_${MLPREFIX}libswscale = "textrel" +INSANE_SKIP_${MLPREFIX}libswresample = "textrel" +INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" python populate_packages_prepend() { av_libdir = d.expand('${libdir}') @@ -138,9 +136,4 @@ python populate_packages_prepend() { prepend=True, allow_links=True) - if d.getVar('TARGET_ARCH', True) in [ 'i586', 'i686' ]: - # libav can't be build with -fPIC for 32-bit x86 - pkgs = d.getVar('PACKAGES', True).split() - for pkg in pkgs: - d.appendVar('INSANE_SKIP_%s' % pkg, ' textrel') } diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch new file mode 100644 index 000000000..2cab87f9e --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch @@ -0,0 +1,42 @@ +From 90916f96262fa7b27a0a99788c69f9fd6df11000 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 24 Nov 2015 16:46:27 +0200 +Subject: [PATCH] introspection.m4: prefix pkgconfig paths with + PKG_CONFIG_SYSROOT_DIR + +We can't use our tweaked introspection.m4 from gobject-introspection tarball +because gstreamer also defines INTROSPECTION_INIT in its introspection.m4, which +is later supplied to g-ir-scanner. + +Upstream-Status: Pending [review on oe-core list] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + common/m4/introspection.m4 | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4 +index 162be57..217a6ae 100644 +--- a/common/m4/introspection.m4 ++++ b/common/m4/introspection.m4 +@@ -54,14 +54,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` ++ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` ++ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` ++ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + INTROSPECTION_INIT="extern void gst_init(gint*,gchar**); gst_init(NULL,NULL);" + fi + AC_SUBST(INTROSPECTION_SCANNER) +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb index 985024256..8129169c5 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb @@ -1,5 +1,4 @@ -SUMMARY="GStreamer playback helper library and examples" - +SUMMARY = "GStreamer playback helper library and examples" LICENSE = "LGPL-2.0+" LIC_FILES_CHKSUM = "file://lib/gst/player/gstplayer.c;beginline=1;endline=19;md5=03aeca9d8295f811817909075a15ff65" @@ -16,7 +15,7 @@ SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645" S = "${WORKDIR}/git" -inherit autotools gtk-doc lib_package pkgconfig distro_features_check +inherit autotools gtk-doc lib_package pkgconfig distro_features_check gobject-introspection ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc index cb1be06d0..c24493e1e 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc @@ -8,8 +8,9 @@ python split_gstreamer10_packages () { do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True) do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='') - do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends=d.expand('${PN}-dev')) - do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends=d.expand('${PN}-staticdev')) + do_split_packages(d, glibdir+'/girepository-1.0', 'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer typelib file for %s', postinst=postinst, extra_depends='') + do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends='${PN}-dev') + do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends='${PN}-staticdev') } python set_metapkg_rdepends () { @@ -47,12 +48,9 @@ ALLOW_EMPTY_${PN}-dev = "1" ALLOW_EMPTY_${PN}-staticdev = "1" PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" -FILES_${PN}-apps = "${bindir}" - -RDEPENDS_${PN}-apps += "perl" -RRECOMMENDS_${PN} += "${PN}-meta" FILES_${PN} = "" -FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug" +FILES_${PN}-apps = "${bindir}" FILES_${PN}-glib = "${datadir}/glib-2.0" +RRECOMMENDS_${PN} += "${PN}-meta" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc index 84e6e95d3..363101e1a 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc @@ -1,32 +1,46 @@ SUMMARY = "Libav-based GStreamer 1.x plugin" +HOMEPAGE = "http://gstreamer.freedesktop.org/" SECTION = "multimedia" + LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" LICENSE_FLAGS = "commercial" -HOMEPAGE = "http://www.gstreamer.net/" -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2" -inherit autotools pkgconfig +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz" + +inherit autotools pkgconfig upstream-version-is-even # CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time, # compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the # libav copy included in the gst-libav package. -PACKAGECONFIG ??= " orc yasm " -PACKAGECONFIG[libav] = "--with-system-libav,,libav" -PACKAGECONFIG[lgpl] = "--enable-lgpl,," -PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native" -PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG ??= "orc yasm" +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl," +PACKAGECONFIG[libav] = "--with-system-libav,,libav" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native" GSTREAMER_1_0_DEBUG ?= "--disable-debug" LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure" + +LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ + --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ + --ranlib='${RANLIB}' \ + ${GSTREAMER_1_0_DEBUG} \ + --cross-prefix='${HOST_PREFIX}'" + LIBAV_EXTRA_CONFIGURE_COMMON = \ '${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"' EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}" FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +# http://errors.yoctoproject.org/Errors/Details/20493/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# ffmpeg/libav disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${PN} = "textrel" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch index ccadea4d5..36abf8607 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch @@ -22,5 +22,5 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + ( (unsigned char*)(h->non_zero_count[mb_xy]) ) [i] = 16; + } h->cur_pic.mb_type[mb_xy] = mb_type; - h->last_qscale_diff = 0; + sl->last_qscale_diff = 0; return 0; diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb index 5d74a2e57..687230a8f 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb @@ -3,7 +3,6 @@ include gstreamer1.0-libav.inc LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ - file://gst-libs/ext/libav/LICENSE;md5=ea66e97a7ac1db978cf3529068a8c948 \ file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ @@ -14,17 +13,8 @@ SRC_URI = " \ file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ " -SRC_URI[md5sum] = "f4922a46adbcbe7bd01331ff5dc7979d" -SRC_URI[sha256sum] = "605c62624604f3bb5c870844cc1f2711779cc533b004c2aa1d8c0d58557afbbc" -LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ - --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ - --ranlib='${RANLIB}' \ - ${GSTREAMER_1_0_DEBUG} \ - --cross-prefix='${HOST_PREFIX}'" +SRC_URI[md5sum] = "cfe9a06913d4fd4067e9e47f6e05fac2" +SRC_URI[sha256sum] = "857b9c060a0337de38c6d26238c47352433c02eabf26c2f860c854dbc35bd4ab" S = "${WORKDIR}/gst-libav-${PV}" - -# http://errors.yoctoproject.org/Errors/Details/20493/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb index bf1b87e6d..ebc8a5ef2 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb @@ -5,25 +5,34 @@ include gstreamer1.0-libav.inc LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ - file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \ + file://gst-libs/ext/libav/LICENSE.md;md5=acda96fe91ccaabc9cd9d541806a0d37 \ file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" -SRC_URI = "git://anongit.freedesktop.org/gstreamer/gst-libav;branch=master" -S = "${WORKDIR}/git" +# To build using the system libav/ffmpeg, append "libav" to PACKAGECONFIG +# and remove the ffmpeg sources from SRC_URI below. However, first note the +# warnings in gstreamer1.0-libav.inc +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-libav;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + git://source.ffmpeg.org/ffmpeg;destsuffix=git/gst-libs/ext/libav;name=ffmpeg;branch=release/3.0 \ + file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ + file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ +" + +PV = "1.7.2+git${SRCPV}" -SRCREV = "127202d6f65584891dabf92be031f0d170b0e7f1" +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" -LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ - --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ - ${GSTREAMER_1_0_DEBUG} \ - --cross-prefix='${HOST_PREFIX}'" +SRCREV_base = "6c4878b6abc916b7f6f25b8926c4859119acf1ec" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_ffmpeg = "c40983a6f631d22fede713d535bb9c31d5c9740c" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb index 3ef10c372..c542b13f0 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb @@ -1,6 +1,9 @@ -DESCRIPTION = "Gstreamer1.0 package groups" +SUMMARY = "Gstreamer1.0 package groups" LICENSE = "MIT" +# Due to use of COMBINED_FEATURES +PACKAGE_ARCH = "${MACHINE_ARCH}" + inherit packagegroup COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" @@ -26,7 +29,7 @@ RDEPENDS_gstreamer1.0-meta-base = "\ gstreamer1.0 \ gstreamer1.0-plugins-base-playback \ gstreamer1.0-plugins-base-gio \ - gstreamer1.0-plugins-base-alsa \ + ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'gstreamer1.0-plugins-base-alsa', '',d)} \ gstreamer1.0-plugins-base-volume \ gstreamer1.0-plugins-base-audioconvert \ gstreamer1.0-plugins-base-audioresample \ diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc index 26c13361f..0fff612ee 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc @@ -1,10 +1,11 @@ SUMMARY = "OpenMAX IL plugins for GStreamer" +HOMEPAGE = "http://gstreamer.freedesktop.org/" SECTION = "multimedia" + LICENSE = "LGPLv2.1" LICENSE_FLAGS = "commercial" -HOMEPAGE = "http://www.gstreamer.net/" + DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" -RDEPENDS_${PN} = "libomxil" inherit autotools pkgconfig gettext @@ -32,10 +33,11 @@ python __anonymous () { set_omx_core_name() { sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" } + do_install[postfuncs] += " set_omx_core_name " FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +RDEPENDS_${PN} = "libomxil" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb index fe7c91cb3..74358a724 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb @@ -9,4 +9,3 @@ SRC_URI[md5sum] = "d24e8c0153c35dfefee3e26b1c2c35f8" SRC_URI[sha256sum] = "0b4874961e6488ad9e5808114bd486ea981c540907262caab1419355fd82d745" S = "${WORKDIR}/gst-omx-${PV}" - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb index 99c84668e..970554352 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb @@ -9,18 +9,17 @@ SRC_URI = " \ git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master;name=gst-omx \ git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;branch=master;name=common \ file://0001-omx-fixed-type-error-in-printf-call.patch \ - " - -S = "${WORKDIR}/git" +" SRCREV_gst-omx = "a2db76b048db278ef0aa798e106b7594264e06c0" SRCREV_common = "5edcd857b2107cd8b78c16232dd10877513ec157" SRCREV_FORMAT = "gst-omx" +S = "${WORKDIR}/git" + do_configure_prepend() { cd ${S} ./autogen.sh --noconfigure cd ${B} } - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc index b4f01afe5..9e2b94ede 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc @@ -1,136 +1,148 @@ require gstreamer1.0-plugins.inc -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" DEPENDS += "gstreamer1.0-plugins-base libpng jpeg" -S = "${WORKDIR}/gst-plugins-bad-${PV}" - -SRC_URI += "file://configure-allow-to-disable-libssh2.patch \ - " - inherit gettext bluetooth +SRC_URI_append = " \ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ +" + # opengl packageconfig factored out to make it easy for distros # and BSP layers to pick either (desktop) opengl, gles2, or no GL PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}" +# gtk is not in the PACKAGECONFIG variable by default until +# the transition to gtk+3 is finished PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ ${PACKAGECONFIG_GL} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ - orc curl neon sndfile \ - hls sbc dash bz2 smoothstreaming \ - " + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + bz2 curl dash dtls hls neon rsvg sbc smoothstreaming sndfile uvch264 webp \ +" -# dash = Dynamic Adaptive Streaming over HTTP PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" +PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" +PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" +PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" +PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" +PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" +PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" +PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" +PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,nettle" PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" -PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" -PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" -PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" -PACKAGECONFIG[wayland] = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl" -PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" -PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" -PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" -PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" -PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" -PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" PACKAGECONFIG[schroedinger] = "--enable-schro,--disable-schro,schroedinger" PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" -PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" -PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" -PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" -PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" -PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" +PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" -PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[wayland] = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl" +PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" # these plugins have not been ported to 1.0 (yet): -# directdraw vcd apexsink dc1394 lv2 linsys musepack mythtv -# nas timidity teletextdec sdl xvid wininet acm gsettings -# sndio qtwrapper cdxaparse dccp faceoverlay hdvparse tta -# mve nuvdemux osx_video patchdetect quicktime real sdi -# videomeasure gsettings +# apexsink dc1394 lv2 linsys musepack nas timidity teletextdec sdl xvid wininet +# acm gsettings sndio cdxaparse dccp faceoverlay hdvparse tta mve nuvdemux +# patchdetect real sdi videomeasure gsettings # these plugins have no corresponding library in OE-core or meta-openembedded: -# openni2 winks direct3d directdraw directsound winscreencap osx_video -# apple_media android_media avc chromaprint daala dts gme gsm kate ladspa mimic -# mpeg2enc mplex ofa openjpeg opensles pvr rtmp soundtouch spandsp spc -# srtp vdpau wasapi zbar +# openni2 winks direct3d directsound winscreencap +# apple_media android_media avc bs2b chromaprint daala dts gme gsm kate ladspa +# libde265 mimic mpeg2enc mplex ofa openh264 opensles pvr soundtouch spandsp +# spc vdpau wasapi x265 zbar + +# qt5 support is disabled, because it is not present in OE core, and requires more work than +# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). +# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig +# in a gstreamer1.0-plugins-bad bbappend). EXTRA_OECONF += " \ + --enable-decklink \ --enable-dvb \ - --enable-shm \ --enable-fbdev \ - --enable-decklink \ + --enable-shm \ + --enable-vcd \ --disable-acm \ --disable-android_media \ --disable-apexsink \ --disable-apple_media \ --disable-avc \ + --disable-bs2b \ --disable-chromaprint \ --disable-cocoa \ --disable-daala \ --disable-dc1394 \ --disable-direct3d \ - --disable-directdraw \ --disable-directsound \ --disable-dts \ --disable-gme \ - --disable-gsettings \ --disable-gsm \ --disable-kate \ --disable-ladspa \ + --disable-libde265 \ + --disable-libvisual \ --disable-linsys \ --disable-lv2 \ --disable-mimic \ --disable-mpeg2enc \ --disable-mplex \ --disable-musepack \ - --disable-mythtv \ --disable-nas \ --disable-ofa \ + --disable-openexr \ + --disable-openh264 \ --disable-openjpeg \ + --disable-openni2 \ --disable-opensles \ - --disable-osx_video \ --disable-pvr \ - --disable-quicktime \ + --disable-qt \ --disable-sdl \ --disable-sdltest \ --disable-sndio \ --disable-soundtouch \ --disable-spandsp \ --disable-spc \ - --disable-srtp \ --disable-teletextdec \ --disable-timidity \ - --disable-vcd \ --disable-vdpau \ --disable-wasapi \ --disable-wildmidi \ --disable-wininet \ + --disable-winks \ --disable-winscreencap \ + --disable-x265 \ --disable-xvid \ --disable-zbar \ ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ - " +" -ARM_INSTRUCTION_SET = "arm" +export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" -FILES_gstreamer1.0-plugins-bad-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/include/gst/gl/gstglconfig.h" +FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" +FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch new file mode 100644 index 000000000..154d340e4 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch @@ -0,0 +1,57 @@ +From cff6fbf555a072408c21da1e818209c9d3814dd3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 27 Oct 2015 14:36:58 +0200 +Subject: [PATCH] Makefile.am: don't hardcode libtool name when running + introspection tools + +Upstream-Status: Pending [review on oe-core list] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + gst-libs/gst/gl/Makefile.am | 2 +- + gst-libs/gst/insertbin/Makefile.am | 2 +- + gst-libs/gst/mpegts/Makefile.am | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am +index f968357..7cc2c7a 100644 +--- a/gst-libs/gst/gl/Makefile.am ++++ b/gst-libs/gst/gl/Makefile.am +@@ -149,7 +149,7 @@ GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@ + --library=libgstgl-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/insertbin/Makefile.am b/gst-libs/gst/insertbin/Makefile.am +index 09eb97c..b746885 100644 +--- a/gst-libs/gst/insertbin/Makefile.am ++++ b/gst-libs/gst/insertbin/Makefile.am +@@ -43,7 +43,7 @@ GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GS + --library=libgstinsertbin-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-insertbin-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/mpegts/Makefile.am b/gst-libs/gst/mpegts/Makefile.am +index 2511d49..c1cbce6 100644 +--- a/gst-libs/gst/mpegts/Makefile.am ++++ b/gst-libs/gst/mpegts/Makefile.am +@@ -78,7 +78,7 @@ GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_ + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ + --library=libgstmpegts-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ + --pkg-export gstreamer-mpegts-@GST_API_VERSION@ \ +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch deleted file mode 100644 index 042a32c04..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch +++ /dev/null @@ -1,41 +0,0 @@ -From deba0da45ec821209a7ed148a4521d562e6512cd Mon Sep 17 00:00:00 2001 -From: Carlos Rafael Giani <dv@pseudoterminal.org> -Date: Wed, 27 Aug 2014 14:47:25 +0200 -Subject: [PATCH] gl: do not check for GL/GLU/EGL/GLES2 libs if disabled in - configuration - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=735522] - -Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> ---- - configure.ac | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 1a46afb..e85d4ba 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -661,10 +661,16 @@ case $host in - fi - ;; - *) -- AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) -- AG_GST_CHECK_LIBHEADER(GLU, GLU, gluSphere,, GL/glu.h) -- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) -- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) -+ if test "x$NEED_GL" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) -+ AG_GST_CHECK_LIBHEADER(GLU, GLU, gluSphere,, GL/glu.h) -+ fi -+ if test "x$NEED_GLES2" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) -+ fi -+ if test "x$NEED_EGL" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) -+ fi - - old_LIBS=$LIBS - old_CFLAGS=$CFLAGS --- -1.8.3.2 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch index f677603eb..1085e95e8 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch @@ -22,8 +22,8 @@ index a4b2540..0ccaacd 100644 #endif if (!gst_element_register (plugin, "glimagesink", -- GST_RANK_SECONDARY, GST_TYPE_GLIMAGE_SINK)) { -+ GST_RANK_MARGINAL, GST_TYPE_GLIMAGE_SINK)) { +- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) { ++ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) { return FALSE; } diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch new file mode 100644 index 000000000..e81b06570 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch @@ -0,0 +1,27 @@ +From a93ca63d01e7cd1e40b5be576992f77fac364bd5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 21 Mar 2016 18:21:17 +0200 +Subject: [PATCH] gstreamer-gl.pc.in: don't append GL_CFLAGS to CFLAGS + +Dependencies' include directories should not be added in this way; +it causes problems when cross-compiling in sysroot environments. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + pkgconfig/gstreamer-gl.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pkgconfig/gstreamer-gl.pc.in b/pkgconfig/gstreamer-gl.pc.in +index 5589e2a..b986450 100644 +--- a/pkgconfig/gstreamer-gl.pc.in ++++ b/pkgconfig/gstreamer-gl.pc.in +@@ -10,4 +10,4 @@ Version: @VERSION@ + Requires: gstreamer-base-@GST_API_VERSION@ gstreamer-@GST_API_VERSION@ + + Libs: -L${libdir} -lgstgl-@GST_API_VERSION@ @GL_LIBS@ +-Cflags: -I${includedir} @GL_CFLAGS@ ++Cflags: -I${includedir} +-- +2.7.0 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch new file mode 100755 index 000000000..3491a15e6 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch @@ -0,0 +1,35 @@ +From 95cda7fbcf1a81289d9315c801c8e2b3d896f4cb Mon Sep 17 00:00:00 2001 +From: Haihua Hu <b55597@freescale.com> +Date: Mon, 30 Nov 2015 09:36:09 +0800 +Subject: [PATCH 2/5] [glplugin] glwindow: fix memory leak of navigation + thread + +When exit navigation thread, call g_thread_join() to release +the resource hold by it. + +Upstream-Status: Backport [1.7.1] + +bugzilla URL: https://bugzilla.gnome.org/show_bug.cgi?id=758820 + +Signed-off-by: Haihua Hu <b55597@freescale.com> +--- + gst-libs/gst/gl/gstglwindow.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c +index 44b74ca..42ef296 100644 +--- a/gst-libs/gst/gl/gstglwindow.c ++++ b/gst-libs/gst/gl/gstglwindow.c +@@ -343,6 +343,9 @@ gst_gl_window_finalize (GObject * object) + while (window->nav_alive) { + g_cond_wait (&window->nav_destroy_cond, &window->nav_lock); + } ++ /* release resource hold by navigation thread */ ++ g_thread_join(window->priv->navigation_thread); ++ window->priv->navigation_thread = NULL; + g_mutex_unlock (&window->nav_lock); + } + +-- +1.7.9.5 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..357fd7800 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,30 @@ +From 72561a0fca562d03567ace7b4cfc94992cd6525c Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 3 Feb 2016 18:05:41 -0800 +Subject: [PATCH] avoid including <sys/poll.h> directly + +musl libc generates warnings if <sys/poll.h> is included directly. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + sys/dvb/gstdvbsrc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c +index b93255f..49f145a 100644 +--- a/sys/dvb/gstdvbsrc.c ++++ b/sys/dvb/gstdvbsrc.c +@@ -93,7 +93,7 @@ + #include <gst/gst.h> + #include <gst/glib-compat-private.h> + #include <sys/ioctl.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <fcntl.h> + #include <errno.h> + #include <stdio.h> +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch new file mode 100644 index 000000000..369ff93ac --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch @@ -0,0 +1,86 @@ +From 2262ba4b686d5cc0d3e894707fe1d31619a3a8f1 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 9 Feb 2016 14:00:00 -0800 +Subject: [PATCH] ensure valid sentinals for gst_structure_get() etc + +For GStreamer functions declared with G_GNUC_NULL_TERMINATED, +ie __attribute__((__sentinel__)), gcc will generate a warning if the +last parameter passed to the function is not NULL (where a valid NULL +in this context is defined as zero with any pointer type). + +The C callers to such functions within gst-plugins-bad use the C NULL +definition (ie ((void*)0)), which is a valid sentinel. + +However the C++ NULL definition (ie 0L), is not a valid sentinel +without an explicit cast to a pointer type. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + sys/decklink/gstdecklink.cpp | 10 +++++----- + sys/decklink/gstdecklinkaudiosrc.cpp | 2 +- + sys/decklink/gstdecklinkvideosink.cpp | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp +index 64637f1..bac956f 100644 +--- a/sys/decklink/gstdecklink.cpp ++++ b/sys/decklink/gstdecklink.cpp +@@ -324,22 +324,22 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f) + "height", G_TYPE_INT, mode->height, + "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, + "interlace-mode", G_TYPE_STRING, mode->interlaced ? "interleaved" : "progressive", +- "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); ++ "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void *) NULL); + + switch (f) { + case bmdFormat8BitYUV: /* '2vuy' */ + gst_structure_set (s, "format", G_TYPE_STRING, "UYVY", + "colorimetry", G_TYPE_STRING, mode->colorimetry, +- "chroma-site", G_TYPE_STRING, "mpeg2", NULL); ++ "chroma-site", G_TYPE_STRING, "mpeg2", (void *) NULL); + break; + case bmdFormat10BitYUV: /* 'v210' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void *) NULL); + break; + case bmdFormat8BitARGB: /* 'ARGB' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void *) NULL); + break; + case bmdFormat8BitBGRA: /* 'BGRA' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void *) NULL); + break; + case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */ + case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */ +diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp +index 9a701ee..26fb7ec 100644 +--- a/sys/decklink/gstdecklinkaudiosrc.cpp ++++ b/sys/decklink/gstdecklinkaudiosrc.cpp +@@ -312,7 +312,7 @@ gst_decklink_audio_src_set_caps (GstBaseSrc * bsrc, GstCaps * caps) + g_mutex_unlock (&self->input->lock); + + if (videosrc) { +- g_object_get (videosrc, "connection", &vconn, NULL); ++ g_object_get (videosrc, "connection", &vconn, (void *) NULL); + gst_object_unref (videosrc); + + switch (vconn) { +diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp +index eebeff3..da6e486 100644 +--- a/sys/decklink/gstdecklinkvideosink.cpp ++++ b/sys/decklink/gstdecklinkvideosink.cpp +@@ -158,7 +158,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure, + gpointer user_data) + { + gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, +- G_MAXINT, 1, NULL); ++ G_MAXINT, 1, (void *) NULL); + + return TRUE; + } +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch new file mode 100644 index 000000000..5ce57714e --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch @@ -0,0 +1,28 @@ +From a67781000e82bd9ae3813da29401e8c0c852328a Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 26 Jan 2016 15:16:01 -0800 +Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c +index fd16ee0..ddb890c 100644 +--- a/gst-libs/gst/codecparsers/gstvc1parser.c ++++ b/gst-libs/gst/codecparsers/gstvc1parser.c +@@ -1729,7 +1729,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, + GstVC1SeqLayer * seqlayer) + { + guint32 tmp; +- guint8 tmp8; ++ guint8 tmp8 = 0; + guint8 structA[8] = { 0, }; + guint8 structB[12] = { 0, }; + GstBitReader br; +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb deleted file mode 100644 index 687366924..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb +++ /dev/null @@ -1,16 +0,0 @@ -include gstreamer1.0-plugins-bad.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ - file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \ - file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ - file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50" - -SRC_URI += "file://0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch \ - file://0001-glimagesink-Downrank-to-marginal.patch \ - " - -SRC_URI[md5sum] = "e0bb39412cf4a48fe0397bcf3a7cd451" -SRC_URI[sha256sum] = "152fad7250683d72f9deb36c5685428338365fe4a4c87ffe15e38783b14f983c" - -S = "${WORKDIR}/gst-plugins-bad-${PV}" - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb new file mode 100644 index 000000000..8eb47c265 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb @@ -0,0 +1,28 @@ +include gstreamer1.0-plugins-bad.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a" + +# Note: The mpg123 plugin was moved to gst-plugins-ugly prior to the 1.7.2 +# release, so this line should be removed during the update to 1.8.x +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=08d8aefcdaaf89ecb6dd53ec1e4f95cd42d01664 +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" + +# Note: The gsettings plug-in was dropped prior to the 1.7.2 release, +# so this line should be removed during the update to 1.8.x +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=914291808ad10621d6a74031f3d46d45eef5a3a3 +EXTRA_OECONF += "--disable-gsettings" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ + file://configure-allow-to-disable-libssh2.patch \ + file://0001-glimagesink-Downrank-to-marginal.patch \ + file://0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch \ +" + +SRC_URI[md5sum] = "4857adcafe41e4b9b8805cf88303bd55" +SRC_URI[sha256sum] = "971b29101d6a9c5e3fe94d99d977a227f58f0b2d29b6ca2c7f292052542b3a61" + +S = "${WORKDIR}/gst-plugins-bad-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb index 309505f7d..ef6581b2a 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb @@ -3,24 +3,63 @@ DEFAULT_PREFERENCE = "-1" include gstreamer1.0-plugins-bad.inc LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ - file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \ file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ - file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50" + file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-bad;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://configure-allow-to-disable-libssh2.patch \ + file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ + file://avoid-including-sys-poll.h-directly.patch \ + file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ + file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "50ae46cc0f8827bf966920d9c221e5cf86e811ba" +SRCREV_common = "a25397448942079002622be231e9ec49b985745a" +SRCREV_FORMAT = "base" S = "${WORKDIR}/git" -SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce" +# over-ride the default hls PACKAGECONFIG in gstreamer1.0-plugins-bad.inc to +# pass an additional --with-hls-crypto=XXX option (new in 1.7.x) and switch HLS +# AES decryption from nettle to openssl (ie a shared dependency with dtls). +# This should move back to the common .inc once the main recipe updates to 1.8.x +PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=openssl,--disable-hls,openssl" -PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" -PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls" +# The tinyalsa plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c8bd74fa9a81398f57d976c478d2043f30188684 +PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" +# The vulkan based video sink plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=5de6dd9f40629562acf90e35e1fa58464d66617d +PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,libxcb" + +# The dependency-less netsim plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=e3f9e854f08e82bfab11182c5a2aa6f9a0c73cd5 EXTRA_OECONF += " \ - -disable-openjpeg \ - " + --enable-netsim \ +" do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } +# In 1.6.2, the "--enable-hls" configure option generated an installable package +# called "gstreamer1.0-plugins-bad-fragmented". In 1.7.1 that HLS plugin package +# has become "gstreamer1.0-plugins-bad-hls". See: +# http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=efe62292a3d045126654d93239fdf4cc8e48ae08 + +PACKAGESPLITFUNCS_append = " handle_hls_rename " + +python handle_hls_rename () { + d.setVar('RPROVIDES_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') + d.setVar('RREPLACES_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') + d.setVar('RCONFLICTS_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') +} diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc index 4909b10d5..7381458f4 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc @@ -1,38 +1,50 @@ require gstreamer1.0-plugins.inc +SRC_URI_append = "\ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ + file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ + file://0003-riff-add-missing-include-directories-when-calling-in.patch \ + file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ +" + LICENSE = "GPLv2+ & LGPLv2+" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxv', '', d)}" -DEPENDS += "freetype liboil util-linux" +DEPENDS += "iso-codes util-linux zlib" inherit gettext PACKAGES_DYNAMIC =+ "^libgst.*" PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${GSTREAMER_ORC} \ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ - orc ivorbis ogg theora vorbis pango \ - " + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + gio-unix-2.0 ivorbis ogg pango theora vorbis \ +" -X11DEPENDS = "virtual/libx11 libsm libxrender" +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" -PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" -PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" -PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" -PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" -# libvisual do not seem to exist anywhere in OE -PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" -PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" +PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0" +PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" +PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" EXTRA_OECONF += " \ - --disable-freetypetest \ + --enable-zlib \ " +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" -CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs" +} diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch new file mode 100644 index 000000000..781e4d801 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch @@ -0,0 +1,168 @@ +From f1d9652351e7754c63003104eceb526af424c7e0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Fri, 20 Nov 2015 16:53:04 +0200 +Subject: [PATCH 1/4] Makefile.am: don't hardcode libtool name when running + introspection tools + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/allocators/Makefile.am | 2 +- + gst-libs/gst/app/Makefile.am | 2 +- + gst-libs/gst/audio/Makefile.am | 2 +- + gst-libs/gst/fft/Makefile.am | 2 +- + gst-libs/gst/pbutils/Makefile.am | 2 +- + gst-libs/gst/riff/Makefile.am | 2 +- + gst-libs/gst/rtp/Makefile.am | 2 +- + gst-libs/gst/rtsp/Makefile.am | 2 +- + gst-libs/gst/sdp/Makefile.am | 2 +- + gst-libs/gst/tag/Makefile.am | 2 +- + gst-libs/gst/video/Makefile.am | 2 +- + 11 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am +index 9361bf9..bc7f53a 100644 +--- a/gst-libs/gst/allocators/Makefile.am ++++ b/gst-libs/gst/allocators/Makefile.am +@@ -37,7 +37,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@ + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstallocators-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg-export gstreamer-allocators-@GST_API_VERSION@ \ + --output $@ \ +diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am +index 6d6de8d..dcc2fe0 100644 +--- a/gst-libs/gst/app/Makefile.am ++++ b/gst-libs/gst/app/Makefile.am +@@ -52,7 +52,7 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO + --library=libgstapp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-app-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am +index 275d222..2374196 100644 +--- a/gst-libs/gst/audio/Makefile.am ++++ b/gst-libs/gst/audio/Makefile.am +@@ -106,7 +106,7 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ + --include=GstTag-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-audio-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am +index 09b3d68..f545354 100644 +--- a/gst-libs/gst/fft/Makefile.am ++++ b/gst-libs/gst/fft/Makefile.am +@@ -64,7 +64,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstfft-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg-export gstreamer-fft-@GST_API_VERSION@ \ + --output $@ \ +diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am +index 64d5eb0..91dc214 100644 +--- a/gst-libs/gst/pbutils/Makefile.am ++++ b/gst-libs/gst/pbutils/Makefile.am +@@ -94,7 +94,7 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP + --include=GstTag-@GST_API_VERSION@ \ + --include=GstVideo-@GST_API_VERSION@ \ + --include=GstAudio-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-tag-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 83d83cb..3bd8fc0 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -47,7 +47,7 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ + # --include=Gst-@GST_API_VERSION@ \ +-# --libtool="$(top_builddir)/libtool" \ ++# --libtool="$(LIBTOOL)" \ + # --pkg gstreamer-@GST_API_VERSION@ \ + # --pkg gstreamer-tag-@GST_API_VERSION@ \ + # --pkg gstreamer-audio-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am +index fdd01c1..f5445c1 100644 +--- a/gst-libs/gst/rtp/Makefile.am ++++ b/gst-libs/gst/rtp/Makefile.am +@@ -64,7 +64,7 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO + --library=libgstrtp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-rtp-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index ede5706..9b0b258 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -71,7 +71,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + --include=Gio-2.0 \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstSdp-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gio-2.0 \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-sdp-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am +index a90f30b..0e149b8 100644 +--- a/gst-libs/gst/sdp/Makefile.am ++++ b/gst-libs/gst/sdp/Makefile.am +@@ -31,7 +31,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstsdp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg-export gstreamer-sdp-@GST_API_VERSION@ \ + --output $@ \ +diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am +index c534a4d..cafafd3 100644 +--- a/gst-libs/gst/tag/Makefile.am ++++ b/gst-libs/gst/tag/Makefile.am +@@ -44,7 +44,7 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO + --library=libgsttag-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-tag-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am +index 5d31fa1..ac64eb3 100644 +--- a/gst-libs/gst/video/Makefile.am ++++ b/gst-libs/gst/video/Makefile.am +@@ -113,7 +113,7 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE + --library=libgstvideo-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-video-@GST_API_VERSION@ \ +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch deleted file mode 100644 index 03dca956a..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 3781d40940d46d7e6a502092d24aac7997f6da5b Mon Sep 17 00:00:00 2001 -From: Mingke Wang <mingke.wang@freescale.com> -Date: Thu, 5 Mar 2015 12:06:23 +0800 -Subject: [PATCH 1/4] basetextoverlay: make memory copy when video buffer's - memory is ready only - -1. since gst_buffer_make_writable just lookup the refcount to determine if - a buffer is writable, and it will use _gst_buffer_copy() which don't - perform a deep memory copy even if the flag of a memory is set to - GST_MEMORY_FLAG_READONLY. So, we detect the memory flag and use - gst_buffer_copy_region with GST_BUFFER_COPY_DEEP parameter to perform - deep memory copy. if the allocator of a memory don't support mem_copy - interface, the it will return NULL, if this case, we can use - gst_buffer_make_writable() to get a shared memory buffer or the orignal - buffer if the buffer's refcount is 1. -2. new feature is no added if caps has no feature during caps negotiation - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747495] - -Signed-off-by: Mingke Wang <mingke.wang@freescale.com> - -diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c -index c919861..3c0a1d7 100755 ---- a/ext/pango/gstbasetextoverlay.c -+++ b/ext/pango/gstbasetextoverlay.c -@@ -747,6 +747,7 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps) - if (f == NULL) { - f = gst_caps_features_new - (GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, NULL); -+ gst_caps_set_features(overlay_caps, 0, f); - } else { - gst_caps_features_add (f, - GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); -@@ -1890,16 +1891,71 @@ gst_base_text_overlay_push_frame (GstBaseTextOverlay * overlay, - if (gst_pad_check_reconfigure (overlay->srcpad)) - gst_base_text_overlay_negotiate (overlay, NULL); - -- video_frame = gst_buffer_make_writable (video_frame); -- - if (overlay->attach_compo_to_buffer) { - GST_DEBUG_OBJECT (overlay, "Attaching text overlay image to video buffer"); -+ video_frame = gst_buffer_make_writable (video_frame); - gst_buffer_add_video_overlay_composition_meta (video_frame, - overlay->composition); - /* FIXME: emulate shaded background box if want_shading=true */ - goto done; - } - -+ gint m = gst_buffer_n_memory(video_frame); -+ gboolean mem_rdonly = FALSE; -+ GstMemory *mem; -+ GstBuffer *orig = video_frame; -+ -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ if (GST_MEMORY_IS_READONLY(mem)) { -+ mem_rdonly = TRUE; -+ gst_memory_unref (mem); -+ break; -+ } -+ gst_memory_unref (mem); -+ } -+ -+ if (mem_rdonly) { -+ // since gst_buffer_make_writable just lookup the refcount to determine if -+ // a buffer is writable, and it will use _gst_buffer_copy() which don't -+ // perform a deep memory copy even if the flag of a memory is set to -+ // GST_MEMORY_FLAG_READONLY. So, we detect the memory flag and use -+ // gst_buffer_copy_region with GST_BUFFER_COPY_DEEP parameter to perform -+ // deep memory copy. if the allocator of a memory don't support mem_copy -+ // interface, the it will return NULL, if this case, we can use -+ // gst_buffer_make_writable() to get a shared memory buffer or the orignal -+ // buffer if the buffer's refcount is 1. -+ GstBuffer *new_buf = gst_buffer_copy_region (video_frame, -+ GST_BUFFER_COPY_ALL | GST_BUFFER_COPY_DEEP, 0, -1); -+ -+ GST_DEBUG_OBJECT (overlay, "copy %s video frame buffer %p -> %p", -+ g_type_name (GST_MINI_OBJECT_TYPE (video_frame)), video_frame, new_buf); -+ -+ if (!new_buf) { -+ //maybe the allocator don't support mem_copy interface, the we just use -+ //gst_buffer_make_writable() to get a writable buffer. -+ video_frame = gst_buffer_make_writable (video_frame); -+ } else { -+ gst_mini_object_unref (video_frame); -+ GST_BUFFER_FLAG_UNSET (new_buf, GST_BUFFER_FLAG_TAG_MEMORY); -+ video_frame = new_buf; -+ } -+ -+ if (!video_frame) { -+ GST_WARNING_OBJECT (overlay, "make writable buffer failed"); -+ return GST_FLOW_OK; -+ } -+ -+ m = gst_buffer_n_memory(video_frame); -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ GST_MEMORY_FLAG_UNSET (mem, GST_MEMORY_FLAG_READONLY); -+ gst_memory_unref (mem); -+ } -+ } else { -+ video_frame = gst_buffer_make_writable (video_frame); -+ } -+ - if (!gst_video_frame_map (&frame, &overlay->info, video_frame, - GST_MAP_READWRITE)) - goto invalid_frame; -@@ -1918,6 +1974,18 @@ gst_base_text_overlay_push_frame (GstBaseTextOverlay * overlay, - - gst_video_frame_unmap (&frame); - -+ if (mem_rdonly && orig == video_frame) { -+ //if we used the original buffer and it's mem is set to read only, -+ //recover the memory ready only flag since we unset it before -+ // gst_video_frame_map () -+ m = gst_buffer_n_memory(video_frame); -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ GST_MEMORY_FLAGS(mem) |= (GST_MEMORY_FLAG_READONLY); -+ gst_memory_unref (mem); -+ } -+ } -+ - done: - - return gst_pad_push (overlay->srcpad, video_frame); --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch deleted file mode 100644 index 3db4724fe..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 269f642c45d85cfd630ed490478e6bd6b71a767f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Tue, 16 Sep 2014 01:07:18 +0300 -Subject: [PATCH] video-frame: Don't ref buffers twice when mapping - -Upstream-Status: Backport [1.5.1] ---- - gst-libs/gst/video/video-frame.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c -index 01f23c0..8a9ae96 100644 ---- a/gst-libs/gst/video/video-frame.c -+++ b/gst-libs/gst/video/video-frame.c -@@ -105,7 +105,7 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info, - frame->data[i] = frame->map[0].data + info->offset[i]; - } - } -- frame->buffer = gst_buffer_ref (buffer); -+ frame->buffer = buffer; - if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) - gst_buffer_ref (frame->buffer); - --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch new file mode 100644 index 000000000..85fcacb55 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch @@ -0,0 +1,298 @@ +From 990b653c7b6de1937ec759019982d6c5f15770f7 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 16:38:18 +0200 +Subject: [PATCH 2/4] Makefile.am: prefix calls to pkg-config with + PKG_CONFIG_SYSROOT_DIR + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/allocators/Makefile.am | 4 ++-- + gst-libs/gst/app/Makefile.am | 4 ++-- + gst-libs/gst/audio/Makefile.am | 12 ++++++------ + gst-libs/gst/fft/Makefile.am | 4 ++-- + gst-libs/gst/pbutils/Makefile.am | 12 ++++++------ + gst-libs/gst/riff/Makefile.am | 8 ++++---- + gst-libs/gst/rtp/Makefile.am | 8 ++++---- + gst-libs/gst/rtsp/Makefile.am | 4 ++-- + gst-libs/gst/sdp/Makefile.am | 4 ++-- + gst-libs/gst/tag/Makefile.am | 8 ++++---- + gst-libs/gst/video/Makefile.am | 8 ++++---- + 11 files changed, 38 insertions(+), 38 deletions(-) + +diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am +index bc7f53a..0ef5f86 100644 +--- a/gst-libs/gst/allocators/Makefile.am ++++ b/gst-libs/gst/allocators/Makefile.am +@@ -34,7 +34,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@ + --c-include "gst/allocators/allocators.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstallocators-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ +@@ -58,7 +58,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am +index dcc2fe0..dc076cb 100644 +--- a/gst-libs/gst/app/Makefile.am ++++ b/gst-libs/gst/app/Makefile.am +@@ -47,8 +47,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO + --c-include "gst/app/app.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstapp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am +index 2374196..295eb42 100644 +--- a/gst-libs/gst/audio/Makefile.am ++++ b/gst-libs/gst/audio/Makefile.am +@@ -96,12 +96,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ + --c-include "gst/audio/audio.h" \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \ + --library=libgstaudio-@GST_API_VERSION@.la \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ + --library-path="$(top_builddir)/gst-libs/gst/tag/" \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -130,8 +130,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + --includedir=$(srcdir) \ + --includedir=$(builddir) \ + --includedir="$(top_builddir)/gst-libs/gst/tag/" \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am +index f545354..1bb6243 100644 +--- a/gst-libs/gst/fft/Makefile.am ++++ b/gst-libs/gst/fft/Makefile.am +@@ -61,7 +61,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO + --c-include "gst/fft/fft.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstfft-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ +@@ -85,7 +85,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am +index 91dc214..dc8e1d3 100644 +--- a/gst-libs/gst/pbutils/Makefile.am ++++ b/gst-libs/gst/pbutils/Makefile.am +@@ -79,14 +79,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP + --c-include "gst/pbutils/pbutils.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \ + --add-include-path="$(top_builddir)/gst-libs/gst/video/" \ + --add-include-path="$(top_builddir)/gst-libs/gst/audio/" \ + --library=libgstpbutils-@GST_API_VERSION@.la \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ + --library-path="$(top_builddir)/gst-libs/gst/tag/" \ + --library-path="$(top_builddir)/gst-libs/gst/video/" \ + --library-path="$(top_builddir)/gst-libs/gst/audio/" \ +@@ -119,8 +119,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --includedir="$(top_builddir)/gst-libs/gst/tag/" \ + --includedir="$(top_builddir)/gst-libs/gst/video/" \ + --includedir="$(top_builddir)/gst-libs/gst/audio/" \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 3bd8fc0..0a115cc 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -41,8 +41,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --c-include "gst/riff/riff.h" \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # --library=libgstriff-@GST_API_VERSION@.la \ + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ +@@ -73,8 +73,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --includedir=$(builddir) \ + # --includedir=$(builddir)/../tag \ + # --includedir=$(builddir)/../audio \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + # + #CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am +index f5445c1..527c0b4 100644 +--- a/gst-libs/gst/rtp/Makefile.am ++++ b/gst-libs/gst/rtp/Makefile.am +@@ -59,8 +59,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO + --c-include "gst/rtp/rtp.h" \ + -I$(top_builddir)/gst-libs \ + -I$(top_srcdir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstrtp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -87,8 +87,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index 9b0b258..4f6d9f8 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -66,7 +66,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + -I$(top_builddir)/gst-libs \ + -I$(top_srcdir)/gst-libs \ + --add-include-path=$(builddir)/../sdp \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstrtsp-@GST_API_VERSION@.la \ + --include=Gio-2.0 \ + --include=Gst-@GST_API_VERSION@ \ +@@ -96,7 +96,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + --includedir=$(srcdir) \ + --includedir=$(builddir) \ + --includedir=$(builddir)/../sdp \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am +index 0e149b8..9aa0512 100644 +--- a/gst-libs/gst/sdp/Makefile.am ++++ b/gst-libs/gst/sdp/Makefile.am +@@ -28,7 +28,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO + --warn-all \ + --c-include "gst/sdp/sdp.h" \ + -I$(top_srcdir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstsdp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ +@@ -52,7 +52,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am +index cafafd3..ba99279 100644 +--- a/gst-libs/gst/tag/Makefile.am ++++ b/gst-libs/gst/tag/Makefile.am +@@ -39,8 +39,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO + --c-include "gst/tag/tag.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgsttag-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -67,8 +67,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am +index ac64eb3..342c8c6 100644 +--- a/gst-libs/gst/video/Makefile.am ++++ b/gst-libs/gst/video/Makefile.am +@@ -108,8 +108,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE + --c-include "gst/video/video.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstvideo-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -136,8 +136,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch deleted file mode 100644 index 39c146aad..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0a78555ea6c8c2f1ee27ee4707e8d7aa00ab7a66 Mon Sep 17 00:00:00 2001 -From: Mingke Wang <mingke.wang@freescale.com> -Date: Thu, 19 Mar 2015 14:15:25 +0800 -Subject: [PATCH 2/4] gstplaysink: don't set async of custom text-sink to - false - -set async to false lead to A/V sync problem when seeking. -the preroll need use GAP event instead of set async to false. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747499] - -Signed-off-by: Mingke Wang <mingke.wang@freescale.com> - -diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c -old mode 100644 -new mode 100755 -index f5a2d42..fba0172 ---- a/gst/playback/gstplaysink.c -+++ b/gst/playback/gstplaysink.c -@@ -2408,7 +2408,7 @@ gen_text_chain (GstPlaySink * playsink) - G_TYPE_BOOLEAN); - if (elem) { - /* make sure the sparse subtitles don't participate in the preroll */ -- g_object_set (elem, "async", FALSE, NULL); -+ //g_object_set (elem, "async", FALSE, NULL); - GST_DEBUG_OBJECT (playsink, "adding custom text sink"); - gst_bin_add (bin, chain->sink); - /* NOTE streamsynchronizer needs streams decoupled */ --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch deleted file mode 100644 index c465b5cee..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 40a293d44d1aeccf5eb8e86f23a0b13666111c5c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Fri, 12 Sep 2014 14:39:16 +0300 -Subject: [PATCH 2/3] video-frame: Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF - -This makes sure that the buffer is not reffed another time when -storing it in the GstVideoFrame, keeping it writable if it was -writable. - -Upstream-Status: Backport [1.5.1] -https://bugzilla.gnome.org/show_bug.cgi?id=736118 ---- - gst-libs/gst/video/video-frame.c | 9 ++++++++- - gst-libs/gst/video/video-frame.h | 18 ++++++++++++++++++ - 2 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c -index 537cf70..01f23c0 100644 ---- a/gst-libs/gst/video/video-frame.c -+++ b/gst-libs/gst/video/video-frame.c -@@ -106,6 +106,9 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info, - } - } - frame->buffer = gst_buffer_ref (buffer); -+ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) -+ gst_buffer_ref (frame->buffer); -+ - frame->meta = meta; - - /* buffer flags enhance the frame flags */ -@@ -189,11 +192,13 @@ gst_video_frame_unmap (GstVideoFrame * frame) - GstBuffer *buffer; - GstVideoMeta *meta; - gint i; -+ GstMapFlags flags; - - g_return_if_fail (frame != NULL); - - buffer = frame->buffer; - meta = frame->meta; -+ flags = frame->map[0].flags; - - if (meta) { - for (i = 0; i < frame->info.finfo->n_planes; i++) { -@@ -202,7 +207,9 @@ gst_video_frame_unmap (GstVideoFrame * frame) - } else { - gst_buffer_unmap (buffer, &frame->map[0]); - } -- gst_buffer_unref (buffer); -+ -+ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) -+ gst_buffer_unref (frame->buffer); - } - - /** -diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h -index 627fab0..f8e6304 100644 ---- a/gst-libs/gst/video/video-frame.h -+++ b/gst-libs/gst/video/video-frame.h -@@ -149,6 +149,24 @@ typedef enum { - GST_VIDEO_BUFFER_FLAG_LAST = (GST_BUFFER_FLAG_LAST << 8) - } GstVideoBufferFlags; - -+/** -+ * GstVideoBufferFlags: -+ * @GST_VIDEO_FRAME_MAP_FLAG_NO_REF: Don't take another reference of the buffer and store it in -+ * the GstVideoFrame. This makes sure that the buffer stays -+ * writable while the frame is mapped, but requires that the -+ * buffer reference stays valid until the frame is unmapped again. -+ * @GST_VIDEO_FRAME_MAP_FLAG_LAST: Offset to define more flags -+ * -+ * Additional mapping flags for gst_video_frame_map(). -+ * -+ * Since: 1.6 -+ */ -+typedef enum { -+ GST_VIDEO_FRAME_MAP_FLAG_NO_REF = (GST_MAP_FLAG_LAST << 0), -+ GST_VIDEO_FRAME_MAP_FLAG_LAST = (GST_MAP_FLAG_LAST << 8) -+ /* 8 more flags possible afterwards */ -+} GstVideoFrameMapFlags; -+ - G_END_DECLS - - #endif /* __GST_VIDEO_FRAME_H__ */ --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch new file mode 100644 index 000000000..9b66f7f49 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch @@ -0,0 +1,28 @@ +From 3c2c2d5dd08aa30ed0e8acd8566ec99412bb8209 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 17:29:37 +0200 +Subject: [PATCH 3/4] riff: add missing include directories when calling + introspection scanner + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/riff/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 0a115cc..5057a58 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -39,6 +39,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --strip-prefix=Gst \ + # --warn-all \ + # --c-include "gst/riff/riff.h" \ ++# -I$(top_srcdir)/gst-libs \ ++# -I$(top_builddir)/gst-libs \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ + # --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch deleted file mode 100644 index 132bf06f7..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 3a7cdcdfc9c5b0d20394fe51b3b8cda23931ca6d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Fri, 12 Sep 2014 14:41:01 +0300 -Subject: [PATCH 3/3] videofilter: Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF - -Upstream-Status: Backport [1.5.1] -https://bugzilla.gnome.org/show_bug.cgi?id=736118 ---- - gst-libs/gst/video/gstvideofilter.c | 23 ++++------------------- - 1 file changed, 4 insertions(+), 19 deletions(-) - -diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c -index e1fa2c1..874b2e8 100644 ---- a/gst-libs/gst/video/gstvideofilter.c -+++ b/gst-libs/gst/video/gstvideofilter.c -@@ -260,23 +260,15 @@ gst_video_filter_transform (GstBaseTransform * trans, GstBuffer * inbuf, - if (fclass->transform_frame) { - GstVideoFrame in_frame, out_frame; - -- if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, GST_MAP_READ)) -+ if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, -+ GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF)) - goto invalid_buffer; - - if (!gst_video_frame_map (&out_frame, &filter->out_info, outbuf, -- GST_MAP_WRITE)) -+ GST_MAP_WRITE | GST_VIDEO_FRAME_MAP_FLAG_NO_REF)) - goto invalid_buffer; - -- /* GstVideoFrame has another reference, so the buffer looks unwriteable, -- * meaning that we can't attach any metas or anything to it. Other -- * map() functions like gst_buffer_map() don't get another reference -- * of the buffer and expect the buffer reference to be kept until -- * the buffer is unmapped again. */ -- gst_buffer_unref (inbuf); -- gst_buffer_unref (outbuf); - res = fclass->transform_frame (filter, &in_frame, &out_frame); -- gst_buffer_ref (inbuf); -- gst_buffer_ref (outbuf); - - gst_video_frame_unmap (&out_frame); - gst_video_frame_unmap (&in_frame); -@@ -317,7 +309,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf) - GstVideoFrame frame; - GstMapFlags flags; - -- flags = GST_MAP_READ; -+ flags = GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF; - - if (!gst_base_transform_is_passthrough (trans)) - flags |= GST_MAP_WRITE; -@@ -325,14 +317,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf) - if (!gst_video_frame_map (&frame, &filter->in_info, buf, flags)) - goto invalid_buffer; - -- /* GstVideoFrame has another reference, so the buffer looks unwriteable, -- * meaning that we can't attach any metas or anything to it. Other -- * map() functions like gst_buffer_map() don't get another reference -- * of the buffer and expect the buffer reference to be kept until -- * the buffer is unmapped again. */ -- gst_buffer_unref (buf); - res = fclass->transform_frame_ip (filter, &frame); -- gst_buffer_ref (buf); - - gst_video_frame_unmap (&frame); - } else { --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch new file mode 100644 index 000000000..42d99c1db --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch @@ -0,0 +1,27 @@ +From 4330915d88dc4dd46eb4c28d756482b767c2747f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 17:30:14 +0200 +Subject: [PATCH 4/4] rtsp: drop incorrect reference to gstreamer-sdp in + Makefile.am + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/rtsp/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index 4f6d9f8..0afa370 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -74,7 +74,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + --libtool="$(LIBTOOL)" \ + --pkg gio-2.0 \ + --pkg gstreamer-@GST_API_VERSION@ \ +- --pkg gstreamer-sdp-@GST_API_VERSION@ \ + --pkg-export gstreamer-rtsp-@GST_API_VERSION@ \ + --add-init-section="$(INTROSPECTION_INIT)" \ + --output $@ \ +-- +2.6.2 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch new file mode 100755 index 000000000..096a6f4cb --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch @@ -0,0 +1,143 @@ +From 5be6ed00aad028d9cbb4e0c63af0be69d335c71e Mon Sep 17 00:00:00 2001 +From: Song Bing <b06498@freescale.com> +Date: Fri, 11 Dec 2015 21:42:00 +0800 +Subject: [PATCH] convertframe: Support video crop when convert frame + +Get thumbnail will user convertframe to convert video frame to +desired video format and size. But haven't process crop meta on +the video buffer. Add support video crop. + +https://bugzilla.gnome.org/show_bug.cgi?id=759329 + +Upstream-Status: Backport [1.7.1] + +--- + gst-libs/gst/video/convertframe.c | 65 +++++++++++++++++++++++++++++++++------ + 1 file changed, 56 insertions(+), 9 deletions(-) + +diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c +index aa9c3d3..942a51e 100644 +--- a/gst-libs/gst/video/convertframe.c ++++ b/gst-libs/gst/video/convertframe.c +@@ -110,12 +110,23 @@ fail: + static GstElement * + build_convert_frame_pipeline (GstElement ** src_element, + GstElement ** sink_element, const GstCaps * from_caps, +- const GstCaps * to_caps, GError ** err) ++ GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err) + { +- GstElement *src = NULL, *csp = NULL, *vscale = NULL; +- GstElement *sink = NULL, *encoder = NULL, *pipeline; ++ GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL; ++ GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline; ++ GstVideoInfo info; + GError *error = NULL; + ++ if (cmeta) { ++ if (!create_element ("videocrop", &vcrop, &error)) { ++ g_warning ++ ("build_convert_frame_pipeline: Buffer has crop metadata but videocrop element is not found. Cropping will be disabled"); ++ } else { ++ if (!create_element ("videoconvert", &csp2, &error)) ++ goto no_elements; ++ } ++ } ++ + /* videoscale is here to correct for the pixel-aspect-ratio for us */ + GST_DEBUG ("creating elements"); + if (!create_element ("appsrc", &src, &error) || +@@ -133,15 +144,42 @@ build_convert_frame_pipeline (GstElement ** src_element, + + GST_DEBUG ("adding elements"); + gst_bin_add_many (GST_BIN (pipeline), src, csp, vscale, sink, NULL); ++ if (vcrop) ++ gst_bin_add_many (GST_BIN (pipeline), vcrop, csp2, NULL); + + /* set caps */ + g_object_set (src, "caps", from_caps, NULL); ++ if (vcrop) { ++ gst_video_info_from_caps (&info, from_caps); ++ g_object_set (vcrop, "left", cmeta->x, NULL); ++ g_object_set (vcrop, "top", cmeta->y, NULL); ++ g_object_set (vcrop, "right", GST_VIDEO_INFO_WIDTH (&info) - cmeta->width, ++ NULL); ++ g_object_set (vcrop, "bottom", ++ GST_VIDEO_INFO_HEIGHT (&info) - cmeta->height, NULL); ++ GST_DEBUG ("crop meta [x,y,width,height]: %d %d %d %d", cmeta->x, cmeta->y, ++ cmeta->width, cmeta->height); ++ } + g_object_set (sink, "caps", to_caps, NULL); + + /* FIXME: linking is still way too expensive, profile this properly */ +- GST_DEBUG ("linking src->csp"); +- if (!gst_element_link_pads (src, "src", csp, "sink")) +- goto link_failed; ++ if (vcrop) { ++ GST_DEBUG ("linking src->csp2"); ++ if (!gst_element_link_pads (src, "src", csp2, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking csp2->vcrop"); ++ if (!gst_element_link_pads (csp2, "src", vcrop, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking vcrop->csp"); ++ if (!gst_element_link_pads (vcrop, "src", csp, "sink")) ++ goto link_failed; ++ } else { ++ GST_DEBUG ("linking src->csp"); ++ if (!gst_element_link_pads (src, "src", csp, "sink")) ++ goto link_failed; ++ } + + GST_DEBUG ("linking csp->vscale"); + if (!gst_element_link_pads_full (csp, "src", vscale, "sink", +@@ -193,8 +231,12 @@ no_elements: + { + if (src) + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + if (csp) + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + if (vscale) + gst_object_unref (vscale); + if (sink) +@@ -209,7 +251,11 @@ no_elements: + no_pipeline: + { + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + gst_object_unref (vscale); + gst_object_unref (sink); + +@@ -282,7 +328,8 @@ gst_video_convert_sample (GstSample * sample, const GstCaps * to_caps, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &err); + if (!pipeline) + goto no_pipeline; + +@@ -646,8 +693,8 @@ gst_video_convert_sample_async (GstSample * sample, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, +- &error); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &error); + if (!pipeline) + goto no_pipeline; + +-- +2.5.0 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch deleted file mode 100644 index aa55de10e..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch +++ /dev/null @@ -1,37 +0,0 @@ -From b608d027fff6efc2d1988ebf169cbe3b2b44a61b Mon Sep 17 00:00:00 2001 -From: zhouming <b42586@freescale.com> -Date: Thu, 8 May 2014 12:01:17 +0800 -Subject: [PATCH] ENGR00312034: do not change eos event to gap event if no - data has passed to streamsynchronizer. - -https://bugzilla.gnome.org/show_bug.cgi?id=727074 - -Upstream-Status: Pending - -Signed-off-by: zhouming <b42586@freescale.com> ---- - gst/playback/gststreamsynchronizer.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index 3997d1b..3e17c55 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -488,12 +488,11 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - } - g_slist_free (pads); - } else { -- /* if EOS, but no data has passed, then send something to replace EOS -- * for preroll purposes */ -+ /* if EOS, but no data has passed, then send EOS event */ - if (!seen_data) { - GstEvent *gap_event; - -- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE); -+ gap_event = gst_event_new_eos (); - ret = gst_pad_push_event (srcpad, gap_event); - } else { - GstEvent *gap_event; --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch deleted file mode 100755 index f24bc7cd6..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch +++ /dev/null @@ -1,49 +0,0 @@ -commit f9536544f5ad182b4f78d0143d1daa45dd64e624 -Author: Song Bing <b06498@freescale.com> -Date: Thu Oct 9 17:37:43 2014 +0800 - -[gststreamsynchronizer] send EOS event insterd of GAP event as GAP -event has issue when A/V have different duration. - -send EOS event insterd of GAP event as GAP event has issue when A/V have different duration. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655] - -Signed-off-by: Song Bing <b06498@freescale.com> - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index 3e17c55..ff42d72 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -488,19 +488,24 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - } - g_slist_free (pads); - } else { -- /* if EOS, but no data has passed, then send EOS event */ -+ /* if EOS, but no data has passed, then send something to replace EOS -+ * for preroll purposes */ - if (!seen_data) { -- GstEvent *gap_event; -+ GstEvent *eos_event; - -- gap_event = gst_event_new_eos (); -- ret = gst_pad_push_event (srcpad, gap_event); -+ /* FIXME: change to EOS event as GAP event has issue when A/V have -+ * different duration */ -+ eos_event = gst_event_new_eos (); -+ ret = gst_pad_push_event (srcpad, eos_event); - } else { -- GstEvent *gap_event; -+ GstEvent *eos_event; - - /* FIXME: Also send a GAP event to let audio sinks start their - * clock in case they did not have enough data yet */ -- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE); -- ret = gst_pad_push_event (srcpad, gap_event); -+ /* FIXME: change to EOS event as GAP event has issue when A/V have -+ * different duration */ -+ eos_event = gst_event_new_eos (); -+ ret = gst_pad_push_event (srcpad, eos_event); - } - } - gst_object_unref (srcpad); diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch deleted file mode 100755 index 731be686d..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 3f7052aac5e0118a9a9e09fff2f65091be448972 -Author: Song Bing <b06498@freescale.com> -Date: Thu Oct 23 13:35:13 2014 +0800 - -[streamsynchronizer] One stream can finish playback. - -As changed GAP event EOS event, so EOS will send more times, which will -cause send function return error. -Streamsynchronizer will don’t send second track EOS event if send the -first track EOS return fail. Fixed by ignore the return error. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655] - -Signed-off-by: Song Bing b06498@freescale.com - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index ff42d72..d1732c3 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -482,7 +482,10 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - while (epad) { - pad = epad->data; - GST_DEBUG_OBJECT (pad, "Pushing EOS"); -- ret = ret && gst_pad_push_event (pad, gst_event_new_eos ()); -+ /* FIXME: remove error check as GAP changed to EOS will send EOS -+ * more times, which will cause return error and then don't send -+ * EOS event to following tracks. */ -+ gst_pad_push_event (pad, gst_event_new_eos ()); - gst_object_unref (pad); - epad = g_slist_next (epad); - } diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch deleted file mode 100755 index ef3f75fba..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch +++ /dev/null @@ -1,54 +0,0 @@ -Author: Lyon Wang <b12696@freescale.com> -Date: Thu Oct 9 17:37:43 2014 +0800 - -[id3v2frames] Bug fix for id3demux issue - -Fix the issue that id3 tags utf16 charaters cannot be extreacted in id3demux -when I tried to get the id3v2 tag such as TIT2, TALB etc. it will return extrac -failed. - -Checked in id3v2frame.c, When parse the UTF-16 streams, it used g_convert() to -convert the buffer from UTF-16 to UTF-8, however it will return err that this -conversion is not supported which cause the extraction failed with these UTF-16 -characters. - -In the patch, use g_utf16_to_utf8() instead of g_convert, which can convert the -character format successfully. - -https://bugzilla.gnome.org/show_bug.cgi?id=741144 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Lyon Wang <b12696@freescale.com> - -diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c -old mode 100644 -new mode 100755 -index 3785c2a..7b9d8ac ---- a/gst-libs/gst/tag/id3v2frames.c -+++ b/gst-libs/gst/tag/id3v2frames.c -@@ -1057,14 +1057,17 @@ parse_insert_string_field (guint8 encoding, gchar * data, gint data_size, - data_size -= 2; - } - -- field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL); -- -- if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) { -- /* As a fallback, try interpreting UTF-16 in the other endianness */ -- if (in_encode == utf16beenc) -- field = g_convert (data, data_size, "UTF-8", utf16leenc, -- NULL, NULL, NULL); -+ if (in_encode == utf16beenc) { -+ gunichar2 *data_utf16; -+ guint i; -+ data_utf16 = (gunichar2 *) data; -+ for (i=0; i<(data_size>>1); i++) { -+ data_utf16[i] = GUINT16_TO_LE (data_utf16[i]); -+ } - } -+ //field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL); -+ field = g_utf16_to_utf8((gunichar2 *)data, (glong)(data_size>>1), NULL, NULL, NULL); -+ - } - - break; diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch deleted file mode 100755 index 833ce72bb..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch +++ /dev/null @@ -1,64 +0,0 @@ -From bcb2b8b6f49e7c66124a4f5e07dea829d5ebfe59 Mon Sep 17 00:00:00 2001 -From: Lyon Wang <lyon.wang@freescale.com> -Date: Mon, 15 Dec 2014 16:52:07 +0800 -Subject: [PATCH] handle audio/video decoder error - -When there is input data and no output data to the end of the stream, it will -send GST_ELEMENT_ERROR, So the clips playing will quit. -However, if only one of the tracks is corrupt, there is no need to quit other -tracks playing. - -The patch comments the GST_ELEMENT_ERROR() and just add GST_ERROR_OBJECT() -information instead. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=741542] - -Signed-off-by: Lyon Wang <lyon.wang@freescale.com> ---- - gst-libs/gst/audio/gstaudiodecoder.c | 5 +++-- - gst-libs/gst/video/gstvideodecoder.c | 5 +++-- - 2 files changed, 6 insertions(+), 4 deletions(-) - mode change 100644 => 100755 gst-libs/gst/audio/gstaudiodecoder.c - mode change 100644 => 100755 gst-libs/gst/video/gstvideodecoder.c - -diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c -old mode 100644 -new mode 100755 -index c2e7a28..891df0a ---- a/gst-libs/gst/audio/gstaudiodecoder.c -+++ b/gst-libs/gst/audio/gstaudiodecoder.c -@@ -2123,9 +2123,10 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event) - GST_AUDIO_DECODER_STREAM_UNLOCK (dec); - - if (dec->priv->ctx.had_input_data && !dec->priv->ctx.had_output_data) { -- GST_ELEMENT_ERROR (dec, STREAM, DECODE, -+ /* GST_ELEMENT_ERROR (dec, STREAM, DECODE, - ("No valid frames decoded before end of stream"), -- ("no valid frames found")); -+ ("no valid frames found")); */ -+ GST_ERROR_OBJECT(dec, "No valid frames decoded before end of stream"); - } - - /* send taglist if no valid frame is decoded util EOS */ -diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c -old mode 100644 -new mode 100755 -index ac581e1..4278bcd ---- a/gst-libs/gst/video/gstvideodecoder.c -+++ b/gst-libs/gst/video/gstvideodecoder.c -@@ -1068,9 +1068,10 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder, - - /* Error out even if EOS was ok when we had input, but no output */ - if (ret && priv->had_input_data && !priv->had_output_data) { -- GST_ELEMENT_ERROR (decoder, STREAM, DECODE, -+ /* GST_ELEMENT_ERROR (decoder, STREAM, DECODE, - ("No valid frames decoded before end of stream"), -- ("no valid frames found")); -+ ("no valid frames found")); */ -+ GST_ERROR_OBJECT(decoder, "No valid frames decoded before end of stream"); - } - - /* Forward EOS immediately. This is required because no --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch new file mode 100644 index 000000000..01e944ddd --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch @@ -0,0 +1,47 @@ +From 10d2a977ee1d469f0bf9059bb2d0b55fd2eecbac Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 20 Jan 2016 13:00:00 -0800 +Subject: [PATCH] make gio_unix_2_0 dependency configurable + +Prior to 1.7.1, gst-plugins-base accepted a configure option to +disable gio_unix_2_0, however it was implemented incorrectly using +AG_GST_CHECK_FEATURE. That was fixed in 1.7.1 by making the +dependency unconditional. + + http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=aadefefba88afe4acbe64454650f24e7ce7c8d70 + +To make builds deterministic, re-instate support for +--disable-gio_unix_2_0, but implement it using the AC_ARG_ENABLE +instead of AG_GST_CHECK_FEATURE. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + configure.ac | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 9c52aeb..26cacd6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -747,9 +747,16 @@ AC_SUBST(FT2_CFLAGS) + AC_SUBST(FT2_LIBS) + + dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c *** ++AC_ARG_ENABLE([gio_unix_2_0], ++ [AS_HELP_STRING([--disable-gio_unix_2_0],[disable use of gio_unix_2_0])], ++ [], ++ [enable_gio_unix_2_0=yes]) ++ ++if test "x${enable_gio_unix_2_0}" != "xno"; then + PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24, + HAVE_GIO_UNIX_2_0="yes", + HAVE_GIO_UNIX_2_0="no") ++fi + AM_CONDITIONAL(USE_GIO_UNIX_2_0, test "x$HAVE_GIO_UNIX_2_0" = "xyes") + + dnl *** finalize CFLAGS, LDFLAGS, LIBS +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch deleted file mode 100644 index 62a52b038..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 68fa1b1425ad2c5f7c5013d0943153a8a6d0934e Mon Sep 17 00:00:00 2001 -From: Jian Li <lj.qfy.sh@gmail.com> -Date: Wed, 24 Sep 2014 17:21:02 +0800 -Subject: [PATCH] taglist not send to down stream if all the frame corrupted - -https://bugzilla.gnome.org/show_bug.cgi?id=737246 - -Upstream-Status: Pending - -Signed-off-by: Jian Li <lj.qfy.sh@gmail.com> ---- - gst-libs/gst/audio/gstaudiodecoder.c | 9 +++++++++ - gst-libs/gst/video/gstvideodecoder.c | 8 ++++++++ - 2 files changed, 17 insertions(+) - -diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c -index 3504678..3d69efe 100644 ---- a/gst-libs/gst/audio/gstaudiodecoder.c -+++ b/gst-libs/gst/audio/gstaudiodecoder.c -@@ -2083,6 +2083,15 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event) - gst_audio_decoder_drain (dec); - GST_AUDIO_DECODER_STREAM_UNLOCK (dec); - -+ /* send taglist if no valid frame is decoded util EOS */ -+ if (dec->priv->taglist && dec->priv->taglist_changed) { -+ GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, dec->priv->taglist); -+ if (!gst_tag_list_is_empty (dec->priv->taglist)) -+ gst_audio_decoder_push_event (dec, -+ gst_event_new_tag (gst_tag_list_ref (dec->priv->taglist))); -+ dec->priv->taglist_changed = FALSE; -+ } -+ - /* Forward EOS because no buffer or serialized event will come after - * EOS and nothing could trigger another _finish_frame() call. */ - ret = gst_audio_decoder_push_event (dec, event); -diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c -index dd8abe3..d9bfe4d 100644 ---- a/gst-libs/gst/video/gstvideodecoder.c -+++ b/gst-libs/gst/video/gstvideodecoder.c -@@ -1024,6 +1024,14 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder, - * parent class' ::sink_event() until a later time. - */ - forward_immediate = TRUE; -+ -+ /* send taglist if no valid frame is decoded util EOS */ -+ if (decoder->priv->tags && decoder->priv->tags_changed) { -+ gst_video_decoder_push_event (decoder, -+ gst_event_new_tag (gst_tag_list_ref (decoder->priv->tags))); -+ decoder->priv->tags_changed = FALSE; -+ } -+ - break; - } - case GST_EVENT_GAP: --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch deleted file mode 100755 index 8cfda955a..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 88d253ea23b06289df40401160b606323f16c910 -Author: Song Bing <b06498@freescale.com> -Date: Mon Dec 15 09:34:35 2014 +0800 - -videopool: update video alignment after video alignment - -Video buffer pool will update video alignment to respect stride alignment -requirement. But haven't update it to video alignment in configure. -Which will cause user get wrong video alignment. - -https://bugzilla.gnome.org/show_bug.cgi?id=741501 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Song Bing <b06498@freescale.com> -diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c -index 4475f45..acef594 100644 ---- a/gst-libs/gst/video/gstvideopool.c -+++ b/gst-libs/gst/video/gstvideopool.c -@@ -167,6 +167,7 @@ video_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* get an apply the alignment to the info */ - gst_buffer_pool_config_get_video_alignment (config, &priv->video_align); - gst_video_info_align (&info, &priv->video_align); -+ gst_buffer_pool_config_set_video_alignment (config, &priv->video_align); - } - priv->info = info; - -diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c -index 6cc2cfa..6a1cbc9 100644 ---- a/sys/ximage/ximagepool.c -+++ b/sys/ximage/ximagepool.c -@@ -597,6 +597,8 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* do padding and alignment */ - gst_video_info_align (&info, &priv->align); - -+ gst_buffer_pool_config_set_video_alignment (config, &priv->align); -+ - /* we need the video metadata too now */ - priv->add_metavideo = TRUE; - } else { -diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c -index 244a51a..34b1ab2 100644 ---- a/sys/xvimage/xvimagepool.c -+++ b/sys/xvimage/xvimagepool.c -@@ -124,6 +124,8 @@ xvimage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* do padding and alignment */ - gst_video_info_align (&info, &priv->align); - -+ gst_buffer_pool_config_set_video_alignment (config, &priv->align); -+ - /* we need the video metadata too now */ - priv->add_metavideo = TRUE; - } else { diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch deleted file mode 100644 index b47696911..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c3f7d36b992a3cbcee3386dea85720f3cb04e1ff Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Fri, 27 Mar 2015 13:39:43 +0800 -Subject: [PATCH] videoencoder: Keep sticky events around when doing a soft - reset - -The current code will first discard all frames, and then tries to copy -all sticky events from the (now discarded) frames. Let's change the order. - -https://bugzilla.gnome.org/show_bug.cgi?id=746865 - -Upstream-Status: Accepted - ---- - gst-libs/gst/video/gstvideoencoder.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c -index 614ba2d..4c5b111 100644 ---- a/gst-libs/gst/video/gstvideoencoder.c -+++ b/gst-libs/gst/video/gstvideoencoder.c -@@ -340,10 +340,6 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard) - - priv->drained = TRUE; - -- g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL); -- g_list_free (priv->frames); -- priv->frames = NULL; -- - priv->bytes = 0; - priv->time = 0; - -@@ -392,6 +388,10 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard) - encoder->priv->current_frame_events); - } - -+ g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL); -+ g_list_free (priv->frames); -+ priv->frames = NULL; -+ - GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder); - - return ret; --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb deleted file mode 100644 index b09c2cb58..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb +++ /dev/null @@ -1,30 +0,0 @@ -include gstreamer1.0-plugins-base.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ - file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ - file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ - " - -SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \ - file://get-caps-from-src-pad-when-query-caps.patch \ - file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \ - file://fix-id3demux-utf16-to-utf8-issue.patch \ - file://handle-audio-video-decoder-error.patch \ - file://videobuffer_updata_alignment_update.patch \ - file://0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \ - file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \ - file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \ - file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \ - file://do-not-change-eos-event-to-gap-event2.patch \ - file://do-not-change-eos-event-to-gap-event3.patch \ - file://0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch \ - file://0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch \ - file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ - file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \ - file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \ -" - -SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e" -SRC_URI[sha256sum] = "77bd8199e7a312d3d71de9b7ddf761a3b78560a2c2a80829d0815ca39cbd551d" - -S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb new file mode 100644 index 000000000..429dc9338 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb @@ -0,0 +1,25 @@ +include gstreamer1.0-plugins-base.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +# Note: The dependency on freetype was dropped shortly after the 1.7.1 release +# so these lines should be removed during the update to 1.8.x +# http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=183610c035dd6955c9b3540b940aec50474af031 +DEPENDS += "freetype" +EXTRA_OECONF += "--disable-freetypetest" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ + file://get-caps-from-src-pad-when-query-caps.patch \ + file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ + file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \ + file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \ + file://0005-convertframe-Support-video-crop-when-convert-frame.patch \ +" + +SRC_URI[md5sum] = "3ddde0ad598ef69f58d6a2e87f8b460f" +SRC_URI[sha256sum] = "b6154f8fdba4877e95efd94610ef0ada4f0171cd12eb829a3c3c97345d9c7a75" + +S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb index fbe3a42cd..38a9fcc29 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb @@ -3,17 +3,25 @@ DEFAULT_PREFERENCE = "-1" include gstreamer1.0-plugins-base.inc LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ - file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ - " + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" -S = "${WORKDIR}/git" +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-base;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://make-gio_unix_2_0-dependency-configurable.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" -SRCREV = "8d4cb64a4b9d84b10076bf350f80a0d6ea68ec2d" +SRCREV_base = "97e108bebaa58821f4566a74cbf0135e93407c01" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc index edaafe842..4621bf894 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc @@ -2,52 +2,52 @@ require gstreamer1.0-plugins.inc LICENSE = "GPLv2+ & LGPLv2.1+" -# libid3tag -DEPENDS += "gstreamer1.0-plugins-base zlib bzip2 libcap" +DEPENDS += "gstreamer1.0-plugins-base libcap zlib bzip2" inherit gettext - PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${GSTREAMER_ORC} \ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ - orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\ - " + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib v4l2 \ +" X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" -X11ENABLEOPTS = "--enable-x --enable-xshm" -X11DISABLEOPTS = "--disable-x --disable-xshm" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" -PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" + PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394" PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev" -PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,libv4l2" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng" +PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,libv4l2" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4" PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib" +PACKAGECONFIG[v4l2] = "--enable-gst_v4l2,--disable-gst_v4l2" PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx" PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" -PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" -PACKAGECONFIG[v4l2] = "--enable-gst_v4l2,--disable-gst_v4l2" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}" EXTRA_OECONF += " \ + --enable-bz2 \ --enable-oss \ + --enable-zlib \ + --disable-aalib \ + --disable-aalibtest \ --disable-directsound \ - --disable-waveform \ + --disable-libcaca \ + --disable-libdv \ --disable-oss4 \ - --disable-sunaudio \ --disable-osx_audio \ --disable-osx_video \ - --disable-aalib \ - --disable-libcaca \ - --disable-libdv \ --disable-shout2 \ - --disable-examples \ + --disable-sunaudio \ + --disable-waveform \ " FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..c7f3630ec --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,44 @@ +From 4bfe2c8570a4a7080ec662504882969054d8a072 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 3 Feb 2016 18:12:38 -0800 +Subject: [PATCH] avoid including <sys/poll.h> directly + +musl libc generates warnings if <sys/poll.h> is included directly. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + ext/raw1394/gstdv1394src.c | 2 +- + ext/raw1394/gsthdv1394src.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c +index dbc7607..3c42b41 100644 +--- a/ext/raw1394/gstdv1394src.c ++++ b/ext/raw1394/gstdv1394src.c +@@ -37,7 +37,7 @@ + #include "config.h" + #endif + #include <unistd.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <errno.h> + #include <fcntl.h> +diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c +index 0b07a37..9785a15 100644 +--- a/ext/raw1394/gsthdv1394src.c ++++ b/ext/raw1394/gsthdv1394src.c +@@ -36,7 +36,7 @@ + #include "config.h" + #endif + #include <unistd.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <errno.h> + #include <fcntl.h> +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch deleted file mode 100755 index 288631bf7..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit d71d74daac8ed54156ed103958ab455c63c72b0e -Author: Song Bing <b06498@freescale.com> -Date: Mon Nov 10 11:25:47 2014 +0800 - -[asteriskh263] decrease the rank as we havn't this kind of decoder. - -Decrease the rank as we havn't this kind of decoder. - -https://bugzilla.gnome.org/show_bug.cgi?id=739935 - -Upstream-Status: Pending - -Signed-off-by: Song Bing <b06498@freescale.com> - -diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c -index a01fbc8..8fa3194 100644 ---- a/gst/rtp/gstasteriskh263.c -+++ b/gst/rtp/gstasteriskh263.c -@@ -226,5 +226,5 @@ gboolean - gst_asteriskh263_plugin_init (GstPlugin * plugin) - { - return gst_element_register (plugin, "asteriskh263", -- GST_RANK_SECONDARY, GST_TYPE_ASTERISK_H263); -+ GST_RANK_SECONDARY - 1, GST_TYPE_ASTERISK_H263); - } diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch new file mode 100644 index 000000000..bc7ac0b6a --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch @@ -0,0 +1,40 @@ +From 2169f2205c0205a220d826d7573e5a863bd36e0a Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 9 Feb 2016 14:00:00 -0800 +Subject: [PATCH] ensure valid sentinal for gst_structure_get() + +gst_structure_get() is declared with G_GNUC_NULL_TERMINATED, ie +__attribute__((__sentinel__)), which means gcc will generate a +warning if the last parameter passed to the function is not NULL +(where a valid NULL in this context is defined as zero with any +pointer type). + +The C code callers to gst_structure_get() within gst-plugins-good +use the C NULL definition (ie ((void*)0)), which is a valid sentinel. + +However gstid3v2mux.cc uses the C++ NULL definition (ie 0L), which +is not a valid sentinel without an explicit cast to a pointer type. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + ext/taglib/gstid3v2mux.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc +index 8651e77..a87234f 100644 +--- a/ext/taglib/gstid3v2mux.cc ++++ b/ext/taglib/gstid3v2mux.cc +@@ -465,7 +465,7 @@ add_image_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, + + if (info_struct) { + if (gst_structure_get (info_struct, "image-type", +- GST_TYPE_TAG_IMAGE_TYPE, &image_type, NULL)) { ++ GST_TYPE_TAG_IMAGE_TYPE, &image_type, (void *) NULL)) { + if (image_type > 0 && image_type <= 18) { + image_type += 2; + } else { +-- +1.9.1 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb index 943ab6039..0b4f43690 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb @@ -4,10 +4,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" -SRC_URI += "file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \ - file://decrease_asteriskh263_rank.patch \ +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \ " -SRC_URI[md5sum] = "eaf1a6daf73749bc423feac301d60038" -SRC_URI[sha256sum] = "79b1b5f3f7bcaa8a615202eb5e176121eeb8336960f70687e536ad78dbc7e641" + +SRC_URI[md5sum] = "a1958df7aa498b42793e2f2048673815" +SRC_URI[sha256sum] = "24b19db70b2a83461ebddfe20033db432dadfdb5d4b54ffb1dfa0d830134a177" S = "${WORKDIR}/gst-plugins-good-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb index 2c0e0efe6..9cadc9afc 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb @@ -6,13 +6,23 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" -S = "${WORKDIR}/git" +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-good;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://avoid-including-sys-poll.h-directly.patch \ + file://ensure-valid-sentinel-for-gst_structure_get.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" -SRCREV = "fd0123800c8c1cf1468c0fa5d592ad0d0d8b4140" +SRCREV_base = "1b6fdce67c15d59957e395b1957aa625322092d4" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc index 63ba31632..aff223072 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc @@ -7,12 +7,14 @@ DEPENDS += "gstreamer1.0-plugins-base libid3tag" inherit gettext - PACKAGECONFIG ??= " \ - orc a52dec lame mad mpeg2dec \ - " + ${GSTREAMER_ORC} \ + a52dec lame mad mpeg2dec \ +" PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame" @@ -20,11 +22,10 @@ PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec" PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" - EXTRA_OECONF += " \ - --disable-amrnb \ - --disable-amrwb \ --disable-sidplay \ --disable-twolame \ - " +" +FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" +FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb deleted file mode 100644 index 25cb28c06..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb +++ /dev/null @@ -1,10 +0,0 @@ -include gstreamer1.0-plugins-ugly.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 " - -SRC_URI[md5sum] = "6954beed7bb9a93e426dee543ff46393" -SRC_URI[sha256sum] = "5cd5e81cf618944f4dc935f1669b2125e8bb2fe9cc7dc8dc15b72237aca49067" - -S = "${WORKDIR}/gst-plugins-ugly-${PV}" - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb new file mode 100644 index 000000000..7edfb81d2 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb @@ -0,0 +1,13 @@ +include gstreamer1.0-plugins-ugly.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ +" + +SRC_URI[md5sum] = "dbd92afb3816cbfa90ab1f197144a2e2" +SRC_URI[sha256sum] = "2fecf7b7c7882f8f62f1900048f4013f98c214fb3d3303d8d812245bb41fd064" + +S = "${WORKDIR}/gst-plugins-ugly-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb index dcf5ffc3c..69afe4cfb 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb @@ -3,15 +3,39 @@ DEFAULT_PREFERENCE = "-1" include gstreamer1.0-plugins-ugly.inc LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 " + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "8bdb68edbc605e21314b608e7a39bdbaab7302b8" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" S = "${WORKDIR}/git" -SRCREV = "06b8ac10cee85c5c304ca320997aa8f44295a66f" +# The mpg123 plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=43bd45ba991ef3247957ca37cdcb52f4b8c0acb1 +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } +# In 1.7.2, the mpg123 plugin was moved from -bad to -ugly +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=08d8aefcdaaf89ecb6dd53ec1e4f95cd42d01664 +# https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=43bd45ba991ef3247957ca37cdcb52f4b8c0acb1 + +PACKAGESPLITFUNCS_append = " handle_mpg123_rename " + +python handle_mpg123_rename () { + d.setVar('RPROVIDES_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') + d.setVar('RREPLACES_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') + d.setVar('RCONFLICTS_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') +} diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc index f1783b768..2dcec509d 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc @@ -2,58 +2,39 @@ SUMMARY = "Plugins for the GStreamer multimedia framework 1.x" HOMEPAGE = "http://gstreamer.freedesktop.org/" BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" SECTION = "multimedia" -DEPENDS = "gstreamer1.0" -inherit autotools pkgconfig +DEPENDS = "gstreamer1.0 glib-2.0-native" -GSTREAMER_1_0_DEBUG ?= "--disable-debug" -GSTREAMER_1_0_GIT_BRANCH ?= "master" -EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_1_0_DEBUG} --disable-examples " +inherit autotools pkgconfig upstream-version-is-even gobject-introspection acpaths = "-I ${S}/common/m4 -I ${S}/m4" LIBV = "1.0" require gst-plugins-package.inc +# Orc enables runtime JIT compilation of data processing routines from Orc +# bytecode to SIMD instructions for various architectures (currently SSE, MMX, +# MIPS, Altivec and NEON are supported). + +GSTREAMER_ORC ?= "orc" + +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc orc-native" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" export ORCC = "${STAGING_DIR_NATIVE}${bindir}/orcc" -PACKAGES_DYNAMIC = "^${PN}-.*" +EXTRA_OECONF = " \ + --disable-examples \ +" -# apply gstreamer hack after Makefile.in.in in source is replaced by our version from -# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed -# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html -oe_runconf_prepend() { - if [ -e ${S}/po/Makefile.in.in ]; then - sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in - fi -} +SRC_URI_append = " file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch" -SRC_URI = "${@get_gst_srcuri(d)}" - -def get_gst_srcuri(d): - # check if expected prefix is present - prefix = "gstreamer1.0-" - bpn = d.getVar("BPN", True) - if not bpn.startswith(prefix): - bb.fatal('Invalid GStreamer 1.0 plugin package name "%s" : must start with "%s"' % (bpn, prefix)) - - # replaced prefix with "gst-", which is what is used for the tarball and repository filenames - gstpkg_basename = "gst-" + bpn[len(prefix):] - pv = d.getVar("PV", True) - branch = d.getVar("GSTREAMER_1_0_GIT_BRANCH", True) - - if pv == "git": - s = "git://anongit.freedesktop.org/gstreamer/%s;branch=%s" % (gstpkg_basename, branch) - else: - s = "http://gstreamer.freedesktop.org/src/%s/%s-%s.tar.xz" % (gstpkg_basename, gstpkg_basename, pv) - return s - -delete_liblink_m4_file() { - # This m4 file contains nastiness which conflicts with libtool 2.2.2 - rm "${S}/m4/lib-link.m4" || true +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true } -do_configure[prefuncs] += " delete_liblink_m4_file " +do_configure[prefuncs] += " delete_pkg_m4_file" +PACKAGES_DYNAMIC = "^${PN}-.*" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc index 28a9420f8..ae6d36477 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc @@ -1,14 +1,24 @@ SUMMARY = "A library on top of GStreamer for building an RTSP server" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" SECTION = "multimedia" LICENSE = "LGPLv2" -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" + DEPENDS = "gstreamer1.0 libcgroup gstreamer1.0-plugins-base" PNREAL = "gst-rtsp-server" -SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" +SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \ + file://0001-Don-t-hardcode-libtool-name-when-using-introspection.patch \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch" S = "${WORKDIR}/${PNREAL}-${PV}" -inherit autotools pkgconfig +inherit autotools pkgconfig upstream-version-is-even gobject-introspection + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true +} + +do_configure[prefuncs] += " delete_pkg_m4_file" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch new file mode 100644 index 000000000..89d6384ad --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch @@ -0,0 +1,27 @@ +From 4a12569e5ae5be63cd92a9b178860026a99746b1 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 27 Oct 2015 16:55:45 +0200 +Subject: [PATCH] Don't hardcode libtool name when using introspection + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst/rtsp-server/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/rtsp-server/Makefile.am b/gst/rtsp-server/Makefile.am +index 4fcd366..c67f5ab 100644 +--- a/gst/rtsp-server/Makefile.am ++++ b/gst/rtsp-server/Makefile.am +@@ -87,7 +87,7 @@ GstRtspServer-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtspserver-@ + --include=Gst-@GST_API_VERSION@ \ + --include=GstRtsp-@GST_API_VERSION@ \ + --include=GstNet-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-rtsp-@GST_API_VERSION@ \ + --pkg gstreamer-net-@GST_API_VERSION@ \ +-- +2.1.4 + diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb deleted file mode 100644 index bb9b42b53..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb +++ /dev/null @@ -1,6 +0,0 @@ -include gstreamer1.0-rtsp-server.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" - -SRC_URI[md5sum] = "a9f9b8899ec7ab33663cda7627db40d3" -SRC_URI[sha256sum] = "3089254bd31b7c1f1cf2c034a3b3551f92878f9e3cab65cef3a901a04c0f1d37" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb new file mode 100644 index 000000000..5bdae6cf9 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb @@ -0,0 +1,6 @@ +include gstreamer1.0-rtsp-server.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" + +SRC_URI[md5sum] = "a1cafefb5fc14ac5d7e7d8cdbdfa9694" +SRC_URI[sha256sum] = "0f51f9879556c0950203c766b09a1b62f1f25b17f9a7d516e01b13ecf93c8858" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc index be8aa8f9c..10b4668e5 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc @@ -5,25 +5,54 @@ HOMEPAGE = "http://gstreamer.freedesktop.org/" BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" SECTION = "multimedia" LICENSE = "LGPLv2+" -DEPENDS = "glib-2.0 libxml2 bison-native flex-native" -inherit autotools pkgconfig gettext +DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" + +inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection + +# This way common/m4/introspection.m4 will come first +# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file) +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI_append = " \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ +" + +PACKAGECONFIG ??= "" -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" PACKAGECONFIG[check] = "--enable-check,--disable-check" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind," -EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ - --disable-dependency-tracking \ - --disable-examples --disable-tests \ - --disable-valgrind \ - " +EXTRA_OECONF = " \ + --disable-dependency-tracking \ + --disable-docbook \ + --disable-examples \ + --disable-gtk-doc \ +" -RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# musl libc generates warnings if <sys/poll.h> is included directly +CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no" + +PACKAGES += "${PN}-bash-completion" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" +FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" -CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true +} -FILES_${PN} += " ${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += " ${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a" -FILES_${PN}-dbg += " ${libdir}/gstreamer-1.0/.debug/ ${libexecdir}/gstreamer-1.0/.debug/" +do_configure[prefuncs] += " delete_pkg_m4_file" +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" +} diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch deleted file mode 100644 index 8213c4b8b..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 81fecd367b016e5ac4fb0c04b84da5c474f30da6 Mon Sep 17 00:00:00 2001 -From: Peter Urbanec <git.user@urbanec.net> -Date: Fri, 27 Feb 2015 01:16:58 +1100 -Subject: [PATCH 1/1] gstinfo: Shorten __FILE__ on all platforms. - -This is useful not only for MSVC, but also with gcc/Linux when doing -cross-compilation builds and out-of-tree builds. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=745213] - -Signed-off-by: Peter Urbanec <git.user@urbanec.net> ---- - gst/gstinfo.c | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) - -diff --git a/gst/gstinfo.c b/gst/gstinfo.c -index b2a3005..8b61d09 100644 ---- a/gst/gstinfo.c -+++ b/gst/gstinfo.c -@@ -444,7 +444,6 @@ gst_debug_log (GstDebugCategory * category, GstDebugLevel level, - va_end (var_args); - } - --#ifdef G_OS_WIN32 - /* based on g_basename(), which we can't use because it was deprecated */ - static inline const gchar * - gst_path_basename (const gchar * file_name) -@@ -467,7 +466,6 @@ gst_path_basename (const gchar * file_name) - - return file_name; - } --#endif - - /** - * gst_debug_log_valist: -@@ -497,12 +495,11 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level, - g_return_if_fail (function != NULL); - g_return_if_fail (format != NULL); - -- /* The predefined macro __FILE__ is always the exact path given to the -- * compiler with MSVC, which may or may not be the basename. We work -- * around it at runtime to improve the readability. */ --#ifdef G_OS_WIN32 -+ /* The predefined macro __FILE__ can be an absolute path in some build -+ * environments, such as MSVC or out-of-tree cross-compiles. This may -+ * be significantly longer than the filename. We work around it at -+ * runtime to improve the readability. */ - file = gst_path_basename (file); --#endif - - message.message = NULL; - message.format = format; --- -2.3.0 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch deleted file mode 100644 index 1505cbefc..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6914566ed6a89c96973a578aa5ecd01ee68cdcfd Mon Sep 17 00:00:00 2001 -From: Jian <Jian.Li@freescale.com> -Date: Thu, 14 May 2015 15:49:43 +0800 -Subject: [PATCH] basesink: Fix QoS/lateness checking if subclass implements - prepare/prepare_list vfuncs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In basesink functions gst_base_sink_chain_unlocked(), below code is used to -checking if buffer is late before doing prepare call to save some effort: - if (syncable && do_sync) - late = - gst_base_sink_is_too_late (basesink, obj, rstart, rstop, - GST_CLOCK_EARLY, 0, FALSE); - - if (G_UNLIKELY (late)) - goto dropped; - -But this code has problem, it should calculate jitter based on current media -clock, rather than just passing 0. I found it will drop all the frames when -rewind in slow speed, such as -2X. - -https://bugzilla.gnome.org/show_bug.cgi?id=749258 - -Upstream-Status: Backport [1.5.1] ---- - libs/gst/base/gstbasesink.c | 26 ++++++++++++++++++++++---- - 1 file changed, 22 insertions(+), 4 deletions(-) - -diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c -index a505695..5fb2d6a 100644 ---- a/libs/gst/base/gstbasesink.c -+++ b/libs/gst/base/gstbasesink.c -@@ -3369,10 +3369,28 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, - if (G_UNLIKELY (stepped)) - goto dropped; - -- if (syncable && do_sync) -- late = -- gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -- GST_CLOCK_EARLY, 0, FALSE); -+ if (syncable && do_sync) { -+ GstClock *clock; -+ -+ GST_OBJECT_LOCK (basesink); -+ clock = GST_ELEMENT_CLOCK (basesink); -+ if (clock && GST_STATE (basesink) == GST_STATE_PLAYING) { -+ GstClockTime base_time; -+ GstClockTime stime; -+ GstClockTime now; -+ -+ base_time = GST_ELEMENT_CAST (basesink)->base_time; -+ stime = base_time + gst_base_sink_adjust_time (basesink, rstart); -+ now = gst_clock_get_time (clock); -+ GST_OBJECT_UNLOCK (basesink); -+ -+ late = -+ gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -+ GST_CLOCK_EARLY, GST_CLOCK_DIFF (stime, now), FALSE); -+ } else { -+ GST_OBJECT_UNLOCK (basesink); -+ } -+ } - - if (G_UNLIKELY (late)) - goto dropped; --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch deleted file mode 100755 index d682ee60c..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 73df2b5c0aea58015788f5a94a3ec65296a688d3 Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Thu, 2 Jul 2015 14:32:21 +0800 -Subject: [PATCH] basesink: Shouldn't drop buffer when sync=false - -Shouldn't drop buffer when sync=false - -Upstream-Status: Accepted - -https://bugzilla.gnome.org/show_bug.cgi?id=751819 ---- - libs/gst/base/gstbasesink.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c -index d44e8fc..cd759ac 100644 ---- a/libs/gst/base/gstbasesink.c -+++ b/libs/gst/base/gstbasesink.c -@@ -3423,7 +3423,7 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, - if (G_UNLIKELY (stepped)) - goto dropped; - -- if (syncable && do_sync) { -+ if (syncable && do_sync && gst_base_sink_get_sync (basesink)) { - GstClock *clock; - - GST_OBJECT_LOCK (basesink); --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch deleted file mode 100755 index f50ce6ff2..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 83bed90c306ed3185d48febf6441177d638f7341 Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Wed, 24 Dec 2014 10:13:51 +0800 -Subject: [PATCH] inputselector: sticky events haven't send out when active - track reach EOS - -EOS event hasn't been send to down-element. The resolution is block EOS event -of inactive pad, send the event after the pad actived. - -https://bugzilla.gnome.org/show_bug.cgi?id=740949 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Song Bing <b06498@freescale.com> ---- - plugins/elements/gstinputselector.c | 58 ++++++++++++++++++++++++++--------- - plugins/elements/gstinputselector.h | 1 + - 2 files changed, 45 insertions(+), 14 deletions(-) - -diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c -index fb50802..4461f7c 100644 ---- a/plugins/elements/gstinputselector.c -+++ b/plugins/elements/gstinputselector.c -@@ -440,6 +440,17 @@ gst_selector_pad_iterate_linked_pads (GstPad * pad, GstObject * parent) - } - - static gboolean -+gst_input_selector_eos_wait (GstInputSelector * self, GstSelectorPad * pad) -+{ -+ while (!self->eos && !self->flushing && !pad->flushing) { -+ /* we can be unlocked here when we are shutting down (flushing) or when we -+ * get unblocked */ -+ GST_INPUT_SELECTOR_WAIT (self); -+ } -+ return self->flushing; -+} -+ -+static gboolean - gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - { - gboolean res = TRUE; -@@ -486,6 +497,7 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - case GST_EVENT_FLUSH_START: - /* Unblock the pad if it's waiting */ - selpad->flushing = TRUE; -+ sel->eos = FALSE; - GST_INPUT_SELECTOR_BROADCAST (sel); - break; - case GST_EVENT_FLUSH_STOP: -@@ -523,21 +535,12 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - case GST_EVENT_EOS: - selpad->eos = TRUE; - -- if (forward) { -- selpad->eos_sent = TRUE; -- } else { -- GstSelectorPad *active_selpad; -- -- /* If the active sinkpad is in EOS state but EOS -- * was not sent downstream this means that the pad -- * got EOS before it was set as active pad and that -- * the previously active pad got EOS after it was -- * active -- */ -- active_selpad = GST_SELECTOR_PAD (active_sinkpad); -- forward = (active_selpad->eos && !active_selpad->eos_sent); -- active_selpad->eos_sent = TRUE; -+ if (!forward) { -+ /* blocked until active the sind pad or flush */ -+ gst_input_selector_eos_wait (sel, selpad); -+ forward = TRUE; - } -+ selpad->eos_sent = TRUE; - GST_DEBUG_OBJECT (pad, "received EOS"); - break; - case GST_EVENT_GAP:{ -@@ -676,6 +679,12 @@ gst_input_selector_wait_running_time (GstInputSelector * sel, - gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad)); - active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad); - -+ if (sel->eos) { -+ GST_DEBUG_OBJECT (sel, "Not waiting because inputselector reach EOS."); -+ GST_INPUT_SELECTOR_UNLOCK (sel); -+ return FALSE; -+ } -+ - if (seg->format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (selpad, - "Not waiting because we don't have a TIME segment"); -@@ -971,6 +980,12 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - - GST_INPUT_SELECTOR_LOCK (sel); -+ if (sel->eos) { -+ GST_DEBUG_OBJECT (pad, "inputselector eos."); -+ GST_INPUT_SELECTOR_UNLOCK (sel); -+ goto eos; -+ } -+ - /* wait or check for flushing */ - if (gst_input_selector_wait (sel, selpad)) { - GST_INPUT_SELECTOR_UNLOCK (sel); -@@ -1151,6 +1166,13 @@ flushing: - res = GST_FLOW_FLUSHING; - goto done; - } -+eos: -+ { -+ GST_DEBUG_OBJECT (pad, "We are eos, discard buffer %p", buf); -+ gst_buffer_unref (buf); -+ res = GST_FLOW_EOS; -+ goto done; -+ } - } - - static void gst_input_selector_dispose (GObject * object); -@@ -1309,6 +1331,7 @@ gst_input_selector_init (GstInputSelector * sel) - g_mutex_init (&sel->lock); - g_cond_init (&sel->cond); - sel->blocked = FALSE; -+ sel->eos = FALSE; - - /* lets give a change for downstream to do something on - * active-pad change before we start pushing new buffers */ -@@ -1377,6 +1400,11 @@ gst_input_selector_set_active_pad (GstInputSelector * self, GstPad * pad) - GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT, - self->active_sinkpad); - -+ if (old != new && new->eos && !new->eos_sent) { -+ self->eos = TRUE; -+ GST_INPUT_SELECTOR_BROADCAST (self); -+ } -+ - return TRUE; - } - -@@ -1771,6 +1799,7 @@ gst_input_selector_change_state (GstElement * element, - switch (transition) { - case GST_STATE_CHANGE_READY_TO_PAUSED: - GST_INPUT_SELECTOR_LOCK (self); -+ self->eos = FALSE; - self->blocked = FALSE; - self->flushing = FALSE; - GST_INPUT_SELECTOR_UNLOCK (self); -@@ -1779,6 +1808,7 @@ gst_input_selector_change_state (GstElement * element, - /* first unlock before we call the parent state change function, which - * tries to acquire the stream lock when going to ready. */ - GST_INPUT_SELECTOR_LOCK (self); -+ self->eos = TRUE; - self->blocked = FALSE; - self->flushing = TRUE; - GST_INPUT_SELECTOR_BROADCAST (self); -diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h -index 96c680f..9bf924f 100644 ---- a/plugins/elements/gstinputselector.h -+++ b/plugins/elements/gstinputselector.h -@@ -77,6 +77,7 @@ struct _GstInputSelector { - GMutex lock; - GCond cond; - gboolean blocked; -+ gboolean eos; - gboolean flushing; - }; - --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb deleted file mode 100644 index 73a4a9927..000000000 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb +++ /dev/null @@ -1,18 +0,0 @@ -include gstreamer1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ - file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" - -SRC_URI = " \ - http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ - file://0001-Fix-crash-with-gst-inspect.patch \ - file://0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch \ - file://inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch \ - file://0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch \ - file://0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch \ -" -SRC_URI[md5sum] = "88a9289c64a4950ebb4f544980234289" -SRC_URI[sha256sum] = "40801aa7f979024526258a0e94707ba42b8ab6f7d2206e56adbc4433155cb0ae" - -S = "${WORKDIR}/gstreamer-${PV}" - diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb new file mode 100644 index 000000000..ba1b83b08 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb @@ -0,0 +1,14 @@ +include gstreamer1.0.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://0001-Fix-crash-with-gst-inspect.patch \ +" + +SRC_URI[md5sum] = "b4cdeb2b9cb20dd6ac022a4f417eae0d" +SRC_URI[sha256sum] = "22f9568d67b87cf700a111f381144bd37cb93790a77e4e331db01fe854a37f24" + +S = "${WORKDIR}/gstreamer-${PV}" diff --git a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb index cb00d319a..7715bb202 100644 --- a/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb +++ b/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb @@ -5,14 +5,26 @@ include gstreamer1.0.inc LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" -SRC_URI = "git://anongit.freedesktop.org/gstreamer/gstreamer;branch=master" +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gstreamer;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "9e33bfa2c7a5f43da2c49b0a8235fd43cba9feaf" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + S = "${WORKDIR}/git" -SRCREV = "3b8181a8c550e74acaba4e8c55bdc649fa551dc9" +# The option to configure tracer hooks was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=e5ca47236e4df4683707f0bcf99181a937d358d5 +PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks," +PACKAGECONFIG[trace-historic] = "--enable-trace,--disable-trace," do_configure_prepend() { - cd ${S} - ./autogen.sh --noconfigure - cd ${B} + ${S}/autogen.sh --noconfigure } - diff --git a/yocto-poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/yocto-poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb index 94b66b189..8ff8889b6 100644 --- a/yocto-poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb +++ b/yocto-poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb @@ -13,6 +13,9 @@ SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \ SRC_URI[md5sum] = "caa9f5bc44232dc8aeea773fea56be80" SRC_URI[sha256sum] = "a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33" + +UPSTREAM_CHECK_URI = "http://liba52.sourceforge.net/downloads.html" + S = "${WORKDIR}/a52dec-${PV}" EXTRA_OECONF = " --enable-shared " diff --git a/yocto-poky/meta/recipes-multimedia/libav/libav/libav-fix-CVE-2014-9676.patch b/yocto-poky/meta/recipes-multimedia/libav/libav/libav-fix-CVE-2014-9676.patch deleted file mode 100644 index 1e31caa90..000000000 --- a/yocto-poky/meta/recipes-multimedia/libav/libav/libav-fix-CVE-2014-9676.patch +++ /dev/null @@ -1,98 +0,0 @@ -Upstream-Status: Backport - -Backport patch to fix CVE-2014-9676. - -https://security-tracker.debian.org/tracker/CVE-2014-9676 -https://git.libav.org/?p=libav.git;a=commit;h=b3f04657368a32a9903406395f865e230b1de348 - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -From b3f04657368a32a9903406395f865e230b1de348 Mon Sep 17 00:00:00 2001 -From: Luca Barbato <lu_zero@gentoo.org> -Date: Mon, 5 Jan 2015 10:40:41 +0100 -Subject: [PATCH] segment: Fix the failure paths - -A failure in segment_end() or segment_start() would lead to freeing -a dangling pointer and in general further calls to seg_write_packet() -or to seg_write_trailer() would have the same faulty behaviour. - -CC: libav-stable@libav.org -Reported-By: luodalongde@gmail.com ---- - libavformat/segment.c | 32 ++++++++++++++++++++------------ - 1 file changed, 20 insertions(+), 12 deletions(-) - -diff --git a/libavformat/segment.c b/libavformat/segment.c -index 52da6b9..bcfd1f9 100644 ---- a/libavformat/segment.c -+++ b/libavformat/segment.c -@@ -184,6 +184,13 @@ static void close_null_ctx(AVIOContext *pb) - av_free(pb); - } - -+static void seg_free_context(SegmentContext *seg) -+{ -+ avio_closep(&seg->pb); -+ avformat_free_context(seg->avf); -+ seg->avf = NULL; -+} -+ - static int seg_write_header(AVFormatContext *s) - { - SegmentContext *seg = s->priv_data; -@@ -265,12 +272,9 @@ static int seg_write_header(AVFormatContext *s) - } - - fail: -- if (ret) { -- if (seg->list) -- avio_close(seg->pb); -- if (seg->avf) -- avformat_free_context(seg->avf); -- } -+ if (ret < 0) -+ seg_free_context(seg); -+ - return ret; - } - -@@ -282,6 +286,9 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) - int64_t end_pts = seg->recording_time * seg->number; - int ret, can_split = 1; - -+ if (!oc) -+ return AVERROR(EINVAL); -+ - if (seg->has_video) { - can_split = st->codec->codec_type == AVMEDIA_TYPE_VIDEO && - pkt->flags & AV_PKT_FLAG_KEY; -@@ -322,11 +329,8 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) - ret = ff_write_chained(oc, pkt->stream_index, pkt, s); - - fail: -- if (ret < 0) { -- if (seg->list) -- avio_close(seg->pb); -- avformat_free_context(oc); -- } -+ if (ret < 0) -+ seg_free_context(seg); - - return ret; - } -@@ -335,7 +339,11 @@ static int seg_write_trailer(struct AVFormatContext *s) - { - SegmentContext *seg = s->priv_data; - AVFormatContext *oc = seg->avf; -- int ret; -+ int ret = 0; -+ -+ if (!oc) -+ goto fail; -+ - if (!seg->write_header_trailer) { - if ((ret = segment_end(oc, 0)) < 0) - goto fail; --- -2.4.1.314.g9532ead - diff --git a/yocto-poky/meta/recipes-multimedia/libav/libav_9.18.bb b/yocto-poky/meta/recipes-multimedia/libav/libav_9.18.bb deleted file mode 100644 index 210a649da..000000000 --- a/yocto-poky/meta/recipes-multimedia/libav/libav_9.18.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libav.inc - -SRC_URI[md5sum] = "75e838068a75fb88e1b4ea0546bc16f0" -SRC_URI[sha256sum] = "0875e835da683eef1a7bac75e1884634194149d7479d1538ba9fbe1614d066d7" - -SRC_URI += "file://libav-fix-CVE-2014-9676.patch" diff --git a/yocto-poky/meta/recipes-multimedia/libav/libpostproc_git.bb b/yocto-poky/meta/recipes-multimedia/libav/libpostproc_git.bb deleted file mode 100644 index 4aaa50f91..000000000 --- a/yocto-poky/meta/recipes-multimedia/libav/libpostproc_git.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "FFmpeg derived postprocessing library" -HOMEPAGE = "http://git.videolan.org/?p=libpostproc.git;a=summary" -SECTION = "libs" -DEPENDS = "libav" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -# because it depends on libav which has commercial flag -LICENSE_FLAGS = "commercial" - -PV = "52.3.0+git${SRCPV}" - -SRCREV = "811db3b957dfde24aef2d0f82e297e5bf552d873" -SRC_URI = "git://github.com/lu-zero/postproc;protocol=https" - -S = "${WORKDIR}/git" - -inherit autotools lib_package pkgconfig - -FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" -BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" - -EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" -EXTRA_FFCONF ?= "" - -EXTRA_OECONF = " \ - --enable-shared \ - --enable-pthreads \ - --enable-gpl \ - --enable-postproc \ - \ - --cross-prefix=${TARGET_PREFIX} \ - --prefix=${prefix} \ - \ - --arch=${TARGET_ARCH} \ - --target-os="linux" \ - --enable-cross-compile \ - --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ - --extra-ldflags="${TARGET_LDFLAGS}" \ - --sysroot="${STAGING_DIR_TARGET}" \ - --shlibdir="${libdir}" \ - ${EXTRA_FFCONF} \ -" - -do_configure() { - ${S}/configure ${EXTRA_OECONF} -} diff --git a/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb b/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb index 9e08b16da..d431abdaa 100644 --- a/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb +++ b/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb @@ -26,8 +26,6 @@ S = "${WORKDIR}/libmad-${PV}" inherit autotools pkgconfig EXTRA_OECONF = "-enable-speed --enable-shared" -# The ASO's don't take any account of thumb... -EXTRA_OECONF_append_thumb = " --disable-aso --enable-fpm=default" EXTRA_OECONF_append_arm = " --enable-fpm=arm" do_configure_prepend () { diff --git a/yocto-poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/yocto-poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb index 40d6df8b6..d83eb4570 100644 --- a/yocto-poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb +++ b/yocto-poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb @@ -35,5 +35,3 @@ FILES_${PN}-staticdev += "${libdir}/bellagio/*.a \ FILES_${PN}-dev += "${libdir}/bellagio/*.la \ ${libdir}/omxloaders/*.la \ ${libdir}/omxloaders/*${SOLIBSDEV}" -FILES_${PN}-dbg += "${libdir}/bellagio/.debug/ \ - ${libdir}/omxloaders/.debug/" diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_1.patch b/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_1.patch deleted file mode 100644 index 25fe1364d..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_1.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 81f44665cce4cb1373f049a76f3904e981b7a766 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson <glennrp at users.sourceforge.net> -Date: Thu, 29 Oct 2015 09:26:41 -0500 -Subject: [PATCH] [libpng16] Reject attempt to write over-length PLTE chunk - -Upstream-Status: Backport -https://github.com/glennrp/libpng/commit/81f44665cce4cb1373f049a76f3904e981b7a766 - -CVE: CVE-2015-8126 patch #1 - -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - libpng-manual.txt | 5 +++++ - libpng.3 | 5 +++++ - pngwrite.c | 4 ++-- - pngwutil.c | 7 +++++-- - 4 files changed, 17 insertions(+), 4 deletions(-) - -Index: libpng-1.6.17/libpng-manual.txt -=================================================================== ---- libpng-1.6.17.orig/libpng-manual.txt -+++ libpng-1.6.17/libpng-manual.txt -@@ -5109,6 +5109,11 @@ length, which resulted in PNG files that - chunk. This error was fixed in libpng-1.6.3, and a tool (called - contrib/tools/png-fix-itxt) has been added to the libpng distribution. - -+Starting with libpng-1.6.19, attempting to write an over-length PLTE chunk -+is an error. Previously this requirement of the PNG specification was not -+enforced. Libpng continues to accept over-length PLTE chunks when reading, -+but does not make any use of the extra entries. -+ - XIII. Detecting libpng - - The png_get_io_ptr() function has been present since libpng-0.88, has never -Index: libpng-1.6.17/libpng.3 -=================================================================== ---- libpng-1.6.17.orig/libpng.3 -+++ libpng-1.6.17/libpng.3 -@@ -5613,6 +5613,11 @@ length, which resulted in PNG files that - chunk. This error was fixed in libpng-1.6.3, and a tool (called - contrib/tools/png-fix-itxt) has been added to the libpng distribution. - -+Starting with libpng-1.6.19, attempting to write an over-length PLTE chunk -+is an error. Previously this requirement of the PNG specification was not -+enforced. Libpng continues to accept over-length PLTE chunks when reading, -+but does not make any use of the extra entries. -+ - .SH XIII. Detecting libpng - - The png_get_io_ptr() function has been present since libpng-0.88, has never -Index: libpng-1.6.17/pngwrite.c -=================================================================== ---- libpng-1.6.17.orig/pngwrite.c -+++ libpng-1.6.17/pngwrite.c -@@ -205,7 +205,7 @@ png_write_info(png_structrp png_ptr, png - png_write_PLTE(png_ptr, info_ptr->palette, - (png_uint_32)info_ptr->num_palette); - -- else if ((info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) !=0) -+ else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Valid palette required for paletted images"); - - #ifdef PNG_WRITE_tRNS_SUPPORTED -Index: libpng-1.6.17/pngwutil.c -=================================================================== ---- libpng-1.6.17.orig/pngwutil.c -+++ libpng-1.6.17/pngwutil.c -@@ -922,17 +922,20 @@ void /* PRIVATE */ - png_write_PLTE(png_structrp png_ptr, png_const_colorp palette, - png_uint_32 num_pal) - { -- png_uint_32 i; -+ png_uint_32 max_num_pal, i; - png_const_colorp pal_ptr; - png_byte buf[3]; - - png_debug(1, "in png_write_PLTE"); - -+ max_num_pal = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? -+ (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; -+ - if (( - #ifdef PNG_MNG_FEATURES_SUPPORTED - (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0 && - #endif -- num_pal == 0) || num_pal > 256) -+ num_pal == 0) || num_pal > max_num_pal) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_2.patch b/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_2.patch deleted file mode 100644 index 4aa917084..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_2.patch +++ /dev/null @@ -1,134 +0,0 @@ -From a901eb3ce6087e0afeef988247f1a1aa208cb54d Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson <glennrp at users.sourceforge.net> -Date: Fri, 30 Oct 2015 07:57:49 -0500 -Subject: [PATCH] [libpng16] Prevent reading over-length PLTE chunk (Cosmin - Truta). - -Upstream-Status: Backport -https://github.com/glennrp/libpng/commit/a901eb3ce6087e0afeef988247f1a1aa208cb54d - -Many changes involved date and version updates with don't apply in this case. - -CVE: CVE-2015-8126 patch #2 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - ANNOUNCE | 6 +++--- - CHANGES | 4 ++-- - libpng-manual.txt | 11 +++++------ - libpng.3 | 19 +++++++++---------- - pngrutil.c | 3 +++ - pngset.c | 13 +++++++++---- - pngwutil.c | 6 +++--- - 7 files changed, 34 insertions(+), 28 deletions(-) - -Index: libpng-1.6.17/libpng-manual.txt -=================================================================== ---- libpng-1.6.17.orig/libpng-manual.txt -+++ libpng-1.6.17/libpng-manual.txt -@@ -5109,10 +5109,9 @@ length, which resulted in PNG files that - chunk. This error was fixed in libpng-1.6.3, and a tool (called - contrib/tools/png-fix-itxt) has been added to the libpng distribution. - --Starting with libpng-1.6.19, attempting to write an over-length PLTE chunk -+Starting with libpng-1.6.19, attempting to set an over-length PLTE chunk - is an error. Previously this requirement of the PNG specification was not --enforced. Libpng continues to accept over-length PLTE chunks when reading, --but does not make any use of the extra entries. -+enforced, and the palette was always limited to 256 entries. - - XIII. Detecting libpng - -Index: libpng-1.6.17/libpng.3 -=================================================================== ---- libpng-1.6.17.orig/libpng.3 -+++ libpng-1.6.17/libpng.3 -@@ -5613,10 +5613,9 @@ length, which resulted in PNG files that - chunk. This error was fixed in libpng-1.6.3, and a tool (called - contrib/tools/png-fix-itxt) has been added to the libpng distribution. - --Starting with libpng-1.6.19, attempting to write an over-length PLTE chunk -+Starting with libpng-1.6.19, attempting to set an over-length PLTE chunk - is an error. Previously this requirement of the PNG specification was not --enforced. Libpng continues to accept over-length PLTE chunks when reading, --but does not make any use of the extra entries. -+enforced, and the palette was always limited to 256 entries. - - .SH XIII. Detecting libpng - -Index: libpng-1.6.17/pngrutil.c -=================================================================== ---- libpng-1.6.17.orig/pngrutil.c -+++ libpng-1.6.17/pngrutil.c -@@ -997,6 +997,9 @@ png_handle_PLTE(png_structrp png_ptr, pn - * confusing. - * - * Fix this by not sharing the palette in this way. -+ * -+ * Starting with libpng-1.6.19, png_set_PLTE() also issues a png_error() when -+ * it attempts to set a palette length that is too large for the bit depth. - */ - png_set_PLTE(png_ptr, info_ptr, palette, num); - -Index: libpng-1.6.17/pngset.c -=================================================================== ---- libpng-1.6.17.orig/pngset.c -+++ libpng-1.6.17/pngset.c -@@ -513,12 +513,17 @@ png_set_PLTE(png_structrp png_ptr, png_i - png_const_colorp palette, int num_palette) - { - -+ png_uint_32 max_palette_length; -+ - png_debug1(1, "in %s storage function", "PLTE"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - -- if (num_palette < 0 || num_palette > PNG_MAX_PALETTE_LENGTH) -+ max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? -+ (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; -+ -+ if (num_palette < 0 || num_palette > max_palette_length) - { - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Invalid palette length"); -@@ -551,8 +556,8 @@ png_set_PLTE(png_structrp png_ptr, png_i - png_free_data(png_ptr, info_ptr, PNG_FREE_PLTE, 0); - - /* Changed in libpng-1.2.1 to allocate PNG_MAX_PALETTE_LENGTH instead -- * of num_palette entries, in case of an invalid PNG file that has -- * too-large sample values. -+ * of num_palette entries, in case of an invalid PNG file or incorrect -+ * call to png_set_PLTE() with too-large sample values. - */ - png_ptr->palette = png_voidcast(png_colorp, png_calloc(png_ptr, - PNG_MAX_PALETTE_LENGTH * (sizeof (png_color)))); -Index: libpng-1.6.17/pngwutil.c -=================================================================== ---- libpng-1.6.17.orig/pngwutil.c -+++ libpng-1.6.17/pngwutil.c -@@ -922,20 +922,20 @@ void /* PRIVATE */ - png_write_PLTE(png_structrp png_ptr, png_const_colorp palette, - png_uint_32 num_pal) - { -- png_uint_32 max_num_pal, i; -+ png_uint_32 max_palette_length, i; - png_const_colorp pal_ptr; - png_byte buf[3]; - - png_debug(1, "in png_write_PLTE"); - -- max_num_pal = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? -+ max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? - (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; - - if (( - #ifdef PNG_MNG_FEATURES_SUPPORTED - (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0 && - #endif -- num_pal == 0) || num_pal > max_num_pal) -+ num_pal == 0) || num_pal > max_palette_length) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_3.patch b/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_3.patch deleted file mode 100644 index 0e0ad2320..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_3.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 1bef8e97995c33123665582e57d3ed40b57d5978 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson <glennrp at users.sourceforge.net> -Date: Fri, 30 Oct 2015 11:34:37 -0500 -Subject: [PATCH] [libpng16] Silently truncate over-length PLTE chunk while - reading. - -Upstream-Status: Backport -https://github.com/glennrp/libpng/commit/1bef8e97995c33123665582e57d3ed40b57d5978 - -Normal Issues is date and version conflicts not applied. - -CVE: CVE-2015-8i26 patch #3 - -Signed-off-by: Armin Kuster <akuster@mvista.com> - - ---- - ANNOUNCE | 3 ++- - CHANGES | 3 ++- - pngrutil.c | 15 +++++++++++---- - pngset.c | 2 +- - 4 files changed, 16 insertions(+), 7 deletions(-) - -Index: libpng-1.6.17/pngrutil.c -=================================================================== ---- libpng-1.6.17.orig/pngrutil.c -+++ libpng-1.6.17/pngrutil.c -@@ -867,7 +867,7 @@ void /* PRIVATE */ - png_handle_PLTE(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) - { - png_color palette[PNG_MAX_PALETTE_LENGTH]; -- int num, i; -+ int max_palette_length, num, i; - #ifdef PNG_POINTER_INDEXING_SUPPORTED - png_colorp pal_ptr; - #endif -@@ -925,9 +925,19 @@ png_handle_PLTE(png_structrp png_ptr, pn - return; - } - -+ max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? -+ (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; -+ - /* The cast is safe because 'length' is less than 3*PNG_MAX_PALETTE_LENGTH */ - num = (int)length / 3; - -+ /* If the palette has 256 or fewer entries but is too large for the bit depth, -+ * we don't issue an error, to preserve the behavior of previous libpng versions. -+ * We silently truncate the unused extra palette entries here. -+ */ -+ if (num > max_palette_length) -+ num = max_palette_length; -+ - #ifdef PNG_POINTER_INDEXING_SUPPORTED - for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++) - { -@@ -997,9 +1007,6 @@ png_handle_PLTE(png_structrp png_ptr, pn - * confusing. - * - * Fix this by not sharing the palette in this way. -- * -- * Starting with libpng-1.6.19, png_set_PLTE() also issues a png_error() when -- * it attempts to set a palette length that is too large for the bit depth. - */ - png_set_PLTE(png_ptr, info_ptr, palette, num); - -Index: libpng-1.6.17/pngset.c -=================================================================== ---- libpng-1.6.17.orig/pngset.c -+++ libpng-1.6.17/pngset.c -@@ -523,7 +523,7 @@ png_set_PLTE(png_structrp png_ptr, png_i - max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? - (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; - -- if (num_palette < 0 || num_palette > max_palette_length) -+ if (num_palette < 0 || num_palette > (int) max_palette_length) - { - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Invalid palette length"); diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_4.patch b/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_4.patch deleted file mode 100644 index 2622630d1..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8126_4.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 83f4c735c88e7f451541c1528d8043c31ba3b466 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson <glennrp at users.sourceforge.net> -Date: Thu, 5 Nov 2015 11:18:44 -0600 -Subject: [PATCH] [libpng16] Clean up coding style in png_handle_PLTE() - -Upstream-Status: Backport -https://github.com/glennrp/libpng/commit/83f4c735c88e7f451541c1528d8043c31ba3b466 - -CVE: CVE-2015-8126 patch #4 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - pngrutil.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -Index: libpng-1.6.17/pngrutil.c -=================================================================== ---- libpng-1.6.17.orig/pngrutil.c -+++ libpng-1.6.17/pngrutil.c -@@ -925,18 +925,21 @@ png_handle_PLTE(png_structrp png_ptr, pn - return; - } - -- max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? -- (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; -- - /* The cast is safe because 'length' is less than 3*PNG_MAX_PALETTE_LENGTH */ - num = (int)length / 3; - -- /* If the palette has 256 or fewer entries but is too large for the bit depth, -- * we don't issue an error, to preserve the behavior of previous libpng versions. -- * We silently truncate the unused extra palette entries here. -+ /* If the palette has 256 or fewer entries but is too large for the bit -+ * depth, we don't issue an error, to preserve the behavior of previous -+ * libpng versions. We silently truncate the unused extra palette entries -+ * here. - */ -+ if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) -+ max_palette_length = (1 << png_ptr->bit_depth); -+ else -+ max_palette_length = PNG_MAX_PALETTE_LENGTH; -+ - if (num > max_palette_length) -- num = max_palette_length; -+ num = max_palette_length; - - #ifdef PNG_POINTER_INDEXING_SUPPORTED - for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++) diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8472.patch b/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8472.patch deleted file mode 100644 index 404f012b0..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng-1.6.17/CVE-2015-8472.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9f2ad4928e47036cf1ac9b8fe45a491f15be2324 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson <glennrp at users.sourceforge.net> -Date: Wed, 4 Nov 2015 23:47:42 -0600 -Subject: [PATCH] [libpng16] Fixed new bug with CRC error after reading an - over-length palette. - -Upstream-Status: Backport -CVE: CVE-2015-8472 - -https://github.com/glennrp/libpng/commit/9f2ad4928e47036cf1ac9b8fe45a491f15be2324 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - pngrutil.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: libpng-1.6.17/pngrutil.c -=================================================================== ---- libpng-1.6.17.orig/pngrutil.c -+++ libpng-1.6.17/pngrutil.c -@@ -973,7 +973,7 @@ png_handle_PLTE(png_structrp png_ptr, pn - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - #endif - { -- png_crc_finish(png_ptr, 0); -+ png_crc_finish(png_ptr, (int) length - num * 3); - } - - #ifndef PNG_READ_OPT_PLTE_SUPPORTED diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.17.bb b/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.17.bb deleted file mode 100644 index cc288c7f9..000000000 --- a/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.17.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "PNG image format decoding library" -HOMEPAGE = "http://www.libpng.org/" -SECTION = "libs" -LICENSE = "Libpng" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b9b75399b72e4a8656cf3a6ddfc86d9a \ - file://png.h;endline=16;md5=cc9c2d1eafda17e1277a6f99a9fc29c4 \ - file://png.h;beginline=242;endline=356;md5=599316819d525dde2bfdf28fe3f323af" -DEPENDS = "zlib" -LIBV = "16" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/older-releases/${PV}/libpng-${PV}.tar.xz \ - " -SRC_URI += "\ - file://CVE-2015-8126_1.patch \ - file://CVE-2015-8126_2.patch \ - file://CVE-2015-8126_3.patch \ - file://CVE-2015-8126_4.patch \ - file://CVE-2015-8472.patch \ - " - -SRC_URI[md5sum] = "430a9b76b78533235cd4b9b26ce75c7e" -SRC_URI[sha256sum] = "98507b55fbe5cd43c51981f2924e4671fd81fe35d52dc53357e20f2c77fa5dfd" - -BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" - -inherit autotools binconfig-disabled pkgconfig - -# Work around missing symbols -EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}" - -PACKAGES =+ "${PN}-tools" - -FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix" - -BBCLASSEXTEND = "native nativesdk" diff --git a/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb b/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb new file mode 100644 index 000000000..58cef1ff3 --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb @@ -0,0 +1,25 @@ +SUMMARY = "PNG image format decoding library" +HOMEPAGE = "http://www.libpng.org/" +SECTION = "libs" +LICENSE = "Libpng" +LIC_FILES_CHKSUM = "file://LICENSE;md5=06a1b6fde6d93170bb72201c8000bf3d \ + file://png.h;endline=112;md5=9a8b5f83e1e8046df672deab87f235be" +DEPENDS = "zlib" + +SRC_URI = "${GENTOO_MIRROR}/libpng-${PV}.tar.xz \ + " +SRC_URI[md5sum] = "3bacb4728f6694a64ad9052769d6a4ce" +SRC_URI[sha256sum] = "6c8f1849eb9264219bf5d703601e5abe92a58651ecae927a03d1a1aa15ee2083" + +BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" + +inherit autotools binconfig-disabled pkgconfig + +# Work around missing symbols +EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}" + +PACKAGES =+ "${PN}-tools" + +FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix" + +BBCLASSEXTEND = "native nativesdk" diff --git a/yocto-poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb b/yocto-poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb index f06935c8b..1c3768196 100644 --- a/yocto-poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb +++ b/yocto-poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb @@ -11,6 +11,9 @@ SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz" SRC_URI[md5sum] = "1c7fb25191b4e6e3628d198a66a84f47" SRC_URI[sha256sum] = "93b54bdf46d5e6d2354b7034395fe329c222a966790de34520702bb9642f1c06" + +UPSTREAM_CHECK_URI = "http://www.mega-nerd.com/SRC/download.html" + S = "${WORKDIR}/libsamplerate-${PV}" inherit autotools pkgconfig diff --git a/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-segfault-in-SD2-RSRC-parser.patch b/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-segfault-in-SD2-RSRC-parser.patch deleted file mode 100644 index cd48710fb..000000000 --- a/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-segfault-in-SD2-RSRC-parser.patch +++ /dev/null @@ -1,211 +0,0 @@ -From 9341e9c6e70cd3ad76c901c3cf052d4cb52fd827 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo <erikd@mega-nerd.com> -Date: Thu, 27 Jun 2013 18:04:03 +1000 -Subject: [PATCH] src/sd2.c : Fix segfault in SD2 RSRC parser. - -(Upstream commit 9341e9c6e70cd3ad76c901c3cf052d4cb52fd827) - -A specially crafted resource fork for an SD2 file can cause -the SD2 RSRC parser to read data from outside a dynamically -defined buffer. The data that is read is converted into a -short or int and used during further processing. - -Since no write occurs, this is unlikely to be exploitable. - -Bug reported by The Mayhem Team from Cylab, Carnegie Mellon -Univeristy. Paper is: -http://users.ece.cmu.edu/~arebert/papers/mayhem-oakland-12.pdf - -Upstream-Status: Backport - -Signed-off-by: Yue Tao <yue.tao@windriver.com> ---- - src/sd2.c | 93 ++++++++++++++++++++++++++++++++++++------------------------- - 1 file changed, 55 insertions(+), 38 deletions(-) - -diff --git a/src/sd2.c b/src/sd2.c -index 35ce36b..6be150c 100644 ---- a/src/sd2.c -+++ b/src/sd2.c -@@ -1,5 +1,5 @@ - /* --** Copyright (C) 2001-2011 Erik de Castro Lopo <erikd@mega-nerd.com> -+** Copyright (C) 2001-2013 Erik de Castro Lopo <erikd@mega-nerd.com> - ** Copyright (C) 2004 Paavo Jumppanen - ** - ** This program is free software; you can redistribute it and/or modify -@@ -371,44 +371,61 @@ sd2_write_rsrc_fork (SF_PRIVATE *psf, int UNUSED (calc_length)) - */ - - static inline int --read_char (const unsigned char * data, int offset) --{ return data [offset] ; --} /* read_char */ -+read_rsrc_char (const SD2_RSRC *prsrc, int offset) -+{ const unsigned char * data = prsrc->rsrc_data ; -+ if (offset < 0 || offset >= prsrc->rsrc_len) -+ return 0 ; -+ return data [offset] ; -+} /* read_rsrc_char */ - - static inline int --read_short (const unsigned char * data, int offset) --{ return (data [offset] << 8) + data [offset + 1] ; --} /* read_short */ -+read_rsrc_short (const SD2_RSRC *prsrc, int offset) -+{ const unsigned char * data = prsrc->rsrc_data ; -+ if (offset < 0 || offset + 1 >= prsrc->rsrc_len) -+ return 0 ; -+ return (data [offset] << 8) + data [offset + 1] ; -+} /* read_rsrc_short */ - - static inline int --read_int (const unsigned char * data, int offset) --{ return (data [offset] << 24) + (data [offset + 1] << 16) + (data [offset + 2] << 8) + data [offset + 3] ; --} /* read_int */ -+read_rsrc_int (const SD2_RSRC *prsrc, int offset) -+{ const unsigned char * data = prsrc->rsrc_data ; -+ if (offset < 0 || offset + 3 >= prsrc->rsrc_len) -+ return 0 ; -+ return (data [offset] << 24) + (data [offset + 1] << 16) + (data [offset + 2] << 8) + data [offset + 3] ; -+} /* read_rsrc_int */ - - static inline int --read_marker (const unsigned char * data, int offset) --{ -+read_rsrc_marker (const SD2_RSRC *prsrc, int offset) -+{ const unsigned char * data = prsrc->rsrc_data ; -+ -+ if (offset < 0 || offset + 3 >= prsrc->rsrc_len) -+ return 0 ; -+ - if (CPU_IS_BIG_ENDIAN) - return (data [offset] << 24) + (data [offset + 1] << 16) + (data [offset + 2] << 8) + data [offset + 3] ; -- else if (CPU_IS_LITTLE_ENDIAN) -+ if (CPU_IS_LITTLE_ENDIAN) - return data [offset] + (data [offset + 1] << 8) + (data [offset + 2] << 16) + (data [offset + 3] << 24) ; -- else -- return 0x666 ; --} /* read_marker */ -+ -+ return 0 ; -+} /* read_rsrc_marker */ - - static void --read_str (const unsigned char * data, int offset, char * buffer, int buffer_len) --{ int k ; -+read_rsrc_str (const SD2_RSRC *prsrc, int offset, char * buffer, int buffer_len) -+{ const unsigned char * data = prsrc->rsrc_data ; -+ int k ; - - memset (buffer, 0, buffer_len) ; - -+ if (offset < 0 || offset + buffer_len >= prsrc->rsrc_len) -+ return ; -+ - for (k = 0 ; k < buffer_len - 1 ; k++) - { if (psf_isprint (data [offset + k]) == 0) - return ; - buffer [k] = data [offset + k] ; - } ; - return ; --} /* read_str */ -+} /* read_rsrc_str */ - - static int - sd2_parse_rsrc_fork (SF_PRIVATE *psf) -@@ -435,17 +452,17 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - /* Reset the header storage because we have changed to the rsrcdes. */ - psf->headindex = psf->headend = rsrc.rsrc_len ; - -- rsrc.data_offset = read_int (rsrc.rsrc_data, 0) ; -- rsrc.map_offset = read_int (rsrc.rsrc_data, 4) ; -- rsrc.data_length = read_int (rsrc.rsrc_data, 8) ; -- rsrc.map_length = read_int (rsrc.rsrc_data, 12) ; -+ rsrc.data_offset = read_rsrc_int (&rsrc, 0) ; -+ rsrc.map_offset = read_rsrc_int (&rsrc, 4) ; -+ rsrc.data_length = read_rsrc_int (&rsrc, 8) ; -+ rsrc.map_length = read_rsrc_int (&rsrc, 12) ; - - if (rsrc.data_offset == 0x51607 && rsrc.map_offset == 0x20000) - { psf_log_printf (psf, "Trying offset of 0x52 bytes.\n") ; -- rsrc.data_offset = read_int (rsrc.rsrc_data, 0x52 + 0) + 0x52 ; -- rsrc.map_offset = read_int (rsrc.rsrc_data, 0x52 + 4) + 0x52 ; -- rsrc.data_length = read_int (rsrc.rsrc_data, 0x52 + 8) ; -- rsrc.map_length = read_int (rsrc.rsrc_data, 0x52 + 12) ; -+ rsrc.data_offset = read_rsrc_int (&rsrc, 0x52 + 0) + 0x52 ; -+ rsrc.map_offset = read_rsrc_int (&rsrc, 0x52 + 4) + 0x52 ; -+ rsrc.data_length = read_rsrc_int (&rsrc, 0x52 + 8) ; -+ rsrc.map_length = read_rsrc_int (&rsrc, 0x52 + 12) ; - } ; - - psf_log_printf (psf, " data offset : 0x%04X\n map offset : 0x%04X\n" -@@ -488,7 +505,7 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - goto parse_rsrc_fork_cleanup ; - } ; - -- rsrc.string_offset = rsrc.map_offset + read_short (rsrc.rsrc_data, rsrc.map_offset + 26) ; -+ rsrc.string_offset = rsrc.map_offset + read_rsrc_short (&rsrc, rsrc.map_offset + 26) ; - if (rsrc.string_offset > rsrc.rsrc_len) - { psf_log_printf (psf, "Bad string offset (%d).\n", rsrc.string_offset) ; - error = SFE_SD2_BAD_RSRC ; -@@ -497,7 +514,7 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - - rsrc.type_offset = rsrc.map_offset + 30 ; - -- rsrc.type_count = read_short (rsrc.rsrc_data, rsrc.map_offset + 28) + 1 ; -+ rsrc.type_count = read_rsrc_short (&rsrc, rsrc.map_offset + 28) + 1 ; - if (rsrc.type_count < 1) - { psf_log_printf (psf, "Bad type count.\n") ; - error = SFE_SD2_BAD_RSRC ; -@@ -513,11 +530,11 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - - rsrc.str_index = -1 ; - for (k = 0 ; k < rsrc.type_count ; k ++) -- { marker = read_marker (rsrc.rsrc_data, rsrc.type_offset + k * 8) ; -+ { marker = read_rsrc_marker (&rsrc, rsrc.type_offset + k * 8) ; - - if (marker == STR_MARKER) - { rsrc.str_index = k ; -- rsrc.str_count = read_short (rsrc.rsrc_data, rsrc.type_offset + k * 8 + 4) + 1 ; -+ rsrc.str_count = read_rsrc_short (&rsrc, rsrc.type_offset + k * 8 + 4) + 1 ; - error = parse_str_rsrc (psf, &rsrc) ; - goto parse_rsrc_fork_cleanup ; - } ; -@@ -549,26 +566,26 @@ parse_str_rsrc (SF_PRIVATE *psf, SD2_RSRC * rsrc) - for (k = 0 ; data_offset + data_len < rsrc->rsrc_len ; k++) - { int slen ; - -- slen = read_char (rsrc->rsrc_data, str_offset) ; -- read_str (rsrc->rsrc_data, str_offset + 1, name, SF_MIN (SIGNED_SIZEOF (name), slen + 1)) ; -+ slen = read_rsrc_char (rsrc, str_offset) ; -+ read_rsrc_str (rsrc, str_offset + 1, name, SF_MIN (SIGNED_SIZEOF (name), slen + 1)) ; - str_offset += slen + 1 ; - -- rsrc_id = read_short (rsrc->rsrc_data, rsrc->item_offset + k * 12) ; -+ rsrc_id = read_rsrc_short (rsrc, rsrc->item_offset + k * 12) ; - -- data_offset = rsrc->data_offset + read_int (rsrc->rsrc_data, rsrc->item_offset + k * 12 + 4) ; -+ data_offset = rsrc->data_offset + read_rsrc_int (rsrc, rsrc->item_offset + k * 12 + 4) ; - if (data_offset < 0 || data_offset > rsrc->rsrc_len) - { psf_log_printf (psf, "Exiting parser on data offset of %d.\n", data_offset) ; - break ; - } ; - -- data_len = read_int (rsrc->rsrc_data, data_offset) ; -+ data_len = read_rsrc_int (rsrc, data_offset) ; - if (data_len < 0 || data_len > rsrc->rsrc_len) - { psf_log_printf (psf, "Exiting parser on data length of %d.\n", data_len) ; - break ; - } ; - -- slen = read_char (rsrc->rsrc_data, data_offset + 4) ; -- read_str (rsrc->rsrc_data, data_offset + 5, value, SF_MIN (SIGNED_SIZEOF (value), slen + 1)) ; -+ slen = read_rsrc_char (rsrc, data_offset + 4) ; -+ read_rsrc_str (rsrc, data_offset + 5, value, SF_MIN (SIGNED_SIZEOF (value), slen + 1)) ; - - psf_log_printf (psf, " 0x%04x %4d %4d %3d '%s'\n", data_offset, rsrc_id, data_len, slen, value) ; - --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-two-potential-buffer-read-overflows.patch b/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-two-potential-buffer-read-overflows.patch deleted file mode 100644 index fa6473d4f..000000000 --- a/yocto-poky/meta/recipes-multimedia/libsndfile/files/0001-src-sd2.c-Fix-two-potential-buffer-read-overflows.patch +++ /dev/null @@ -1,49 +0,0 @@ -From dbe14f00030af5d3577f4cabbf9861db59e9c378 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo <erikd@mega-nerd.com> -Date: Thu, 25 Dec 2014 19:23:12 +1100 -Subject: [PATCH] src/sd2.c : Fix two potential buffer read overflows. - -(Upstream commit dbe14f00030af5d3577f4cabbf9861db59e9c378) - -Closes: https://github.com/erikd/libsndfile/issues/93 - -Upstream-Status: Backport - -Signed-off-by: Yue Tao <yue.tao@windriver.com> ---- - src/sd2.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/sd2.c b/src/sd2.c -index 0b4e5af..a70a1f1 100644 ---- a/src/sd2.c -+++ b/src/sd2.c -@@ -517,6 +517,11 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - - rsrc.type_offset = rsrc.map_offset + 30 ; - -+ if (rsrc.map_offset + 28 > rsrc.rsrc_len) -+ { psf_log_printf (psf, "Bad map offset.\n") ; -+ goto parse_rsrc_fork_cleanup ; -+ } ; -+ - rsrc.type_count = read_rsrc_short (&rsrc, rsrc.map_offset + 28) + 1 ; - if (rsrc.type_count < 1) - { psf_log_printf (psf, "Bad type count.\n") ; -@@ -533,7 +538,12 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) - - rsrc.str_index = -1 ; - for (k = 0 ; k < rsrc.type_count ; k ++) -- { marker = read_rsrc_marker (&rsrc, rsrc.type_offset + k * 8) ; -+ { if (rsrc.type_offset + k * 8 > rsrc.rsrc_len) -+ { psf_log_printf (psf, "Bad rsrc marker.\n") ; -+ goto parse_rsrc_fork_cleanup ; -+ } ; -+ -+ marker = read_rsrc_marker (&rsrc, rsrc.type_offset + k * 8) ; - - if (marker == STR_MARKER) - { rsrc.str_index = k ; --- -1.7.9.5 - diff --git a/yocto-poky/meta/recipes-multimedia/libsndfile/files/libsndfile-fix-CVE-2014-9756.patch b/yocto-poky/meta/recipes-multimedia/libsndfile/files/libsndfile-fix-CVE-2014-9756.patch deleted file mode 100644 index b54b3ba66..000000000 --- a/yocto-poky/meta/recipes-multimedia/libsndfile/files/libsndfile-fix-CVE-2014-9756.patch +++ /dev/null @@ -1,24 +0,0 @@ -src/file_io.c : Prevent potential divide-by-zero. - -Closes: https://github.com/erikd/libsndfile/issues/92 - -Upstream-Status: Backport - -Fixes CVE-2014-9756 - -Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> -Signed-off-by: Maxin B. John <maxin.john@intel.com> ---- -diff -Naur libsndfile-1.0.25-orig/src/file_io.c libsndfile-1.0.25/src/file_io.c ---- libsndfile-1.0.25-orig/src/file_io.c 2011-01-19 12:12:28.000000000 +0200 -+++ libsndfile-1.0.25/src/file_io.c 2015-11-04 15:02:04.337395618 +0200 -@@ -358,6 +358,9 @@ - { sf_count_t total = 0 ; - ssize_t count ; - -+ if (bytes == 0 || items == 0) -+ return 0 ; -+ - if (psf->virtual_io) - return psf->vio.write (ptr, bytes*items, psf->vio_user_data) / bytes ; - diff --git a/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb b/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb index be875c227..80435d4b5 100644 --- a/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb +++ b/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb @@ -1,19 +1,14 @@ SUMMARY = "Audio format Conversion library" HOMEPAGE = "http://www.mega-nerd.com/libsndfile" AUTHOR = "Erik de Castro Lopo" -DEPENDS = "sqlite3" +DEPENDS = "flac libogg libvorbis sqlite3" SECTION = "libs/multimedia" LICENSE = "LGPLv2.1" -PR = "r2" -SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz \ - file://0001-src-sd2.c-Fix-segfault-in-SD2-RSRC-parser.patch \ - file://0001-src-sd2.c-Fix-two-potential-buffer-read-overflows.patch \ - file://libsndfile-fix-CVE-2014-9756.patch \ -" +SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz" -SRC_URI[md5sum] = "e2b7bb637e01022c7d20f95f9c3990a2" -SRC_URI[sha256sum] = "59016dbd326abe7e2366ded5c344c853829bebfd1702ef26a07ef662d6aa4882" +SRC_URI[md5sum] = "ec810a0c60c08772a8a5552704b63393" +SRC_URI[sha256sum] = "cd6520ec763d1a45573885ecb1f8e4e42505ac12180268482a44b28484a25092" LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a" @@ -22,13 +17,10 @@ S = "${WORKDIR}/libsndfile-${PV}" PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -EXTRA_OECONF = "--disable-external-libs" - inherit autotools lib_package pkgconfig do_configure_prepend_arm() { export ac_cv_sys_largefile_source=1 export ac_cv_sys_file_offset_bits=64 - ac_cv_sizeof_off_t=8 } diff --git a/yocto-poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/yocto-poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb index 18cb168c5..664d8480a 100644 --- a/yocto-poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb +++ b/yocto-poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb @@ -15,6 +15,8 @@ SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \ SRC_URI[md5sum] = "292ab65cedd5021d6b7ddd117e07cd8e" SRC_URI[sha256sum] = "b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc" +UPSTREAM_CHECK_REGEX = "libtheora-(?P<pver>\d+(\.\d)+)\.(tar\.gz|tgz)" + inherit autotools pkgconfig EXTRA_OECONF = "--disable-examples" diff --git a/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch b/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch deleted file mode 100644 index bdbe69695..000000000 --- a/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch +++ /dev/null @@ -1,196 +0,0 @@ -From aaab5c3c9d2a2c6984f23ccbc79702610439bc65 Mon Sep 17 00:00:00 2001 -From: erouault <erouault> -Date: Sun, 27 Dec 2015 16:25:11 +0000 -Subject: [PATCH] * libtiff/tif_luv.c: fix potential out-of-bound writes in - decode functions in non debug builds by replacing assert()s by regular if - checks (bugzilla #2522). Fix potential out-of-bound reads in case of short - input data. - -Upstream-Status: Backport - -https://github.com/vadz/libtiff/commit/aaab5c3c9d2a2c6984f23ccbc79702610439bc65 -hand applied Changelog changes - -CVE: CVE-2015-8781 - -Signed-off-by: Armin Kuster <akuster@mvista.com> ---- - ChangeLog | 7 +++++++ - libtiff/tif_luv.c | 55 ++++++++++++++++++++++++++++++++++++++++++++----------- - 2 files changed, 51 insertions(+), 11 deletions(-) - -Index: tiff-4.0.4/ChangeLog -=================================================================== ---- tiff-4.0.4.orig/ChangeLog -+++ tiff-4.0.4/ChangeLog -@@ -1,3 +1,11 @@ -+2015-12-27 Even Rouault <even.rouault at spatialys.com> -+ -+ * libtiff/tif_luv.c: fix potential out-of-bound writes in decode -+ functions in non debug builds by replacing assert()s by regular if -+ checks (bugzilla #2522). -+ Fix potential out-of-bound reads in case of short input data. -+ -+ - 2015-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> - - * libtiff 4.0.4 released. -Index: tiff-4.0.4/libtiff/tif_luv.c -=================================================================== ---- tiff-4.0.4.orig/libtiff/tif_luv.c -+++ tiff-4.0.4/libtiff/tif_luv.c -@@ -202,7 +202,11 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz - if (sp->user_datafmt == SGILOGDATAFMT_16BIT) - tp = (int16*) op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (int16*) sp->tbuf; - } - _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0])); -@@ -211,9 +215,11 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz - cc = tif->tif_rawcc; - /* get each byte string */ - for (shft = 2*8; (shft -= 8) >= 0; ) { -- for (i = 0; i < npixels && cc > 0; ) -+ for (i = 0; i < npixels && cc > 0; ) { - if (*bp >= 128) { /* run */ -- rc = *bp++ + (2-128); /* TODO: potential input buffer overrun when decoding corrupt or truncated data */ -+ if( cc < 2 ) -+ break; -+ rc = *bp++ + (2-128); - b = (int16)(*bp++ << shft); - cc -= 2; - while (rc-- && i < npixels) -@@ -223,6 +229,7 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz - while (--cc && rc-- && i < npixels) - tp[i++] |= (int16)*bp++ << shft; - } -+ } - if (i != npixels) { - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - TIFFErrorExt(tif->tif_clientdata, module, -@@ -268,13 +275,17 @@ LogLuvDecode24(TIFF* tif, uint8* op, tms - if (sp->user_datafmt == SGILOGDATAFMT_RAW) - tp = (uint32 *)op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (uint32 *) sp->tbuf; - } - /* copy to array of uint32 */ - bp = (unsigned char*) tif->tif_rawcp; - cc = tif->tif_rawcc; -- for (i = 0; i < npixels && cc > 0; i++) { -+ for (i = 0; i < npixels && cc >= 3; i++) { - tp[i] = bp[0] << 16 | bp[1] << 8 | bp[2]; - bp += 3; - cc -= 3; -@@ -325,7 +336,11 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms - if (sp->user_datafmt == SGILOGDATAFMT_RAW) - tp = (uint32*) op; - else { -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - tp = (uint32*) sp->tbuf; - } - _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0])); -@@ -334,11 +349,13 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms - cc = tif->tif_rawcc; - /* get each byte string */ - for (shft = 4*8; (shft -= 8) >= 0; ) { -- for (i = 0; i < npixels && cc > 0; ) -+ for (i = 0; i < npixels && cc > 0; ) { - if (*bp >= 128) { /* run */ -+ if( cc < 2 ) -+ break; - rc = *bp++ + (2-128); - b = (uint32)*bp++ << shft; -- cc -= 2; /* TODO: potential input buffer overrun when decoding corrupt or truncated data */ -+ cc -= 2; - while (rc-- && i < npixels) - tp[i++] |= b; - } else { /* non-run */ -@@ -346,6 +363,7 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms - while (--cc && rc-- && i < npixels) - tp[i++] |= (uint32)*bp++ << shft; - } -+ } - if (i != npixels) { - #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) - TIFFErrorExt(tif->tif_clientdata, module, -@@ -413,6 +431,7 @@ LogLuvDecodeTile(TIFF* tif, uint8* bp, t - static int - LogL16Encode(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogL16Encode"; - LogLuvState* sp = EncoderState(tif); - int shft; - tmsize_t i; -@@ -433,7 +452,11 @@ LogL16Encode(TIFF* tif, uint8* bp, tmsiz - tp = (int16*) bp; - else { - tp = (int16*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* compress each byte string */ -@@ -506,6 +529,7 @@ LogL16Encode(TIFF* tif, uint8* bp, tmsiz - static int - LogLuvEncode24(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogLuvEncode24"; - LogLuvState* sp = EncoderState(tif); - tmsize_t i; - tmsize_t npixels; -@@ -521,7 +545,11 @@ LogLuvEncode24(TIFF* tif, uint8* bp, tms - tp = (uint32*) bp; - else { - tp = (uint32*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* write out encoded pixels */ -@@ -553,6 +581,7 @@ LogLuvEncode24(TIFF* tif, uint8* bp, tms - static int - LogLuvEncode32(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s) - { -+ static const char module[] = "LogLuvEncode32"; - LogLuvState* sp = EncoderState(tif); - int shft; - tmsize_t i; -@@ -574,7 +603,11 @@ LogLuvEncode32(TIFF* tif, uint8* bp, tms - tp = (uint32*) bp; - else { - tp = (uint32*) sp->tbuf; -- assert(sp->tbuflen >= npixels); -+ if(sp->tbuflen < npixels) { -+ TIFFErrorExt(tif->tif_clientdata, module, -+ "Translation buffer too short"); -+ return (0); -+ } - (*sp->tfunc)(sp, bp, npixels); - } - /* compress each byte string */ diff --git a/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch b/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch deleted file mode 100644 index cf37fd388..000000000 --- a/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch +++ /dev/null @@ -1,73 +0,0 @@ -From b18012dae552f85dcc5c57d3bf4e997a15b1cc1c Mon Sep 17 00:00:00 2001 -From: erouault <erouault> -Date: Sun, 27 Dec 2015 16:55:20 +0000 -Subject: [PATCH] * libtiff/tif_next.c: fix potential out-of-bound write in - NeXTDecode() triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif - (bugzilla #2508) - -Upstream-Status: Backport -https://github.com/vadz/libtiff/commit/b18012dae552f85dcc5c57d3bf4e997a15b1cc1c -hand applied Changelog changes - -CVE: CVE-2015-8784 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - ChangeLog | 6 ++++++ - libtiff/tif_next.c | 10 ++++++++-- - 2 files changed, 14 insertions(+), 2 deletions(-) - -Index: tiff-4.0.4/ChangeLog -=================================================================== ---- tiff-4.0.4.orig/ChangeLog -+++ tiff-4.0.4/ChangeLog -@@ -1,5 +1,11 @@ - 2015-12-27 Even Rouault <even.rouault at spatialys.com> - -+ * libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode() -+ triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif -+ (bugzilla #2508) -+ -+2015-12-27 Even Rouault <even.rouault at spatialys.com> -+ - * libtiff/tif_luv.c: fix potential out-of-bound writes in decode - functions in non debug builds by replacing assert()s by regular if - checks (bugzilla #2522). -Index: tiff-4.0.4/libtiff/tif_next.c -=================================================================== ---- tiff-4.0.4.orig/libtiff/tif_next.c -+++ tiff-4.0.4/libtiff/tif_next.c -@@ -37,7 +37,7 @@ - case 0: op[0] = (unsigned char) ((v) << 6); break; \ - case 1: op[0] |= (v) << 4; break; \ - case 2: op[0] |= (v) << 2; break; \ -- case 3: *op++ |= (v); break; \ -+ case 3: *op++ |= (v); op_offset++; break; \ - } \ - } - -@@ -106,6 +106,7 @@ NeXTDecode(TIFF* tif, uint8* buf, tmsize - uint32 imagewidth = tif->tif_dir.td_imagewidth; - if( isTiled(tif) ) - imagewidth = tif->tif_dir.td_tilewidth; -+ tmsize_t op_offset = 0; - - /* - * The scanline is composed of a sequence of constant -@@ -122,10 +123,15 @@ NeXTDecode(TIFF* tif, uint8* buf, tmsize - * bounds, potentially resulting in a security - * issue. - */ -- while (n-- > 0 && npixels < imagewidth) -+ while (n-- > 0 && npixels < imagewidth && op_offset < scanline) - SETPIXEL(op, grey); - if (npixels >= imagewidth) - break; -+ if (op_offset >= scanline ) { -+ TIFFErrorExt(tif->tif_clientdata, module, "Invalid data for scanline %ld", -+ (long) tif->tif_row); -+ return (0); -+ } - if (cc == 0) - goto bad; - n = *bp++, cc--; diff --git a/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.4.bb b/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb index f1f5a7e8e..e2e24e0fb 100644 --- a/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.4.bb +++ b/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb @@ -5,12 +5,13 @@ HOMEPAGE = "http://www.remotesensing.org/libtiff/" SRC_URI = "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${PV}.tar.gz \ file://libtool2.patch \ - file://CVE-2015-8781.patch \ - file://CVE-2015-8784.patch \ " -SRC_URI[md5sum] = "9aee7107408a128c0c7b24286c0db900" -SRC_URI[sha256sum] = "8cb1d90c96f61cdfc0bcf036acc251c9dbe6320334da941c7a83cfe1576ef890" +SRC_URI[md5sum] = "d1d2e940dea0b5ad435f21f03d96dd72" +SRC_URI[sha256sum] = "4d57a50907b510e3049a4bba0d7888930fdfc16ce49f1bf693e5b6247370d68c" + +# exclude betas +UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar" inherit autotools diff --git a/yocto-poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb b/yocto-poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb index cede2bf10..16669947f 100644 --- a/yocto-poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb +++ b/yocto-poky/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb @@ -14,6 +14,8 @@ SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz \ SRC_URI[md5sum] = "7631b0a4bcfdd0d78c0bb0083080b0dc" SRC_URI[sha256sum] = "c74a76068f8ec36d4bb59a03bf1157be44118ca02252180e8b358b0b5e3edeee" +UPSTREAM_CHECK_URI = "http://libmpeg2.sourceforge.net/downloads.html" + inherit autotools pkgconfig EXTRA_OECONF = "--enable-shared --disable-sdl" diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc index 5b806d761..0b05ce4ca 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc @@ -7,12 +7,12 @@ LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ file://src/pulsecore/resampler.h;beginline=4;endline=21;md5=09794012ae16912c0270f3280cc8ff84" -DEPENDS = "libatomic-ops liboil libsndfile1 libtool" +DEPENDS = "libatomic-ops libsndfile1 libtool" # optional DEPENDS += "udev alsa-lib glib-2.0 gconf" DEPENDS += "json-c gdbm speexdsp libxml-parser-perl-native libcap" -inherit autotools pkgconfig useradd gettext perlnative bluetooth systemd +inherit autotools bash-completion pkgconfig useradd gettext perlnative bluetooth systemd # *.desktop rules wont be generated during configure and build will fail # if using --disable-nls @@ -32,6 +32,10 @@ EXTRA_OECONF = "\ ac_cv_header_valgrind_memcheck_h=no \ " +# soxr (the SoX Resampler library) doesn't seem to be currently packaged in +# oe-core nor meta-oe, so let's not add a PACKAGECONFIG entry for it for now. +EXTRA_OECONF += "--without-soxr" + PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ @@ -52,6 +56,7 @@ PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" # Since many embedded systems don't have non-root users, it's useful to be # able to use pulseaudio autospawn for root as well. PACKAGECONFIG[autospawn-for-root] = ",,," +PACKAGECONFIG[lirc] = "--enable-lirc,--disable-lirc,lirc" EXTRA_OECONF_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}" EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}" @@ -100,7 +105,7 @@ RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" -FILES_libpulsecore = "${libdir}/libpulsecore*.so" +FILES_libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so" FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" # client.conf configures the behaviour of libpulse, so it belongs in the same @@ -110,8 +115,6 @@ FILES_libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf" FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" -FILES_${PN}-dbg += "${libexecdir}/pulse/.debug \ - ${libdir}/pulse-${PV}/modules/.debug" FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake" FILES_${PN}-conf = "${sysconfdir}" FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse" diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch new file mode 100644 index 000000000..1c1e2fbdb --- /dev/null +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch @@ -0,0 +1,268 @@ +From b8b9b3da94a0c27090ceba243fdf54fb518c5489 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen <tanuk@iki.fi> +Date: Mon, 1 Feb 2016 15:34:59 +0200 +Subject: [PATCH] Revert "module-switch-on-port-available: Route to preferred + profile" + +This reverts commit e87100d41ef6d14f8dc7f803582191d9f8d8f183. + +The reverted commit had some unwanted consequences: +https://bugs.freedesktop.org/show_bug.cgi?id=93903 +https://bugs.freedesktop.org/show_bug.cgi?id=93946 + +The first regression has a fix here: +https://patchwork.freedesktop.org/patch/72053/ + +The second regression, however, doesn't have a fix yet. Therefore, +it's best to revert the offending patch for now. + +Upstream-Status: Inappropriate [Upstream plans to fix the issues +properly.] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> +--- + src/modules/module-switch-on-port-available.c | 172 ++++++++++---------------- + 1 file changed, 67 insertions(+), 105 deletions(-) + +diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c +index 5dd9786..8de68a3 100644 +--- a/src/modules/module-switch-on-port-available.c ++++ b/src/modules/module-switch-on-port-available.c +@@ -74,25 +74,22 @@ static bool profile_good_for_input(pa_card_profile *profile) { + static int try_to_switch_profile(pa_device_port *port) { + pa_card_profile *best_profile = NULL, *profile; + void *state; +- unsigned best_prio = 0; + +- pa_log_debug("Finding best profile for port %s, preferred = %s", +- port->name, pa_strnull(port->preferred_profile)); ++ pa_log_debug("Finding best profile"); + + PA_HASHMAP_FOREACH(profile, port->profiles, state) { + bool good = false; +- const char *name; +- unsigned prio = profile->priority; ++ ++ if (best_profile && best_profile->priority >= profile->priority) ++ continue; + + /* We make a best effort to keep other direction unchanged */ + switch (port->direction) { + case PA_DIRECTION_OUTPUT: +- name = profile->output_name; + good = profile_good_for_output(profile); + break; + + case PA_DIRECTION_INPUT: +- name = profile->input_name; + good = profile_good_for_input(profile); + break; + } +@@ -100,15 +97,7 @@ static int try_to_switch_profile(pa_device_port *port) { + if (!good) + continue; + +- /* Give a high bonus in case this is the preferred profile */ +- if (port->preferred_profile && pa_streq(name ? name : profile->name, port->preferred_profile)) +- prio += 1000000; +- +- if (best_profile && best_prio >= prio) +- continue; +- + best_profile = profile; +- best_prio = prio; + } + + if (!best_profile) { +@@ -124,125 +113,98 @@ static int try_to_switch_profile(pa_device_port *port) { + return 0; + } + +-struct port_pointers { +- pa_device_port *port; +- pa_sink *sink; +- pa_source *source; +- bool is_possible_profile_active; +- bool is_preferred_profile_active; +- bool is_port_active; +-}; +- +-static const char* profile_name_for_dir(pa_card_profile *cp, pa_direction_t dir) { +- if (dir == PA_DIRECTION_OUTPUT && cp->output_name) +- return cp->output_name; +- if (dir == PA_DIRECTION_INPUT && cp->input_name) +- return cp->input_name; +- return cp->name; +-} +- +-static struct port_pointers find_port_pointers(pa_device_port *port) { +- struct port_pointers pp = { .port = port }; ++static void find_sink_and_source(pa_card *card, pa_device_port *port, pa_sink **si, pa_source **so) { ++ pa_sink *sink = NULL; ++ pa_source *source = NULL; + uint32_t state; +- pa_card *card; +- +- pa_assert(port); +- pa_assert_se(card = port->card); + + switch (port->direction) { + case PA_DIRECTION_OUTPUT: +- PA_IDXSET_FOREACH(pp.sink, card->sinks, state) +- if (port == pa_hashmap_get(pp.sink->ports, port->name)) ++ PA_IDXSET_FOREACH(sink, card->sinks, state) ++ if (port == pa_hashmap_get(sink->ports, port->name)) + break; + break; + + case PA_DIRECTION_INPUT: +- PA_IDXSET_FOREACH(pp.source, card->sources, state) +- if (port == pa_hashmap_get(pp.source->ports, port->name)) ++ PA_IDXSET_FOREACH(source, card->sources, state) ++ if (port == pa_hashmap_get(source->ports, port->name)) + break; + break; + } + +- pp.is_possible_profile_active = +- card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name); +- pp.is_preferred_profile_active = pp.is_possible_profile_active && (!port->preferred_profile || +- pa_safe_streq(port->preferred_profile, profile_name_for_dir(card->active_profile, port->direction))); +- pp.is_port_active = (pp.sink && pp.sink->active_port == port) || (pp.source && pp.source->active_port == port); +- +- return pp; ++ *si = sink; ++ *so = source; + } + +-/* Switches to a port, switching profiles if necessary or preferred */ +-static bool switch_to_port(pa_device_port *port) { +- struct port_pointers pp = find_port_pointers(port); ++static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) { ++ pa_card* card; ++ pa_sink *sink; ++ pa_source *source; ++ bool is_active_profile, is_active_port; + +- if (pp.is_port_active) +- return true; /* Already selected */ ++ if (port->available == PA_AVAILABLE_UNKNOWN) ++ return PA_HOOK_OK; + +- pa_log_debug("Trying to switch to port %s", port->name); +- if (!pp.is_preferred_profile_active) { +- if (try_to_switch_profile(port) < 0) { +- if (pp.is_possible_profile_active) +- return false; +- } +- else +- /* Now that profile has changed, our sink and source pointers must be updated */ +- pp = find_port_pointers(port); +- } ++ card = port->card; + +- if (pp.source) +- pa_source_set_port(pp.source, port->name, false); +- if (pp.sink) +- pa_sink_set_port(pp.sink, port->name, false); +- return true; +-} ++ if (!card) { ++ pa_log_warn("Port %s does not have a card", port->name); ++ return PA_HOOK_OK; ++ } + +-/* Switches away from a port, switching profiles if necessary or preferred */ +-static bool switch_from_port(pa_device_port *port) { +- struct port_pointers pp = find_port_pointers(port); +- pa_device_port *p, *best_port = NULL; +- void *state; ++ if (pa_idxset_size(card->sinks) == 0 && pa_idxset_size(card->sources) == 0) ++ /* This card is not initialized yet. We'll handle it in ++ sink_new / source_new callbacks later. */ ++ return PA_HOOK_OK; + +- if (!pp.is_port_active) +- return true; /* Already deselected */ ++ find_sink_and_source(card, port, &sink, &source); + +- /* Try to find a good enough port to switch to */ +- PA_HASHMAP_FOREACH(p, port->card->ports, state) +- if (p->direction == port->direction && p != port && p->available != PA_AVAILABLE_NO && +- (!best_port || best_port->priority < p->priority)) +- best_port = p; ++ is_active_profile = card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name); ++ is_active_port = (sink && sink->active_port == port) || (source && source->active_port == port); + +- pa_log_debug("Trying to switch away from port %s, found %s", port->name, best_port ? best_port->name : "no better option"); ++ if (port->available == PA_AVAILABLE_NO && !is_active_port) ++ return PA_HOOK_OK; + +- if (best_port) +- return switch_to_port(best_port); ++ if (port->available == PA_AVAILABLE_YES) { ++ if (is_active_port) ++ return PA_HOOK_OK; + +- return false; +-} ++ if (!is_active_profile) { ++ if (try_to_switch_profile(port) < 0) ++ return PA_HOOK_OK; + ++ pa_assert(card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name)); + +-static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) { +- pa_assert(port); ++ /* Now that profile has changed, our sink and source pointers must be updated */ ++ find_sink_and_source(card, port, &sink, &source); ++ } + +- if (!port->card) { +- pa_log_warn("Port %s does not have a card", port->name); +- return PA_HOOK_OK; ++ if (source) ++ pa_source_set_port(source, port->name, false); ++ if (sink) ++ pa_sink_set_port(sink, port->name, false); + } + +- if (pa_idxset_size(port->card->sinks) == 0 && pa_idxset_size(port->card->sources) == 0) +- /* This card is not initialized yet. We'll handle it in +- sink_new / source_new callbacks later. */ +- return PA_HOOK_OK; ++ if (port->available == PA_AVAILABLE_NO) { ++ if (sink) { ++ pa_device_port *p2 = pa_device_port_find_best(sink->ports); ++ ++ if (p2 && p2->available != PA_AVAILABLE_NO) ++ pa_sink_set_port(sink, p2->name, false); ++ else { ++ /* Maybe try to switch to another profile? */ ++ } ++ } + +- switch (port->available) { +- case PA_AVAILABLE_YES: +- switch_to_port(port); +- break; +- case PA_AVAILABLE_NO: +- switch_from_port(port); +- break; +- default: +- break; ++ if (source) { ++ pa_device_port *p2 = pa_device_port_find_best(source->ports); ++ ++ if (p2 && p2->available != PA_AVAILABLE_NO) ++ pa_source_set_port(source, p2->name, false); ++ else { ++ /* Maybe try to switch to another profile? */ ++ } ++ } + } + + return PA_HOOK_OK; +-- +2.7.0 + diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch index 97b2e4064..84c951940 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch @@ -1,4 +1,4 @@ -From 6f814b40a01d03f93b36184c19339033949de472 Mon Sep 17 00:00:00 2001 +From d1c02971867bea10afcafc82c965414012c4d6bd Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <tanuk@iki.fi> Date: Fri, 23 Oct 2015 12:23:13 +0300 Subject: [PATCH 1/4] card: add pa_card_profile.ports @@ -9,23 +9,30 @@ availability (implemented in a later patch). http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 -Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +Rebased on 8.0. + +Upstream-Status: Denied [The patch set needs some work to be accepted. +The review thread: +http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> --- src/modules/alsa/alsa-mixer.c | 4 +++- src/modules/alsa/alsa-ucm.c | 1 + src/modules/bluetooth/module-bluez4-device.c | 6 ++++++ src/modules/bluetooth/module-bluez5-device.c | 6 ++++++ - src/pulsecore/card.c | 16 ++++++++++++++++ - src/pulsecore/card.h | 18 ++++++++++++------ + src/pulsecore/card.c | 15 +++++++++++++++ + src/pulsecore/card.h | 4 ++++ src/pulsecore/device-port.c | 7 ++++++- - 7 files changed, 50 insertions(+), 8 deletions(-) + 7 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c -index 47cbd14..c5b82b0 100644 +index 1fe2a02..5b76b06 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c -@@ -4654,8 +4654,10 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */ +@@ -4783,8 +4783,10 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */ path->port = p; } @@ -38,10 +45,10 @@ index 47cbd14..c5b82b0 100644 if (extra) { pa_hashmap_put(extra, p->name, p); diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c -index aa2d601..c8199d6 100644 +index 42f3242..68fcc26 100644 --- a/src/modules/alsa/alsa-ucm.c +++ b/src/modules/alsa/alsa-ucm.c -@@ -761,6 +761,7 @@ static void ucm_add_port_combination( +@@ -791,6 +791,7 @@ static void ucm_add_port_combination( if (cp) { pa_log_debug("Adding profile %s to port %s.", cp->name, port->name); pa_hashmap_put(port->profiles, cp->name, cp); @@ -50,10 +57,10 @@ index aa2d601..c8199d6 100644 if (hash) { diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c -index db69d34..b40c6a0 100644 +index 9a921a5..adecb32 100644 --- a/src/modules/bluetooth/module-bluez4-device.c +++ b/src/modules/bluetooth/module-bluez4-device.c -@@ -2183,6 +2183,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid +@@ -2180,6 +2180,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid p->max_sink_channels = 2; p->max_source_channels = 0; pa_hashmap_put(output_port->profiles, p->name, p); @@ -61,7 +68,7 @@ index db69d34..b40c6a0 100644 d = PA_CARD_PROFILE_DATA(p); *d = PA_BLUEZ4_PROFILE_A2DP; -@@ -2194,6 +2195,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid +@@ -2191,6 +2192,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid p->max_sink_channels = 0; p->max_source_channels = 2; pa_hashmap_put(input_port->profiles, p->name, p); @@ -69,7 +76,7 @@ index db69d34..b40c6a0 100644 d = PA_CARD_PROFILE_DATA(p); *d = PA_BLUEZ4_PROFILE_A2DP_SOURCE; -@@ -2206,6 +2208,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid +@@ -2203,6 +2205,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid p->max_source_channels = 1; pa_hashmap_put(input_port->profiles, p->name, p); pa_hashmap_put(output_port->profiles, p->name, p); @@ -78,7 +85,7 @@ index db69d34..b40c6a0 100644 d = PA_CARD_PROFILE_DATA(p); *d = PA_BLUEZ4_PROFILE_HSP; -@@ -2218,6 +2222,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid +@@ -2215,6 +2219,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid p->max_source_channels = 1; pa_hashmap_put(input_port->profiles, p->name, p); pa_hashmap_put(output_port->profiles, p->name, p); @@ -88,7 +95,7 @@ index db69d34..b40c6a0 100644 d = PA_CARD_PROFILE_DATA(p); *d = PA_BLUEZ4_PROFILE_HFGW; diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c -index 7238e6f..3321785 100644 +index 84e6d55..b015c67 100644 --- a/src/modules/bluetooth/module-bluez5-device.c +++ b/src/modules/bluetooth/module-bluez5-device.c @@ -1790,6 +1790,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid @@ -126,18 +133,18 @@ index 7238e6f..3321785 100644 p = PA_CARD_PROFILE_DATA(cp); *p = PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY; diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c -index 6f9391e..cc4c784 100644 +index b6cbbf7..f92ac87 100644 --- a/src/pulsecore/card.c +++ b/src/pulsecore/card.c -@@ -50,6 +50,7 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description, - c->n_sinks = c->n_sources = 0; - c->max_sink_channels = c->max_source_channels = 0; +@@ -45,6 +45,7 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description, + c->name = pa_xstrdup(name); + c->description = pa_xstrdup(description); c->available = PA_AVAILABLE_UNKNOWN; + c->ports = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); return c; } -@@ -57,11 +58,25 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description, +@@ -52,6 +53,14 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description, void pa_card_profile_free(pa_card_profile *c) { pa_assert(c); @@ -149,8 +156,10 @@ index 6f9391e..cc4c784 100644 + pa_hashmap_free(c->ports); + } + + pa_xfree(c->input_name); + pa_xfree(c->output_name); pa_xfree(c->name); - pa_xfree(c->description); +@@ -59,6 +68,12 @@ void pa_card_profile_free(pa_card_profile *c) { pa_xfree(c); } @@ -163,47 +172,11 @@ index 6f9391e..cc4c784 100644 void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available) { pa_core *core; -@@ -198,6 +213,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { - - c->userdata = NULL; - c->set_profile = NULL; -+ c->active_profile = NULL; - - pa_device_init_description(c->proplist, c); - pa_device_init_icon(c->proplist, true); diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h -index 3e2c004..1c33958 100644 +index 30bfc0e..fff9057 100644 --- a/src/pulsecore/card.h +++ b/src/pulsecore/card.h -@@ -22,19 +22,21 @@ - - typedef struct pa_card pa_card; - --#include <pulse/proplist.h> --#include <pulsecore/core.h> --#include <pulsecore/module.h> --#include <pulsecore/idxset.h> -- - /* This enum replaces pa_port_available_t (defined in pulse/def.h) for -- * internal use, so make sure both enum types stay in sync. */ -+ * internal use, so make sure both enum types stay in sync. This is defined -+ * before the #includes, because device-port.h depends on this enum. */ - typedef enum pa_available { - PA_AVAILABLE_UNKNOWN = 0, - PA_AVAILABLE_NO = 1, - PA_AVAILABLE_YES = 2, - } pa_available_t; - -+#include <pulse/proplist.h> -+#include <pulsecore/core.h> -+#include <pulsecore/device-port.h> -+#include <pulsecore/module.h> -+#include <pulsecore/idxset.h> -+ - typedef struct pa_card_profile { - pa_card *card; - char *name; -@@ -43,6 +45,8 @@ typedef struct pa_card_profile { +@@ -50,6 +50,8 @@ struct pa_card_profile { unsigned priority; pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */ @@ -212,7 +185,7 @@ index 3e2c004..1c33958 100644 /* We probably want to have different properties later on here */ unsigned n_sinks; unsigned n_sources; -@@ -100,6 +104,8 @@ typedef struct pa_card_new_data { +@@ -107,6 +109,8 @@ typedef struct pa_card_new_data { pa_card_profile *pa_card_profile_new(const char *name, const char *description, size_t extra); void pa_card_profile_free(pa_card_profile *c); @@ -222,10 +195,10 @@ index 3e2c004..1c33958 100644 void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available); diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c -index cfe2a80..f16ecef 100644 +index 5807d3e..d12dfbc 100644 --- a/src/pulsecore/device-port.c +++ b/src/pulsecore/device-port.c -@@ -95,8 +95,13 @@ static void device_port_free(pa_object *o) { +@@ -107,8 +107,13 @@ static void device_port_free(pa_object *o) { if (p->proplist) pa_proplist_free(p->proplist); @@ -238,8 +211,8 @@ index cfe2a80..f16ecef 100644 pa_hashmap_free(p->profiles); + } + pa_xfree(p->preferred_profile); pa_xfree(p->name); - pa_xfree(p->description); -- -2.1.4 +2.7.0 diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch index d19eb7c19..bc3277583 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch @@ -7,7 +7,12 @@ Usually autospawning for root is a bad idea, since it can easily interfere with other users' PulseAudio instances, but in embedded environments where only root exists, autospawning is fine. -Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23549] +Upstream-Status: Denied [Upstream hasn't so far been convinced that +this feature is needed. The view is that running the graphical session +as root doesn't make sense even on embedded systems, or if it does, +running PulseAudio in the system mode should be a good solution for +that use case. If someone can prove otherwise, the patch would +probably be accepted.] Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> --- diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch deleted file mode 100644 index a9f1b2acf..000000000 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-conf-parser-add-support-for-.d-directories.patch +++ /dev/null @@ -1,196 +0,0 @@ -From 8cb643bbf0a287d67794e680d26f49c503f31053 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> -Date: Thu, 21 May 2015 21:00:59 +0300 -Subject: [PATCH] conf-parser: add support for .d directories - -This allows a configuration scheme where prior to loading -configuration from "somefile", the parser first loads configuration -from files in directory "somefile.d". This feature is currently -enabled only for client.conf and daemon.conf. - -This makes it easier to create configuration packages in distributions -when there's need to have different configuration in different setups. -For example, the graphical Sato environment in OpenEmbedded-core needs -to set allow-autospawn-for-root=true in client.conf, but the default -configuration in OpenEmbedded-core should not set that option. With -this patch, I can create a Sato-specific package that simply installs -50-sato.conf in /etc/pulse/client.conf.d without conflicting with the -main client.conf file coming from a different package. - -Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23592] - -Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com> ---- - src/daemon/daemon-conf.c | 2 +- - src/modules/alsa/alsa-mixer.c | 4 ++-- - src/modules/module-augment-properties.c | 2 +- - src/pulse/client-conf.c | 2 +- - src/pulsecore/conf-parser.c | 42 +++++++++++++++++++++++++++++++-- - src/pulsecore/conf-parser.h | 8 ++++++- - 6 files changed, 52 insertions(+), 8 deletions(-) - -diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c -index 21a8edb..1332fc6 100644 ---- a/src/daemon/daemon-conf.c -+++ b/src/daemon/daemon-conf.c -@@ -617,7 +617,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) { - ci.default_channel_map_set = ci.default_sample_spec_set = false; - ci.conf = c; - -- r = f ? pa_config_parse(c->config_file, f, table, NULL, NULL) : 0; -+ r = f ? pa_config_parse(c->config_file, f, table, NULL, true, NULL) : 0; - - if (r >= 0) { - -diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c -index 2314612..988b4fe 100644 ---- a/src/modules/alsa/alsa-mixer.c -+++ b/src/modules/alsa/alsa-mixer.c -@@ -2483,7 +2483,7 @@ pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa - - fn = pa_maybe_prefix_path(fname, paths_dir); - -- r = pa_config_parse(fn, NULL, items, p->proplist, p); -+ r = pa_config_parse(fn, NULL, items, p->proplist, false, p); - pa_xfree(fn); - - if (r < 0) -@@ -4288,7 +4288,7 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel - pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" : - PA_ALSA_PROFILE_SETS_DIR); - -- r = pa_config_parse(fn, NULL, items, NULL, ps); -+ r = pa_config_parse(fn, NULL, items, NULL, false, ps); - pa_xfree(fn); - - if (r < 0) -diff --git a/src/modules/module-augment-properties.c b/src/modules/module-augment-properties.c -index 42b6fd9..541f0e7 100644 ---- a/src/modules/module-augment-properties.c -+++ b/src/modules/module-augment-properties.c -@@ -204,7 +204,7 @@ static void update_rule(struct rule *r) { - table[0].data = &r->application_name; - table[1].data = &r->icon_name; - -- if (pa_config_parse(fn, NULL, table, NULL, r) < 0) -+ if (pa_config_parse(fn, NULL, table, NULL, false, r) < 0) - pa_log_warn("Failed to parse .desktop file %s.", fn); - - pa_xfree(fn); -diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c -index 83331f8..3c3384d 100644 ---- a/src/pulse/client-conf.c -+++ b/src/pulse/client-conf.c -@@ -149,7 +149,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e - - f = pa_open_config_file(DEFAULT_CLIENT_CONFIG_FILE, DEFAULT_CLIENT_CONFIG_FILE_USER, ENV_CLIENT_CONFIG_FILE, &fn); - if (f) { -- pa_config_parse(fn, f, table, NULL, NULL); -+ pa_config_parse(fn, f, table, NULL, true, NULL); - pa_xfree(fn); - fclose(f); - } -diff --git a/src/pulsecore/conf-parser.c b/src/pulsecore/conf-parser.c -index 2dcd45a..d473232 100644 ---- a/src/pulsecore/conf-parser.c -+++ b/src/pulsecore/conf-parser.c -@@ -21,6 +21,7 @@ - #include <config.h> - #endif - -+#include <dirent.h> - #include <string.h> - #include <stdio.h> - #include <errno.h> -@@ -103,7 +104,7 @@ static int parse_line(pa_config_parser_state *state) { - } - } - -- r = pa_config_parse(fn, NULL, state->item_table, state->proplist, state->userdata); -+ r = pa_config_parse(fn, NULL, state->item_table, state->proplist, false, state->userdata); - pa_xfree(path); - return r; - } -@@ -152,8 +153,13 @@ static int parse_line(pa_config_parser_state *state) { - return normal_assignment(state); - } - -+static int conf_filter(const struct dirent *entry) { -+ return pa_endswith(entry->d_name, ".conf"); -+} -+ - /* Go through the file and parse each line */ --int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, void *userdata) { -+int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, bool use_dot_d, -+ void *userdata) { - int r = -1; - bool do_close = !f; - pa_config_parser_state state; -@@ -163,6 +169,38 @@ int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_p - - pa_zero(state); - -+ if (use_dot_d) { -+ char *dir_name; -+ int n; -+ struct dirent **entries = NULL; -+ -+ dir_name = pa_sprintf_malloc("%s.d", filename); -+ -+ n = scandir(dir_name, &entries, conf_filter, alphasort); -+ if (n >= 0) { -+ int i; -+ -+ for (i = 0; i < n; i++) { -+ char *filename2; -+ -+ filename2 = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", dir_name, entries[i]->d_name); -+ pa_config_parse(filename2, NULL, t, proplist, false, userdata); -+ pa_xfree(filename2); -+ -+ free(entries[i]); -+ } -+ -+ free(entries); -+ } else { -+ if (errno == ENOENT) -+ pa_log_debug("scandir(\"%s\") failed: %s", dir_name, pa_cstrerror(errno)); -+ else -+ pa_log_warn("scandir(\"%s\") failed: %s", dir_name, pa_cstrerror(errno)); -+ } -+ -+ pa_xfree(dir_name); -+ } -+ - if (!f && !(f = pa_fopen_cloexec(filename, "r"))) { - if (errno == ENOENT) { - pa_log_debug("Failed to open configuration file '%s': %s", filename, pa_cstrerror(errno)); -diff --git a/src/pulsecore/conf-parser.h b/src/pulsecore/conf-parser.h -index dbb6f5c..cc20d7d 100644 ---- a/src/pulsecore/conf-parser.h -+++ b/src/pulsecore/conf-parser.h -@@ -59,6 +59,11 @@ struct pa_config_parser_state { - * pa_config_items in *t that is terminated by an item where lvalue is - * NULL. - * -+ * If use_dot_d is true, then before parsing the file named by the filename -+ * argument, the function will parse all files ending with ".conf" in -+ * alphabetical order from a directory whose name is filename + ".d", if such -+ * directory exists. -+ * - * Some configuration files may contain a Properties section, which - * is a bit special. Normally all accepted lvalues must be predefined - * in the pa_config_item table, but in the Properties section the -@@ -68,7 +73,8 @@ struct pa_config_parser_state { - * properties, and those properties will be merged into the given - * proplist. If proplist is NULL, then sections named "Properties" - * are not allowed at all in the configuration file. */ --int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, void *userdata); -+int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, bool use_dot_d, -+ void *userdata); - - /* Generic parsers for integers, size_t, booleans and strings */ - int pa_config_parse_int(pa_config_parser_state *state); --- -1.9.3 - diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch index c3f217bc6..be3655b23 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch @@ -10,8 +10,13 @@ didn't succeed. http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 -Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +Upstream-Status: Denied [The patch set needs some work to be accepted. +The review thread: +http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> --- src/modules/alsa/module-alsa-card.c | 10 ++++++++-- src/modules/bluetooth/module-bluez4-device.c | 6 ++++-- diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch index 9585f3d52..0e7780154 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch @@ -1,4 +1,4 @@ -From cc41c8a3149ef04d4aa2db3d15032605a5504658 Mon Sep 17 00:00:00 2001 +From 13e85dd1763e99d21a60323671b9a5df08bdae75 Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <tanuk@iki.fi> Date: Fri, 23 Oct 2015 12:59:53 +0300 Subject: [PATCH 3/4] card: move profile selection after pa_card_new() @@ -32,23 +32,30 @@ whether someone else has already set the profile. http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 -Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +Rebased on 8.0. + +Upstream-Status: Denied [The patch set needs some work to be accepted. +The review thread: +http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> --- - src/modules/alsa/module-alsa-card.c | 19 +++--- - src/modules/bluetooth/module-bluez4-device.c | 18 +++--- + src/modules/alsa/module-alsa-card.c | 19 +++---- + src/modules/bluetooth/module-bluez4-device.c | 18 +++---- src/modules/bluetooth/module-bluez5-device.c | 1 + src/modules/macosx/module-coreaudio-device.c | 1 + - src/modules/module-card-restore.c | 24 ++++---- - src/pulsecore/card.c | 86 +++++++++++++++------------- + src/modules/module-card-restore.c | 24 +++++---- + src/pulsecore/card.c | 81 +++++++++++++++------------- src/pulsecore/card.h | 7 +++ - 7 files changed, 87 insertions(+), 69 deletions(-) + 7 files changed, 86 insertions(+), 65 deletions(-) diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c -index 32f517e..5b39654 100644 +index 9e8cde2..fe240f0 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c -@@ -754,15 +754,6 @@ int pa__init(pa_module *m) { +@@ -770,15 +770,6 @@ int pa__init(pa_module *m) { goto fail; } @@ -64,7 +71,7 @@ index 32f517e..5b39654 100644 u->card = pa_card_new(m->core, &data); pa_card_new_data_done(&data); -@@ -773,6 +764,16 @@ int pa__init(pa_module *m) { +@@ -789,6 +780,16 @@ int pa__init(pa_module *m) { u->card->set_profile = card_set_profile; init_jacks(u); @@ -82,10 +89,10 @@ index 32f517e..5b39654 100644 init_eld_ctls(u); diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c -index 94e6988..5efc5dc 100644 +index dd18217..5d0d3db 100644 --- a/src/modules/bluetooth/module-bluez4-device.c +++ b/src/modules/bluetooth/module-bluez4-device.c -@@ -2307,15 +2307,6 @@ static int add_card(struct userdata *u) { +@@ -2304,15 +2304,6 @@ static int add_card(struct userdata *u) { *d = PA_BLUEZ4_PROFILE_OFF; pa_hashmap_put(data.profiles, p->name, p); @@ -101,7 +108,7 @@ index 94e6988..5efc5dc 100644 u->card = pa_card_new(u->core, &data); pa_card_new_data_done(&data); -@@ -2326,6 +2317,15 @@ static int add_card(struct userdata *u) { +@@ -2323,6 +2314,15 @@ static int add_card(struct userdata *u) { u->card->userdata = u; u->card->set_profile = card_set_profile; @@ -118,7 +125,7 @@ index 94e6988..5efc5dc 100644 d = PA_CARD_PROFILE_DATA(u->card->active_profile); diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c -index 3321785..0081a21 100644 +index b015c67..7b90a31 100644 --- a/src/modules/bluetooth/module-bluez5-device.c +++ b/src/modules/bluetooth/module-bluez5-device.c @@ -1959,6 +1959,7 @@ static int add_card(struct userdata *u) { @@ -130,10 +137,10 @@ index 3321785..0081a21 100644 p = PA_CARD_PROFILE_DATA(u->card->active_profile); u->profile = *p; diff --git a/src/modules/macosx/module-coreaudio-device.c b/src/modules/macosx/module-coreaudio-device.c -index 4bbb5d5..41f151f 100644 +index 0c92d42..7190ee9 100644 --- a/src/modules/macosx/module-coreaudio-device.c +++ b/src/modules/macosx/module-coreaudio-device.c -@@ -764,6 +764,7 @@ int pa__init(pa_module *m) { +@@ -807,6 +807,7 @@ int pa__init(pa_module *m) { pa_card_new_data_done(&card_new_data); u->card->userdata = u; u->card->set_profile = card_set_profile; @@ -142,10 +149,10 @@ index 4bbb5d5..41f151f 100644 u->rtpoll = pa_rtpoll_new(); pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll); diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c -index baa2f4f..0501ac8 100644 +index f906843..dce6674 100644 --- a/src/modules/module-card-restore.c +++ b/src/modules/module-card-restore.c -@@ -485,34 +485,38 @@ static pa_hook_result_t port_offset_change_callback(pa_core *c, pa_device_port * +@@ -515,34 +515,38 @@ static pa_hook_result_t port_offset_change_callback(pa_core *c, pa_device_port * return PA_HOOK_OK; } @@ -189,24 +196,24 @@ index baa2f4f..0501ac8 100644 + pa_log_info("Restoring port latency offsets for card %s.", card->name); PA_HASHMAP_FOREACH(p_info, e->ports, state) -- if ((p = pa_hashmap_get(new_data->ports, p_info->name))) -+ if ((p = pa_hashmap_get(card->ports, p_info->name))) +- if ((p = pa_hashmap_get(new_data->ports, p_info->name))) { ++ if ((p = pa_hashmap_get(card->ports, p_info->name))) { p->latency_offset = p_info->offset; - - entry_free(e); + if (!p->preferred_profile && p_info->profile) + pa_device_port_set_preferred_profile(p, p_info->profile); diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c -index cc4c784..1b7f71b 100644 +index f92ac87..1a6e705 100644 --- a/src/pulsecore/card.c +++ b/src/pulsecore/card.c -@@ -151,6 +151,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { +@@ -148,6 +148,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { pa_assert(!pa_hashmap_isempty(data->profiles)); - c = pa_xnew(pa_card, 1); + c = pa_xnew0(pa_card, 1); + c->state = PA_CARD_STATE_INIT; if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_CARD, c, data->namereg_fail))) { pa_xfree(c); -@@ -159,12 +160,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { +@@ -156,12 +157,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { pa_card_new_data_set_name(data, name); @@ -219,22 +226,24 @@ index cc4c784..1b7f71b 100644 c->core = core; c->name = pa_xstrdup(data->name); c->proplist = pa_proplist_copy(data->proplist); -@@ -187,30 +182,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { +@@ -184,38 +179,43 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { PA_HASHMAP_FOREACH(port, c->ports, state) port->card = c; -- c->active_profile = NULL; -- c->save_profile = false; -- - if (data->active_profile) - if ((c->active_profile = pa_hashmap_get(c->profiles, data->active_profile))) - c->save_profile = data->save_profile; -- ++ pa_device_init_description(c->proplist, c); ++ pa_device_init_icon(c->proplist, true); ++ pa_device_init_intended_roles(c->proplist); + - if (!c->active_profile) { - PA_HASHMAP_FOREACH(profile, c->profiles, state) { - if (profile->available == PA_AVAILABLE_NO) - continue; -- ++ return c; ++} + - if (!c->active_profile || profile->priority > c->active_profile->priority) - c->active_profile = profile; - } @@ -245,27 +254,10 @@ index cc4c784..1b7f71b 100644 - c->active_profile = profile; - } - pa_assert(c->active_profile); -- } -- - c->userdata = NULL; - c->set_profile = NULL; - c->active_profile = NULL; -@@ -219,13 +190,39 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) { - pa_device_init_icon(c->proplist, true); - pa_device_init_intended_roles(c->proplist); - -- pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0); -+ return c; -+} - -- pa_log_info("Created %u \"%s\"", c->index, c->name); -- pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, c->index); +void pa_card_put(pa_card *card) { + pa_card_profile *profile; + void *state; - -- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PUT], c); -- return c; ++ + pa_assert(card); + + PA_HASHMAP_FOREACH(profile, card->profiles, state) { @@ -274,8 +266,11 @@ index cc4c784..1b7f71b 100644 + + if (!card->active_profile || profile->priority > card->active_profile->priority) + card->active_profile = profile; -+ } -+ + } + +- pa_device_init_description(c->proplist, c); +- pa_device_init_icon(c->proplist, true); +- pa_device_init_intended_roles(c->proplist); + /* If all profiles are unavailable, then we still need to pick one */ + if (!card->active_profile) { + PA_HASHMAP_FOREACH(profile, card->profiles, state) @@ -283,19 +278,24 @@ index cc4c784..1b7f71b 100644 + card->active_profile = profile; + } + pa_assert(card->active_profile); -+ + +- pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0); + pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_NEW], card); -+ + +- pa_log_info("Created %u \"%s\"", c->index, c->name); +- pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, c->index); + pa_assert_se(pa_idxset_put(card->core->cards, card, &card->index) >= 0); + card->state = PA_CARD_STATE_LINKED; -+ + +- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PUT], c); +- return c; + pa_log_info("Created %u \"%s\"", card->index, card->name); + pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_PUT], card); + pa_subscription_post(card->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, card->index); } void pa_card_free(pa_card *c) { -@@ -292,17 +289,24 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) { +@@ -306,20 +306,27 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) { return 0; } @@ -317,6 +317,9 @@ index cc4c784..1b7f71b 100644 c->active_profile = profile; c->save_profile = save; + if (save) + update_port_preferred_profile(c); + - pa_hook_fire(&c->core->hooks[PA_CORE_HOOK_CARD_PROFILE_CHANGED], c); + if (c->state != PA_CARD_STATE_INIT) { + pa_log_info("Changed profile of card %u \"%s\" to %s", c->index, c->name, profile->name); @@ -327,22 +330,22 @@ index cc4c784..1b7f71b 100644 return 0; } diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h -index 1c33958..dbbc1c2 100644 +index fff9057..a944301 100644 --- a/src/pulsecore/card.h +++ b/src/pulsecore/card.h -@@ -37,6 +37,11 @@ typedef enum pa_available { - #include <pulsecore/module.h> - #include <pulsecore/idxset.h> +@@ -34,6 +34,11 @@ typedef enum pa_available { + PA_AVAILABLE_YES = 2, + } pa_available_t; +typedef enum pa_card_state { + PA_CARD_STATE_INIT, + PA_CARD_STATE_LINKED, +} pa_card_state_t; + - typedef struct pa_card_profile { + struct pa_card_profile { pa_card *card; char *name; -@@ -61,6 +66,7 @@ typedef struct pa_card_profile { +@@ -66,6 +71,7 @@ struct pa_card_profile { struct pa_card { uint32_t index; @@ -350,7 +353,7 @@ index 1c33958..dbbc1c2 100644 pa_core *core; char *name; -@@ -115,6 +121,7 @@ void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile); +@@ -120,6 +126,7 @@ void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile); void pa_card_new_data_done(pa_card_new_data *data); pa_card *pa_card_new(pa_core *c, pa_card_new_data *data); @@ -359,5 +362,5 @@ index 1c33958..dbbc1c2 100644 void pa_card_add_profile(pa_card *c, pa_card_profile *profile); -- -2.1.4 +2.7.0 diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch index bb318aa06..e0efa70f3 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch @@ -1,4 +1,4 @@ -From 0136b73158f60d5dc630ae348b18df3b59a2a5c2 Mon Sep 17 00:00:00 2001 +From 690d567e298f6687b61c82660b051df5b25482ee Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen <tanuk@iki.fi> Date: Fri, 23 Oct 2015 13:37:11 +0300 Subject: [PATCH 4/4] alsa: set availability for (some) unavailable profiles @@ -22,28 +22,36 @@ pa_card_profile, however. BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448 -Upstream-Status: Submitted [http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024614.html] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +Rebased on 8.0. + +Upstream-Status: Denied [The patch set needs some work to be accepted. +The review thread: +http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301] + +Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> --- - src/modules/alsa/module-alsa-card.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) + src/modules/alsa/module-alsa-card.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c -index 5b39654..73a846c 100644 +index fe240f0..bdbdc12 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c -@@ -366,6 +366,7 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { +@@ -366,6 +366,8 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { void *state; pa_alsa_jack *jack; - pa_device_port *port; + struct temp_port_avail *tp, *tports; ++ pa_device_port *port; + pa_card_profile *profile; pa_assert(u); -@@ -396,6 +397,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { - } - report_port_state(port, u); - } +@@ -412,6 +414,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) { + pa_device_port_set_available(tp->port, tp->avail); + + pa_xfree(tports); + + /* Update profile availabilities. The logic could be improved; for now we + * only set obviously unavailable profiles (those that contain only @@ -71,5 +79,5 @@ index 5b39654..73a846c 100644 } -- -2.1.4 +2.7.0 diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch deleted file mode 100644 index ed9425040..000000000 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/fix-git-version-gen.patch +++ /dev/null @@ -1,24 +0,0 @@ -git-version-gen gets confused if a tarball is being built inside a git directory -(ie your build directory is a subdirectory of a poky clone), and ends up calling -the release 6.0-dirty. Add a shortcut exit so if a tarball is detected it -doesn't attempt to look at the git status. - -Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=90936) -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/git-version-gen b/git-version-gen -index 7546884..079b93e 100755 ---- a/git-version-gen -+++ b/git-version-gen -@@ -84,7 +84,10 @@ then - v=`cat $tarball_version_file` || exit 1 - case $v in - *$nl*) v= ;; # reject multi-line output -- [0-9]*) ;; -+ [0-9]*) -+ echo "$v" | tr -d '\012' -+ exit 0 -+ ;; - *) v= ;; - esac - test -z "$v" \ diff --git a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb index ec629aa02..b01ba8f68 100644 --- a/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb +++ b/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb @@ -3,16 +3,15 @@ require pulseaudio.inc SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ file://0001-padsp-Make-it-compile-on-musl.patch \ file://0001-client-conf-Add-allow-autospawn-for-root.patch \ - file://0001-conf-parser-add-support-for-.d-directories.patch \ - file://fix-git-version-gen.patch \ file://volatiles.04_pulse \ file://0001-card-add-pa_card_profile.ports.patch \ file://0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \ file://0003-card-move-profile-selection-after-pa_card_new.patch \ file://0004-alsa-set-availability-for-some-unavailable-profiles.patch \ + file://0001-Revert-module-switch-on-port-available-Route-to-pref.patch \ " -SRC_URI[md5sum] = "b691e83b7434c678dffacfa3a027750e" -SRC_URI[sha256sum] = "b50640e0b80b1607600accfad2e45aabb79d379bf6354c9671efa2065477f6f6" +SRC_URI[md5sum] = "8678442ba0bb4b4c33ac6f62542962df" +SRC_URI[sha256sum] = "690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989" do_compile_prepend() { mkdir -p ${S}/libltdl diff --git a/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.4.3.bb b/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb index c4b80f6cf..c89adac5d 100644 --- a/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.4.3.bb +++ b/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb @@ -11,11 +11,13 @@ SECTION = "libs" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ - file://PATENTS;md5=ad2580aee35468675c44d7bebba65ca8" + file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" -SRC_URI[md5sum] = "08813525eeeffe7e305b4cbfade8ae9b" -SRC_URI[sha256sum] = "efbe0d58fda936f2ed99d0b837ed7087d064d6838931f282c4618d2a3f7390c4" +SRC_URI[md5sum] = "ba81eb9bf23e3c69a2f5cc8dcdb5938f" +SRC_URI[sha256sum] = "5cd3bb7b623aff1f4e70bd611dc8dbabbf7688fd5eb225b32e02e09e37dfb274" + +UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" EXTRA_OECONF = " \ --disable-experimental \ |