diff mbox series

[meta-oe,1/2] libplacebo: add recipe

Message ID 20240105183648.61874-1-f_l_k@t-online.de
State Under Review
Headers show
Series [meta-oe,1/2] libplacebo: add recipe | expand

Commit Message

Markus Volk Jan. 5, 2024, 6:36 p.m. UTC
libplacebo is a required build dependency for mpv-0.37

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ...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

Comments

Khem Raj Jan. 5, 2024, 10:42 p.m. UTC | #1
On Fri, Jan 5, 2024 at 10:37 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> libplacebo is a required build dependency for mpv-0.37
>
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  ...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 <f_l_k@t-online.de>
> +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 <f_l_k@t-online.de>
> +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"

glad recipe does not exist in either core or meta-openembedded layers.

stdio: ERROR: Nothing PROVIDES 'glad-native' (but
/home/pokybuild/yocto-worker/meta-oe/build/meta-openembedded/meta-oe/recipes-multimedia/mplayer/libplacebo_git.bb
DEPENDS on or otherwise requires it). Close matches:


> +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"
> +
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#108050): https://lists.openembedded.org/g/openembedded-devel/message/108050
> Mute This Topic: https://lists.openembedded.org/mt/103548464/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Markus Volk Jan. 6, 2024, 6:47 a.m. UTC | #2
On Fri, Jan 5 2024 at 02:42:51 PM -08:00:00, Khem Raj 
<raj.khem@gmail.com> wrote:
> glad recipe does not exist in either core or meta-openembedded layers.

Yes, sorry. I forgot to push the recipe. Now i have sent it and also a 
v3 for mpv that adds the hack for config.h again. At first I thought it 
was no longer needed but without there still leaks buildpaths into the 
binary
diff mbox series

Patch

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 <f_l_k@t-online.de>
+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 <f_l_k@t-online.de>
+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"
+