diff options
| author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2017-07-06 10:54:36 +0300 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-08 13:34:46 +0100 |
| commit | 4a51d254cfb35a54ddf2dfc7e8114b351b46f9d6 (patch) | |
| tree | 0e24ca92d062660780042d4122165a9d529ffd71 | |
| parent | 5e4845d15e6e14a1812853615aa7b65bee806c03 (diff) | |
| download | poky-4a51d254cfb35a54ddf2dfc7e8114b351b46f9d6.tar.gz | |
gstreamer1.0-plugins-bad: Add vulkan PACKAGECONFIG
This adds a Vulkan video sink (using xcb and/or wayland).
Add a few patches to fix the build.
(From OE-Core rev: a80a0b3981d129a945ddd775690963cefa15376a)
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
4 files changed, 105 insertions, 2 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc index 0ccfc89a2e..4f6bc854d2 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc | |||
| @@ -66,6 +66,7 @@ PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" | |||
| 66 | PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" | 66 | PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" |
| 67 | PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" | 67 | PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" |
| 68 | PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" | 68 | PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" |
| 69 | PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan" | ||
| 69 | PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols" | 70 | PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols" |
| 70 | PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" | 71 | PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" |
| 71 | 72 | ||
| @@ -78,7 +79,7 @@ PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" | |||
| 78 | # openni2 winks direct3d directsound winscreencap acm apple_media | 79 | # openni2 winks direct3d directsound winscreencap acm apple_media |
| 79 | # android_media avc bs2b chromaprint daala dts fdkaac gme gsm kate ladspa libde265 | 80 | # android_media avc bs2b chromaprint daala dts fdkaac gme gsm kate ladspa libde265 |
| 80 | # lv2 mimic mpeg2enc mplex musepack nvenc ofa openh264 opensles pvr soundtouch spandsp | 81 | # lv2 mimic mpeg2enc mplex musepack nvenc ofa openh264 opensles pvr soundtouch spandsp |
| 81 | # spc teletextdec tinyalsa vdpau vulkan wasapi x265 zbar | 82 | # spc teletextdec tinyalsa vdpau wasapi x265 zbar |
| 82 | 83 | ||
| 83 | # qt5 support is disabled, because it is not present in OE core, and requires more work than | 84 | # qt5 support is disabled, because it is not present in OE core, and requires more work than |
| 84 | # just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). | 85 | # just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). |
| @@ -136,7 +137,6 @@ EXTRA_OECONF += " \ | |||
| 136 | --disable-timidity \ | 137 | --disable-timidity \ |
| 137 | --disable-tinyalsa \ | 138 | --disable-tinyalsa \ |
| 138 | --disable-vdpau \ | 139 | --disable-vdpau \ |
| 139 | --disable-vulkan \ | ||
| 140 | --disable-wasapi \ | 140 | --disable-wasapi \ |
| 141 | --disable-wildmidi \ | 141 | --disable-wildmidi \ |
| 142 | --disable-wininet \ | 142 | --disable-wininet \ |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-vkdisplay-Use-ifdef-for-platform-specific-defines.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-vkdisplay-Use-ifdef-for-platform-specific-defines.patch new file mode 100644 index 0000000000..caaa62d48a --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-vkdisplay-Use-ifdef-for-platform-specific-defines.patch | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | From 1523ab462c1bf19055960ced255f4872b6cf9f5c Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
| 3 | Date: Wed, 5 Jul 2017 11:00:42 +0300 | ||
| 4 | Subject: [PATCH 1/2] vkdisplay: Use ifdef for platform specific defines | ||
| 5 | |||
| 6 | VK_KHR_*_SURFACE_EXTENSION_NAME are only available when corresponding | ||
| 7 | WSI is enabled. | ||
| 8 | |||
| 9 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
| 10 | Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=784539] | ||
| 11 | --- | ||
| 12 | ext/vulkan/vkdisplay.c | 4 ++++ | ||
| 13 | 1 file changed, 4 insertions(+) | ||
| 14 | |||
| 15 | diff --git a/ext/vulkan/vkdisplay.c b/ext/vulkan/vkdisplay.c | ||
| 16 | index 550134cd8..ade5d4583 100644 | ||
| 17 | --- a/ext/vulkan/vkdisplay.c | ||
| 18 | +++ b/ext/vulkan/vkdisplay.c | ||
| 19 | @@ -448,11 +448,15 @@ gst_vulkan_display_type_to_extension_string (GstVulkanDisplayType type) | ||
| 20 | if (type == GST_VULKAN_DISPLAY_TYPE_NONE) | ||
| 21 | return NULL; | ||
| 22 | |||
| 23 | +#if GST_VULKAN_HAVE_WINDOW_XCB | ||
| 24 | if (type & GST_VULKAN_DISPLAY_TYPE_XCB) | ||
| 25 | return VK_KHR_XCB_SURFACE_EXTENSION_NAME; | ||
| 26 | +#endif | ||
| 27 | |||
| 28 | +#if GST_VULKAN_HAVE_WINDOW_WAYLAND | ||
| 29 | if (type & GST_VULKAN_DISPLAY_TYPE_WAYLAND) | ||
| 30 | return VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME; | ||
| 31 | +#endif | ||
| 32 | |||
| 33 | return NULL; | ||
| 34 | } | ||
| 35 | -- | ||
| 36 | 2.13.2 | ||
| 37 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-vulkan-Use-the-generated-version-of-vkconfig.h.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-vulkan-Use-the-generated-version-of-vkconfig.h.patch new file mode 100644 index 0000000000..0df145dd25 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-vulkan-Use-the-generated-version-of-vkconfig.h.patch | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | From c23e1dc22deb495561cffb877edb2746b740a1fa Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
| 3 | Date: Wed, 5 Jul 2017 11:07:05 +0300 | ||
| 4 | Subject: [PATCH 2/2] vulkan: Use the generated version of vkconfig.h | ||
| 5 | |||
| 6 | Build fails in ext/vulkan/xcb and ext/vulkan/wayland when: | ||
| 7 | * building from tarball | ||
| 8 | * building out-of-tree | ||
| 9 | * Only one WSI integration (xcb or wayland) is enabled by configure.ac | ||
| 10 | This is because vkconfig.h from source directory gets used instead | ||
| 11 | of the generated one. | ||
| 12 | |||
| 13 | Add the correct build directory to "-I". Use angle bracket | ||
| 14 | include in vkapi.h so that it actually looks in the include search | ||
| 15 | path instead of defaulting to the same (source tree) directory. | ||
| 16 | |||
| 17 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
| 18 | Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=784539] | ||
| 19 | --- | ||
| 20 | ext/vulkan/vkapi.h | 2 +- | ||
| 21 | ext/vulkan/wayland/Makefile.am | 1 + | ||
| 22 | ext/vulkan/xcb/Makefile.am | 1 + | ||
| 23 | 3 files changed, 3 insertions(+), 1 deletion(-) | ||
| 24 | |||
| 25 | diff --git a/ext/vulkan/vkapi.h b/ext/vulkan/vkapi.h | ||
| 26 | index e9c23aa92..a37c29d0f 100644 | ||
| 27 | --- a/ext/vulkan/vkapi.h | ||
| 28 | +++ b/ext/vulkan/vkapi.h | ||
| 29 | @@ -23,7 +23,7 @@ | ||
| 30 | |||
| 31 | #define VK_PROTOTYPES | ||
| 32 | |||
| 33 | -#include "vkconfig.h" | ||
| 34 | +#include <vkconfig.h> | ||
| 35 | #include "vk_fwd.h" | ||
| 36 | #include "vkmacros.h" | ||
| 37 | |||
| 38 | diff --git a/ext/vulkan/wayland/Makefile.am b/ext/vulkan/wayland/Makefile.am | ||
| 39 | index f92d85e2c..10cfb70e6 100644 | ||
| 40 | --- a/ext/vulkan/wayland/Makefile.am | ||
| 41 | +++ b/ext/vulkan/wayland/Makefile.am | ||
| 42 | @@ -14,6 +14,7 @@ noinst_HEADERS = \ | ||
| 43 | |||
| 44 | libgstvulkan_wayland_la_CFLAGS = \ | ||
| 45 | -I$(top_srcdir)/gst-libs \ | ||
| 46 | + -I$(top_builddir)/ext/vulkan \ | ||
| 47 | -I$(top_srcdir)/ext/vulkan \ | ||
| 48 | -I$(top_builddir)/gst-libs \ | ||
| 49 | $(GST_PLUGINS_BASE_CFLAGS) \ | ||
| 50 | diff --git a/ext/vulkan/xcb/Makefile.am b/ext/vulkan/xcb/Makefile.am | ||
| 51 | index 7debcff9e..b5103551b 100644 | ||
| 52 | --- a/ext/vulkan/xcb/Makefile.am | ||
| 53 | +++ b/ext/vulkan/xcb/Makefile.am | ||
| 54 | @@ -14,6 +14,7 @@ noinst_HEADERS = \ | ||
| 55 | |||
| 56 | libgstvulkan_xcb_la_CFLAGS = \ | ||
| 57 | -I$(top_srcdir)/gst-libs \ | ||
| 58 | + -I$(top_builddir)/ext/vulkan \ | ||
| 59 | -I$(top_srcdir)/ext/vulkan \ | ||
| 60 | -I$(top_builddir)/gst-libs \ | ||
| 61 | $(GST_PLUGINS_BASE_CFLAGS) \ | ||
| 62 | -- | ||
| 63 | 2.13.2 | ||
| 64 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.4.bb index def03a9b81..a7692304d8 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.4.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.4.bb | |||
| @@ -19,6 +19,8 @@ SRC_URI = " \ | |||
| 19 | file://0001-smoothstreaming-use-the-duration-from-the-list-of-fr.patch \ | 19 | file://0001-smoothstreaming-use-the-duration-from-the-list-of-fr.patch \ |
| 20 | file://0001-mssdemux-improved-live-playback-support.patch \ | 20 | file://0001-mssdemux-improved-live-playback-support.patch \ |
| 21 | file://link-with-libvchostif.patch \ | 21 | file://link-with-libvchostif.patch \ |
| 22 | file://0001-vkdisplay-Use-ifdef-for-platform-specific-defines.patch \ | ||
| 23 | file://0002-vulkan-Use-the-generated-version-of-vkconfig.h.patch \ | ||
| 22 | " | 24 | " |
| 23 | SRC_URI[md5sum] = "2757103e57a096a1a05b3ab85b8381af" | 25 | SRC_URI[md5sum] = "2757103e57a096a1a05b3ab85b8381af" |
| 24 | SRC_URI[sha256sum] = "23ddae506b3a223b94869a0d3eea3e9a12e847f94d2d0e0b97102ce13ecd6966" | 26 | SRC_URI[sha256sum] = "23ddae506b3a223b94869a0d3eea3e9a12e847f94d2d0e0b97102ce13ecd6966" |
