diff options
author | Carlos Rafael Giani <crg7475@mailbox.org> | 2020-01-12 14:59:49 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-16 22:33:08 +0000 |
commit | 1e05d67ed1a802098e6ba07a44cd6d50404232b8 (patch) | |
tree | 9d88b4774ae551f4fa94c9274e65a0fdd70aaf79 /meta | |
parent | c0a99691445117b60fe0fd81febce7cc5f3e08b6 (diff) | |
download | poky-1e05d67ed1a802098e6ba07a44cd6d50404232b8.tar.gz |
gstreamer1.0-libav: Transition to meson based builds
meson based builds exclusively rely on external FFmpeg builds. The internal
copy was added at a time when stable FFmpeg releases did not exist. They
do nowadays, so the internal copy is not needed anymore. As a result, large
portions of the recipe are unnecessary, since they set up the internal
copy. Same goes for the patches and the zlib/bzip2/xz dependendencies.
(From OE-Core rev: ab9316367d6c22f7f2d45db41bb7c8ef28e58168)
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
6 files changed, 14 insertions, 211 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch deleted file mode 100644 index 11571aefa1..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 54bba228ea52d01fd84941d97be23c03f9862b64 Mon Sep 17 00:00:00 2001 | ||
2 | From: Carlos Rafael Giani <dv@pseudoterminal.org> | ||
3 | Date: Sat, 6 Apr 2013 01:22:22 +0200 | ||
4 | Subject: [PATCH] Disable yasm for libav when --disable-yasm | ||
5 | |||
6 | Upstream-Status: Inappropriate [configuration] | ||
7 | |||
8 | Signed-off-by: Shane Wang <shane.wang@intel.com> | ||
9 | Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> | ||
10 | --- | ||
11 | configure.ac | 4 ++++ | ||
12 | 1 file changed, 4 insertions(+) | ||
13 | |||
14 | diff --git a/configure.ac b/configure.ac | ||
15 | index 22ede88..ef3c050 100644 | ||
16 | --- a/configure.ac | ||
17 | +++ b/configure.ac | ||
18 | @@ -355,6 +355,12 @@ else | ||
19 | emblibav_configure_args="$emblibav_configure_args --enable-gpl" | ||
20 | fi | ||
21 | |||
22 | + AC_ARG_ENABLE(yasm, | ||
23 | + [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])]) | ||
24 | + if test "x$enable_yasm" = "xno"; then | ||
25 | + emblibav_configure_args="$emblibav_configure_args --disable-yasm" | ||
26 | + fi | ||
27 | + | ||
28 | # if we are cross-compiling, tell libav so | ||
29 | case $host in | ||
30 | *android*) | ||
31 | -- | ||
32 | 1.8.2 | ||
33 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch deleted file mode 100644 index f182715bda..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From aac5902d3c9cb35c771e760d0e487622aa2e116a Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Thu, 20 Apr 2017 10:38:18 -0700 | ||
4 | Subject: [PATCH] configure: check for armv7ve variant | ||
5 | |||
6 | OE passes -mcpu and -march via cmdline and if | ||
7 | package tries to detect one of it own then it | ||
8 | should be compatible otherwise, newer gcc7+ will | ||
9 | error out | ||
10 | |||
11 | Check for relevant preprocessor macro to determine | ||
12 | armv7ve architecture | ||
13 | |||
14 | Upstream-Status: Pending | ||
15 | |||
16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
17 | --- | ||
18 | gst-libs/ext/libav/configure | 1 + | ||
19 | 1 file changed, 1 insertion(+) | ||
20 | |||
21 | diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure | ||
22 | index 4a5e477..727818e 100755 | ||
23 | --- a/gst-libs/ext/libav/configure | ||
24 | +++ b/gst-libs/ext/libav/configure | ||
25 | @@ -4745,6 +4745,7 @@ elif enabled arm; then | ||
26 | elif check_arm_arch 6KZ; then echo armv6zk | ||
27 | elif check_arm_arch 6ZK; then echo armv6zk | ||
28 | elif check_arm_arch 6T2; then echo armv6t2 | ||
29 | + elif check_arm_arch EXT_IDIV; then echo armv7ve | ||
30 | elif check_arm_arch 7; then echo armv7 | ||
31 | elif check_arm_arch 7A 7_A; then echo armv7-a | ||
32 | elif check_arm_arch 7S; then echo armv7-a | ||
33 | -- | ||
34 | 2.12.2 | ||
35 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch deleted file mode 100644 index 120c0798ea..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | From c1700f867f876ee33c130a8e28b688e2b1d89663 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Wed, 11 Apr 2018 17:14:55 +0800 | ||
4 | Subject: [PATCH] Prevent host contamination | ||
5 | |||
6 | Remove reference to host $(libdir) from .la files. | ||
7 | |||
8 | Upstream-Status: Inappropriate [cross-compile specific] | ||
9 | |||
10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
11 | --- | ||
12 | gst-libs/ext/Makefile.am | 4 ++-- | ||
13 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/gst-libs/ext/Makefile.am b/gst-libs/ext/Makefile.am | ||
16 | index 6cdc048..a19d255 100644 | ||
17 | --- a/gst-libs/ext/Makefile.am | ||
18 | +++ b/gst-libs/ext/Makefile.am | ||
19 | @@ -49,7 +49,7 @@ echo " GEN $1.la" && \ | ||
20 | echo "library_names=''" && \ | ||
21 | echo "old_library='$1.a'" && \ | ||
22 | echo "inherited_linker_flags=''" && \ | ||
23 | - echo "dependency_libs=' -L$(libdir) $(if $2,$(foreach dep,$2,$(abs_builddir)/$(dep).la)) $(call find_library_la,$3 $(LIBM),$(LDFLAGS)) '" && \ | ||
24 | + echo "dependency_libs=' -L $(if $2,$(foreach dep,$2,$(abs_builddir)/$(dep).la)) $(call find_library_la,$3 $(LIBM),$(LDFLAGS)) '" && \ | ||
25 | echo "weak_library_names=''" && \ | ||
26 | echo "current=" && \ | ||
27 | echo "age=" && \ | ||
28 | @@ -58,7 +58,7 @@ echo " GEN $1.la" && \ | ||
29 | echo "shouldnotlink=no" && \ | ||
30 | echo "dlopen=''" && \ | ||
31 | echo "dlpreopen=''" && \ | ||
32 | - echo "libdir='$(libdir)'") > $1.la | ||
33 | + echo "libdir=''") > $1.la | ||
34 | endef | ||
35 | |||
36 | libavutil.la: | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch deleted file mode 100644 index 90d042b313..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | It will add -mips64r6 and -mips64r2 to cmdline which will | ||
2 | cause conflicts | ||
3 | |||
4 | in OE we user mips32r2 and mips64r2 for mips arch versions | ||
5 | so there is no benefit of detecting it automatically by | ||
6 | poking at tools especially in cross env | ||
7 | |||
8 | Fixes errors like | ||
9 | |||
10 | linking -mnan=2008 module with previous -mnan=legacy modules | ||
11 | failed to merge target specific data of file | ||
12 | |||
13 | -Khem | ||
14 | Upstream-Status: Inappropriate [OE-Specific] | ||
15 | |||
16 | Index: gst-libav-1.10.1/gst-libs/ext/libav/configure | ||
17 | =================================================================== | ||
18 | --- gst-libav-1.10.1.orig/gst-libs/ext/libav/configure | ||
19 | +++ gst-libav-1.10.1/gst-libs/ext/libav/configure | ||
20 | @@ -5650,12 +5650,9 @@ elif enabled mips; then | ||
21 | |||
22 | # Enable minimum ISA based on selected options | ||
23 | if enabled mips64; then | ||
24 | - enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6' | ||
25 | enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2' | ||
26 | disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64' | ||
27 | else | ||
28 | - enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6' | ||
29 | - enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5' | ||
30 | enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2' | ||
31 | disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32' | ||
32 | fi | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch deleted file mode 100644 index 4b85356547..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | Description: Workaround to build libav for i586 with gcc 4.9.2 by avoiding memset | ||
2 | Author: Bernhard Übelacker <bernhardu@vr-web.de> | ||
3 | |||
4 | --- | ||
5 | Bug-Debian: https://bugs.debian.org/783082 | ||
6 | Last-Update: 2015-04-28 | ||
7 | |||
8 | Upstream-Status: Backport [debian] | ||
9 | |||
10 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
11 | |||
12 | --- gst-libav-1.4.5.orig/gst-libs/ext/libav/libavcodec/h264_cabac.c | ||
13 | +++ gst-libav-1.4.5/gst-libs/ext/libav/libavcodec/h264_cabac.c | ||
14 | @@ -2057,7 +2057,11 @@ decode_intra_mb: | ||
15 | // In deblocking, the quantizer is 0 | ||
16 | h->cur_pic.qscale_table[mb_xy] = 0; | ||
17 | // All coeffs are present | ||
18 | - memset(h->non_zero_count[mb_xy], 16, 48); | ||
19 | + /*memset(h->non_zero_count[mb_xy], 16, 48);*/ | ||
20 | + /* avoiding this memset because it leads at least with gcc4.9.2 to error: 'asm' operand has impossible constraints */ | ||
21 | + for (size_t i = 0; i < 48; i++) { | ||
22 | + ( (unsigned char*)(h->non_zero_count[mb_xy]) ) [i] = 16; | ||
23 | + } | ||
24 | h->cur_pic.mb_type[mb_xy] = mb_type; | ||
25 | sl->last_qscale_diff = 0; | ||
26 | return 0; | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb index 10955ff161..c1bd6b1eb1 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.1.bb | |||
@@ -6,65 +6,30 @@ LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" | |||
6 | LICENSE_FLAGS = "commercial" | 6 | LICENSE_FLAGS = "commercial" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ |
8 | file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ | 8 | file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ |
9 | file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ | 9 | file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c" |
10 | file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
11 | file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ | ||
12 | file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ | ||
13 | file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" | ||
14 | 10 | ||
15 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ | 11 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ |
16 | file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ | ||
17 | file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ | ||
18 | file://mips64_cpu_detection.patch \ | ||
19 | file://0001-configure-check-for-armv7ve-variant.patch \ | ||
20 | file://0001-fix-host-contamination.patch \ | ||
21 | " | 12 | " |
22 | SRC_URI[md5sum] = "58023f4c71bbd711061e350fcd76c09d" | 13 | SRC_URI[md5sum] = "58023f4c71bbd711061e350fcd76c09d" |
23 | SRC_URI[sha256sum] = "e8a5748ae9a4a7be9696512182ea9ffa6efe0be9b7976916548e9d4381ca61c4" | 14 | SRC_URI[sha256sum] = "e8a5748ae9a4a7be9696512182ea9ffa6efe0be9b7976916548e9d4381ca61c4" |
24 | 15 | ||
25 | S = "${WORKDIR}/gst-libav-${PV}" | 16 | S = "${WORKDIR}/gst-libav-${PV}" |
26 | 17 | ||
27 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz" | 18 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" |
28 | 19 | ||
29 | inherit autotools pkgconfig upstream-version-is-even gtk-doc | 20 | inherit meson pkgconfig upstream-version-is-even |
30 | |||
31 | # CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time, | ||
32 | # compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the | ||
33 | # libav copy included in the gst-libav package. | ||
34 | PACKAGECONFIG ??= "orc yasm" | ||
35 | |||
36 | PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl," | ||
37 | PACKAGECONFIG[libav] = "--with-system-libav,,libav" | ||
38 | PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" | ||
39 | PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native" | ||
40 | PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" | ||
41 | |||
42 | GSTREAMER_1_0_DEBUG ?= "--disable-debug" | ||
43 | |||
44 | LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure" | ||
45 | |||
46 | LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ | ||
47 | --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ | ||
48 | --ranlib='${RANLIB}' \ | ||
49 | ${GSTREAMER_1_0_DEBUG} \ | ||
50 | --cross-prefix='${HOST_PREFIX}'" | ||
51 | |||
52 | # Disable assembly optimizations for X32, as this libav lacks the support | ||
53 | PACKAGECONFIG_remove_linux-gnux32 = "yasm" | ||
54 | LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm" | ||
55 | |||
56 | LIBAV_EXTRA_CONFIGURE_COMMON = \ | ||
57 | '${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"' | ||
58 | |||
59 | EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}" | ||
60 | 21 | ||
61 | FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" | 22 | FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" |
62 | FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" | ||
63 | FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" | 23 | FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" |
64 | 24 | ||
65 | # http://errors.yoctoproject.org/Errors/Details/20493/ | 25 | delete_unused_libav_copy() { |
66 | ARM_INSTRUCTION_SET_armv4 = "arm" | 26 | # When building with meson, the internal libav copy is not used. |
67 | ARM_INSTRUCTION_SET_armv5 = "arm" | 27 | # It is only present for legacy autotools based builds. In future |
68 | 28 | # GStreamer versions, the autotools scripts will be gone, and so | |
69 | # ffmpeg/libav disables PIC on some platforms (e.g. x86-32) | 29 | # will this internal copy. Until then, it will be present. In order |
70 | INSANE_SKIP_${PN} = "textrel" | 30 | # to make sure this copy is not included in the -src package, just |
31 | # manually delete the copy. | ||
32 | rm -rf "${S}/gst-libs/ext/libav/" | ||
33 | } | ||
34 | |||
35 | do_unpack[postfuncs] += " delete_unused_libav_copy" | ||