From 0ee2c58b7851ea24c99cd1062e42ade5e0a4f70c Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Wed, 22 Mar 2023 09:36:16 +0100 Subject: [PATCH] Apply upstream patch for libplacebo v6.265 --- ...8d42ab203c961e50ce198ca4eb232de3819a.patch | 47 +++++++++++++++++++ mpv.spec | 3 ++ 2 files changed, 50 insertions(+) create mode 100644 3a2f8d42ab203c961e50ce198ca4eb232de3819a.patch diff --git a/3a2f8d42ab203c961e50ce198ca4eb232de3819a.patch b/3a2f8d42ab203c961e50ce198ca4eb232de3819a.patch new file mode 100644 index 0000000..251c1a4 --- /dev/null +++ b/3a2f8d42ab203c961e50ce198ca4eb232de3819a.patch @@ -0,0 +1,47 @@ +From 3a2f8d42ab203c961e50ce198ca4eb232de3819a Mon Sep 17 00:00:00 2001 +From: llyyr +Date: Tue, 14 Mar 2023 00:25:04 +0530 +Subject: [PATCH] vo_gpu_next: compatibility with libplacebo v6.265 + +libplacebo v6.265.0 removed v4 deprecations. We already require +PL_API_VER >= 202, so we don't need to wrap +pl_tex_transfer_params.row_pitch around a conditional, which exists +since PL_API_VER >= 168. However, pl_source_frame.duration does not exist until +PL_API_VER >= 219, so we should use a conditional directive. +--- + video/out/vo_gpu_next.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c +index 7ed01d52165..569ea373c8a 100644 +--- a/video/out/vo_gpu_next.c ++++ b/video/out/vo_gpu_next.c +@@ -265,7 +265,7 @@ static void update_overlays(struct vo *vo, struct mp_osd_res res, double pts, + ok = pl_tex_upload(p->gpu, &(struct pl_tex_transfer_params) { + .tex = entry->tex, + .rc = { .x1 = item->packed_w, .y1 = item->packed_h, }, +- .stride_w = item->packed->stride[0] / tex_fmt->texel_size, ++ .row_pitch = item->packed->stride[0], + .ptr = item->packed->planes[0], + }); + if (!ok) { +@@ -882,6 +882,9 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) + + pl_queue_push(p->queue, &(struct pl_source_frame) { + .pts = mpi->pts, ++#if PL_API_VER >= 219 ++ .duration = frame->ideal_frame_duration, ++#endif + .frame_data = mpi, + .map = map_frame, + .unmap = unmap_frame, +@@ -939,7 +942,9 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) + .pts = frame->current->pts + vsync_offset, + .radius = pl_frame_mix_radius(&p->params), + .vsync_duration = frame->vsync_interval, ++#if PL_API_VER < 219 + .frame_duration = frame->ideal_frame_duration, ++#endif + .interpolation_threshold = opts->interpolation_threshold, + }; + diff --git a/mpv.spec b/mpv.spec index a4655a4..087f048 100644 --- a/mpv.spec +++ b/mpv.spec @@ -9,6 +9,9 @@ Source0: https://github.com/%{name}-player/%{name}/archive/v%{version}/%{ # https://github.com/mpv-player/mpv/pull/11398 Patch100: %{name}-0.35.1-yt-dlp-hook-fix.patch +# Upstream patch for libplacebo v6.265 +Patch101: https://github.com/mpv-player/mpv/commit/3a2f8d42ab203c961e50ce198ca4eb232de3819a.patch + BuildRequires: desktop-file-utils BuildRequires: gcc