mpv: bump for API change on libplacebo

This commit is contained in:
Danny Rawlins 2021-02-27 23:37:40 +11:00
parent f33fd81b29
commit a4bc654323
4 changed files with 3717 additions and 912 deletions

View File

@ -1,7 +1,8 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF36+DwOVFFyzIUAM2vhbRi1mdKblppXQsBLJ3Z5s9P/ZYAvheeAsZtrdYl6b4cj/gKnXevVaMJzDobvYAxqZD1Aw=
SHA256 (Pkgfile) = 671e1b02f65a6bf29fe3c5581fd926b6d78d48105be386920a2a91ce1ad9fa67
RWSagIOpLGJF33GFhJgn2H+b+Vb0cfu61A4dbVtr6ydLe/GedAocCle1AkVzAbmuljBSojAw03InawRl6k6Si0FOotPag4ODNwk=
SHA256 (Pkgfile) = 6ff3c1b7fd4ccdb98d04f2022cd43b5834e80f11fc5cbbc6b1fd1485aea10e48
SHA256 (.footprint) = f14555b474f5c94353678e03ba77450f3c745c12b1786ae3740039d17fa35bcd
SHA256 (mpv-v0.33.0.tar.gz) = f1b9baf5dc2eeaf376597c28a6281facf6ed98ff3d567e3955c95bf2459520b4
SHA256 (waf-2.0.9) = 2a8e0816f023995e557f79ea8940d322bec18f286917c8f9a6fa2dc3875dfa48
SHA256 (mpv.1) = e2c8c722447909b9ab08725a0dc479330caaab51f5058912bebbef9688ef241d
SHA256 (mpv-libplacebo-3.104.0-api-change.patch) = a9f656a163e17a33050ea3ffe51203b948168437c87038239fc3a2424927b35a
SHA256 (mpv.1) = e672df1405028f8a01eed50a2216cc901355ac8704c87453a0a3074721314c18

View File

@ -6,14 +6,17 @@
name=mpv
version=0.33.0
release=1
release=2
source=(https://github.com/$name-player/$name/archive/v$version/$name-v$version.tar.gz
https://waf.io/waf-2.0.9
mpv-libplacebo-3.104.0-api-change.patch
mpv.1)
build() {
cd $name-$version
patch -p1 -i $SRC/mpv-libplacebo-3.104.0-api-change.patch
install -m0755 $SRC/waf-2.0.9 waf
[[ -e '/usr/lib/pkgconfig/libcdio_cdda.pc' ]] && PKGMK_MPV+=' --enable-cdda'

View File

@ -0,0 +1,84 @@
From 7c4465cefb27d4e0d07535d368febdf77b579566 Mon Sep 17 00:00:00 2001
From: Niklas Haas <git@haasn.xyz>
Date: Thu, 3 Dec 2020 08:25:23 +0100
Subject: [PATCH] vo_gpu: placebo: update for upstream API changes
The concept of sample/address modes was moved from `pl_tex` to
`pl_desc_binding`.
The `pl_tex_blit()` function also underwent an API change.
---
video/out/placebo/ra_pl.c | 31 +++++++++++++++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/video/out/placebo/ra_pl.c b/video/out/placebo/ra_pl.c
index f8df590511..8244acff26 100644
--- a/video/out/placebo/ra_pl.c
+++ b/video/out/placebo/ra_pl.c
@@ -144,8 +144,14 @@ bool mppl_wrap_tex(struct ra *ra, const struct pl_tex *pltex,
.blit_dst = pltex->params.blit_dst,
.host_mutable = pltex->params.host_writable,
.downloadable = pltex->params.host_readable,
+#if PL_API_VER >= 103
+ // These don't exist upstream, so just pick something reasonable
+ .src_linear = pltex->params.format->caps & PL_FMT_CAP_LINEAR,
+ .src_repeat = false,
+#else
.src_linear = pltex->params.sample_mode == PL_TEX_SAMPLE_LINEAR,
.src_repeat = pltex->params.address_mode == PL_TEX_ADDRESS_REPEAT,
+#endif
},
.priv = (void *) pltex,
};
@@ -195,10 +201,12 @@ static struct ra_tex *tex_create_pl(struct ra *ra,
.blit_dst = params->blit_dst || params->render_dst,
.host_writable = params->host_mutable,
.host_readable = params->downloadable,
+#if PL_API_VER < 103
.sample_mode = params->src_linear ? PL_TEX_SAMPLE_LINEAR
: PL_TEX_SAMPLE_NEAREST,
.address_mode = params->src_repeat ? PL_TEX_ADDRESS_REPEAT
: PL_TEX_ADDRESS_CLAMP,
+#endif
.initial_data = params->initial_data,
});
@@ -399,7 +407,18 @@ static void blit_pl(struct ra *ra, struct ra_tex *dst, struct ra_tex *src,
pldst.y1 = MPMIN(MPMAX(dst_rc->y1, 0), dst->params.h);
}
+#if PL_API_VER >= 103
+ pl_tex_blit(get_gpu(ra), &(struct pl_tex_blit_params) {
+ .src = src->priv,
+ .dst = dst->priv,
+ .src_rc = plsrc,
+ .dst_rc = pldst,
+ .sample_mode = src->params.src_linear ? PL_TEX_SAMPLE_LINEAR
+ : PL_TEX_SAMPLE_NEAREST,
+ });
+#else
pl_tex_blit(get_gpu(ra), dst->priv, src->priv, pldst, plsrc);
+#endif
}
static const enum pl_var_type var_type[RA_VARTYPE_COUNT] = {
@@ -627,9 +646,17 @@ static void renderpass_run_pl(struct ra *ra,
struct pl_desc_binding bind;
switch (inp->type) {
case RA_VARTYPE_TEX:
- case RA_VARTYPE_IMG_W:
- bind.object = (* (struct ra_tex **) val->data)->priv;
+ case RA_VARTYPE_IMG_W: {
+ struct ra_tex *tex = *((struct ra_tex **) val->data);
+ bind.object = tex->priv;
+#if PL_API_VER >= 103
+ bind.sample_mode = tex->params.src_linear ? PL_TEX_SAMPLE_LINEAR
+ : PL_TEX_SAMPLE_NEAREST;
+ bind.address_mode = tex->params.src_repeat ? PL_TEX_ADDRESS_REPEAT
+ : PL_TEX_ADDRESS_CLAMP;
+#endif
break;
+ }
case RA_VARTYPE_BUF_RO:
case RA_VARTYPE_BUF_RW:
bind.object = (* (struct ra_buf **) val->data)->priv;

4533
mpv/mpv.1

File diff suppressed because it is too large Load Diff