From patchwork Fri Jan 5 18:36:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Volk X-Patchwork-Id: 37401 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6907C3DA6E for ; Fri, 5 Jan 2024 18:37:07 +0000 (UTC) Received: from mailout12.t-online.de (mailout12.t-online.de [194.25.134.22]) by mx.groups.io with SMTP id smtpd.web11.31135.1704479823510233152 for ; Fri, 05 Jan 2024 10:37:03 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: t-online.de, ip: 194.25.134.22, mailfrom: f_l_k@t-online.de) Received: from fwd85.aul.t-online.de (fwd85.aul.t-online.de [10.223.144.111]) by mailout12.t-online.de (Postfix) with SMTP id C51A87AB8 for ; Fri, 5 Jan 2024 19:37:01 +0100 (CET) Received: from intel-corei7-64.fritz.box ([84.154.175.203]) by fwd85.t-online.de with (TLSv1.3:TLS_AES_256_GCM_SHA384 encrypted) esmtp id 1rLp3w-2G1C0P0; Fri, 5 Jan 2024 19:36:56 +0100 From: Markus Volk To: openembedded-devel@lists.openembedded.org Subject: [meta-oe][PATCH 1/2] libplacebo: add recipe Date: Fri, 5 Jan 2024 19:36:47 +0100 Message-ID: <20240105183648.61874-1-f_l_k@t-online.de> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-TOI-EXPURGATEID: 150726::1704479816-C12ED9F9-1CB5DDCA/0/0 CLEAN NORMAL X-TOI-MSGID: 6873778e-49e6-4c07-a660-fb8e44d55df9 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 05 Jan 2024 18:37:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/108050 libplacebo is a required build dependency for mpv-0.37 Signed-off-by: Markus Volk --- ...001-frame_queue.h-add-frame_duration.patch | 32 +++++++++++++++++++ .../libplacebo/0001-gpu.h-add-stride_w.patch | 30 +++++++++++++++++ .../mplayer/libplacebo_git.bb | 28 ++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 meta-oe/recipes-multimedia/mplayer/libplacebo/0001-frame_queue.h-add-frame_duration.patch create mode 100644 meta-oe/recipes-multimedia/mplayer/libplacebo/0001-gpu.h-add-stride_w.patch create mode 100644 meta-oe/recipes-multimedia/mplayer/libplacebo_git.bb diff --git a/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-frame_queue.h-add-frame_duration.patch b/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-frame_queue.h-add-frame_duration.patch new file mode 100644 index 000000000..5b4ded981 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-frame_queue.h-add-frame_duration.patch @@ -0,0 +1,32 @@ +From 8437cd1fa7dc1797d3290c121ca17b39a0d2fd6a Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Tue, 5 Dec 2023 19:49:42 +0100 +Subject: [PATCH] frame_queue.h: add frame_duration + +This fixes: +| [ 87/266] Compiling stream/cookies.c +| ../git/video/out/vo_gpu_next.c: In function 'draw_frame': +| ../git/video/out/vo_gpu_next.c:932:14: error: 'struct pl_queue_params' has no member named 'frame_duration' +| 932 | .frame_duration = frame->ideal_frame_duration, +| | ^~~~~~~~~~~~~~ + +--- + src/include/libplacebo/utils/frame_queue.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/include/libplacebo/utils/frame_queue.h b/src/include/libplacebo/utils/frame_queue.h +index 2a9c90c3..8afa4355 100644 +--- a/src/include/libplacebo/utils/frame_queue.h ++++ b/src/include/libplacebo/utils/frame_queue.h +@@ -170,6 +170,8 @@ struct pl_queue_params { + // should instead be interpreted by the provided callback. + uint64_t timeout; + ++ const float frame_duration; ++ + // This callback will be used to pull new frames from the decoder. It may + // block if needed. The user is responsible for setting appropriate time + // limits and/or returning and interpreting QUEUE_MORE as sensible. +-- +2.42.1 + diff --git a/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-gpu.h-add-stride_w.patch b/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-gpu.h-add-stride_w.patch new file mode 100644 index 000000000..f08e122cf --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/libplacebo/0001-gpu.h-add-stride_w.patch @@ -0,0 +1,30 @@ +From fbf74064bbb7133efe9234ef83976f06b3690e88 Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Tue, 5 Dec 2023 19:35:51 +0100 +Subject: [PATCH] gpu.h: add stride_w + +this fixes: +| [113/257] Compiling common/codecs.c +| ../git/video/out/vo_gpu_next.c: In function 'update_overlays': +| ../git/video/out/vo_gpu_next.c:268:14: error: 'struct pl_tex_transfer_params' has no member named 'stride_w' +| 268 | .stride_w = item->packed->stride[0] / tex_fmt->texel_size, +| | ^~~~~~~~ +--- + src/include/libplacebo/gpu.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/include/libplacebo/gpu.h b/src/include/libplacebo/gpu.h +index a63fdf7c..57b4f195 100644 +--- a/src/include/libplacebo/gpu.h ++++ b/src/include/libplacebo/gpu.h +@@ -904,6 +904,7 @@ struct pl_tex_transfer_params { + + // Note: The contents of the memory region / buffer must exactly match the + // texture format; i.e. there is no explicit conversion between formats. ++ size_t stride_w; // + }; + + #define pl_tex_transfer_params(...) (&(struct pl_tex_transfer_params) { __VA_ARGS__ }) +-- +2.42.1 + diff --git a/meta-oe/recipes-multimedia/mplayer/libplacebo_git.bb b/meta-oe/recipes-multimedia/mplayer/libplacebo_git.bb new file mode 100644 index 000000000..dd0796782 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/libplacebo_git.bb @@ -0,0 +1,28 @@ +SUMMARY = "The core rendering algorithms and ideas of mpv rewritten as an independent library." +SECTION = "multimedia" +HOMEPAGE = "https://opensourcelibs.com/lib/libplacebo" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=435ed639f84d4585d93824e7da3d85da" + +SRC_URI = " \ + git://code.videolan.org/videolan/libplacebo.git;protocol=https;branch=v6.338 \ + file://0001-gpu.h-add-stride_w.patch \ + file://0001-frame_queue.h-add-frame_duration.patch \ +" + +S = "${WORKDIR}/git" +SRCREV = "2805a0d01c029084ab36bf5d0e3c8742012a0b27" +PV = "6.338.1" + +inherit meson pkgconfig + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'vulkan opengl', d)}" + +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader vulkan-headers shaderc spirv-shader-generator python3-mako-native python3-jinja2-native glad-native" +PACKAGECONFIG[opengl] = "-Dopengl=enabled,-Dopengl=disabled,glad,glad" +PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms" +PACKAGECONFIG[demos] = "-Ddemos=true,-Ddemos=false,ffmpeg libsdl2 libsdl2-image" + +EXTRA_OEMESON = "-Dvulkan-registry=${STAGING_DATADIR}/vulkan/registry/vk.xml" + From patchwork Fri Jan 5 18:36:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Volk X-Patchwork-Id: 37402 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7B02C4707B for ; Fri, 5 Jan 2024 18:37:07 +0000 (UTC) Received: from mailout11.t-online.de (mailout11.t-online.de [194.25.134.85]) by mx.groups.io with SMTP id smtpd.web11.31136.1704479823538871071 for ; Fri, 05 Jan 2024 10:37:04 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: t-online.de, ip: 194.25.134.85, mailfrom: f_l_k@t-online.de) Received: from fwd85.aul.t-online.de (fwd85.aul.t-online.de [10.223.144.111]) by mailout11.t-online.de (Postfix) with SMTP id CADC39FE0 for ; Fri, 5 Jan 2024 19:37:01 +0100 (CET) Received: from intel-corei7-64.fritz.box ([84.154.175.203]) by fwd85.t-online.de with (TLSv1.3:TLS_AES_256_GCM_SHA384 encrypted) esmtp id 1rLp40-2G1C0Q0; Fri, 5 Jan 2024 19:37:00 +0100 From: Markus Volk To: openembedded-devel@lists.openembedded.org Subject: [meta-oe][PATCH 2/2] mpv: upgrade 0.35.1 -> 0.37.0 Date: Fri, 5 Jan 2024 19:36:48 +0100 Message-ID: <20240105183648.61874-2-f_l_k@t-online.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240105183648.61874-1-f_l_k@t-online.de> References: <20240105183648.61874-1-f_l_k@t-online.de> MIME-Version: 1.0 X-TOI-EXPURGATEID: 150726::1704479820-C12ED9F9-507565DC/0/0 CLEAN NORMAL X-TOI-MSGID: 2c69381f-ba3a-414c-81a7-d809f2703bed List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 05 Jan 2024 18:37:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/108051 - switch buildsystem from waf to meson - add libplacebo dependency - add vulkan support - build libmpv (needed eg. for mpvpaper) Signed-off-by: Markus Volk --- .../recipes-multimedia/mplayer/mpv_0.35.1.bb | 116 ------------------ .../recipes-multimedia/mplayer/mpv_0.37.0.bb | 97 +++++++++++++++ 2 files changed, 97 insertions(+), 116 deletions(-) delete mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv_0.37.0.bb diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb deleted file mode 100644 index 0f50a6e8f..000000000 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb +++ /dev/null @@ -1,116 +0,0 @@ -SUMMARY = "Open Source multimedia player" -DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more." -SECTION = "multimedia" -HOMEPAGE = "http://www.mpv.io/" - -DEPENDS = " \ - zlib \ - ffmpeg \ - jpeg \ - libv4l \ - libass \ -" - -LICENSE = "GPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRCREV_mpv = "140ec21c89d671d392877a7f3b91d67e7d7b9239" -SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.35;protocol=https \ - https://waf.io/waf-2.0.25;name=waf;subdir=git \ - " -SRC_URI[waf.sha256sum] = "21199cd220ccf60434133e1fd2ab8c8e5217c3799199c82722543970dc8e38d5" - -S = "${WORKDIR}/git" - -inherit waf pkgconfig mime-xdg - -LDFLAGS:append:riscv64 = " -latomic" - -LUA ?= "lua" -LUA:mips64 = "" -LUA:powerpc64 = "" -LUA:powerpc64le = "" -LUA:riscv64 = "" -LUA:riscv32 = "" -LUA:powerpc = "" - -# Note: lua is required to get on-screen-display (controls) -PACKAGECONFIG ??= " \ - ${LUA} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \ -" - -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext" -PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv" -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl" -PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" -PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm" -PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm" -PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit" -PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive" -PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack" -PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" -PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon" - -python __anonymous() { - packageconfig = (d.getVar("PACKAGECONFIG") or "").split() - extras = [] - if "x11" in packageconfig and "opengl" in packageconfig: - extras.append(" --enable-gl-x11") - if "x11" in packageconfig and "egl" in packageconfig: - extras.append(" --enable-egl-x11") - if "egl" in packageconfig and "drm" in packageconfig: - extras.append(" --enable-egl-drm") - if "vaapi" in packageconfig and "x11" in packageconfig: - extras.append(" --enable-vaapi-x11") - if "vaapi" in packageconfig and "drm" in packageconfig: - extras.append(" --enable-vaapi-drm") - if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig: - extras.append(" --enable-vaapi-x-egl") - if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig: - extras.append(" --enable-vdpau-gl-x11") - if "wayland" in packageconfig and "opengl" in packageconfig: - extras.append(" --enable-gl-wayland") - if "wayland" in packageconfig and "vaapi" in packageconfig: - extras.append(" --enable-vaapi-wayland") - if extras: - d.appendVar("EXTRA_OECONF", "".join(extras)) -} - -SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}" - -EXTRA_OECONF = " \ - --prefix=${prefix} \ - --target=${SIMPLE_TARGET_SYS} \ - --confdir=${sysconfdir} \ - --datadir=${datadir} \ - --disable-manpage-build \ - --disable-libbluray \ - --disable-dvdnav \ - --disable-cdda \ - --disable-uchardet \ - --disable-rubberband \ - --disable-lcms2 \ - --disable-vapoursynth \ - ${PACKAGECONFIG_CONFARGS} \ -" - -do_configure:append() { - sed -i -e 's#${WORKDIR}##g' ${B}/config.h -} - -link_waf() { - ln -s waf-2.0.25 ${S}/waf -} -do_unpack[postfuncs] += "link_waf" - -FILES:${PN} += " \ - ${datadir}/icons \ - ${datadir}/zsh \ - ${datadir}/bash-completion \ - ${datadir}/metainfo \ - " -EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.37.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.37.0.bb new file mode 100644 index 000000000..e6e74dbd5 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.37.0.bb @@ -0,0 +1,97 @@ +SUMMARY = "Open Source multimedia player" +DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more." +SECTION = "multimedia" +HOMEPAGE = "http://www.mpv.io/" + +DEPENDS = " \ + alsa-lib \ + ffmpeg \ + libdrm \ + libass \ + libplacebo \ +" + +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "140ec21c89d671d392877a7f3b91d67e7d7b9239" +SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.35;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig mime-xdg + +LDFLAGS:append:riscv64 = " -latomic" + +LUA ?= "lua" +LUA:mips64 = "" +LUA:powerpc64 = "" +LUA:powerpc64le = "" +LUA:riscv64 = "" +LUA:riscv32 = "" +LUA:powerpc = "" + +# Note: lua is required to get on-screen-display (controls) +PACKAGECONFIG ??= " \ + ${LUA} \ + drm \ + vaapi \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland opengl pipewire pulseaudio vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'gbm', '', d)} \ +" + +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext" +PACKAGECONFIG[xv] = "-Dxv=enabled,-Dxv=disabled,libxv" +PACKAGECONFIG[opengl] = "-Dgl=enabled,-Dgl=disabled,virtual/libgl" +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" +PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm" +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/libgbm" +PACKAGECONFIG[lua] = "-Dlua=enabled,-Dlua=disabled,luajit" +PACKAGECONFIG[libarchive] = "-Dlibarchive=enabled,-Dlibarchive=disabled,libarchive" +PACKAGECONFIG[jack] = "-Djack=enabled, -Djack=disabled, jack" +PACKAGECONFIG[vaapi] = "-Dvaapi=enabled,-Dvaapi=disabled,libva" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,shaderc " +PACKAGECONFIG[vdpau] = "-Dvdpau=enabled,-Dvdpau=disabled,libvdpau" +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland wayland-native libxkbcommon" +PACKAGECONFIG[pipewire] = "-Dpipewire=enabled,-Dpipewire=disabled,pipewire" +PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" + +python __anonymous() { + packageconfig = (d.getVar("PACKAGECONFIG") or "").split() + extras = [] + if "x11" in packageconfig and "opengl" in packageconfig: + extras.append(" -Dgl-x11=enabled") + if "x11" in packageconfig and "egl" in packageconfig: + extras.append(" -Degl-x11=enabled") + if "egl" in packageconfig and "drm" in packageconfig: + extras.append(" -Degl-drm=enabled") + if "vaapi" in packageconfig and "x11" in packageconfig: + extras.append(" -Dvaapi-x11=enabled") + if "vaapi" in packageconfig and "drm" in packageconfig: + extras.append(" -Dvaapi-drm=enabled") + if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig: + extras.append(" -Dvdpau-gl-x11=enabled") + if "wayland" in packageconfig and "opengl" in packageconfig: + extras.append(" -Dgl-wayland=enabled") + if "wayland" in packageconfig and "vaapi" in packageconfig: + extras.append(" -Dvaapi-wayland=enabled") +} + +SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}" + +EXTRA_OEMESON = " \ + -Dmanpage-build=disabled \ + -Dlibbluray=disabled \ + -Dlibmpv=true \ + -Ddvdnav=disabled \ + -Dcdda=disabled \ + -Duchardet=disabled \ + -Drubberband=disabled \ + -Dlcms2=disabled \ + -Dvapoursynth=disabled \ + ${PACKAGECONFIG_CONFARGS} \ +" + +FILES:${PN} += "${datadir}" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"