summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/hwdec.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2022-02-27 11:28:21 +0100
committerNiklas Haas <github-daiK1o@haasn.dev>2022-03-03 13:06:05 +0100
commitbb434a60ed801723c8e3becae019352935539e50 (patch)
treeeb7ac7755d24675a27d7c5c4c16f020545a8ea86 /video/out/gpu/hwdec.c
parente2c02a4ce3af792251839307c42c85aa34bdd125 (diff)
downloadmpv-bb434a60ed801723c8e3becae019352935539e50.tar.bz2
mpv-bb434a60ed801723c8e3becae019352935539e50.tar.xz
hwdec: release images as soon as possible after mapping
We don't need to hold on to buffers longer than necessary. Doesn't matter for vo_gpu but greatly matters for vo_gpu_next, since it persists hwdec mapped textures for longer periods. Unfortunately, only provides benefits for hwdecs which do explicit copies in their decode path, which currently just means cuda and d3d11va.
Diffstat (limited to 'video/out/gpu/hwdec.c')
-rw-r--r--video/out/gpu/hwdec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/video/out/gpu/hwdec.c b/video/out/gpu/hwdec.c
index 4fb6240651..dd2809f41e 100644
--- a/video/out/gpu/hwdec.c
+++ b/video/out/gpu/hwdec.c
@@ -186,6 +186,8 @@ void ra_hwdec_mapper_unmap(struct ra_hwdec_mapper *mapper)
{
if (mapper->driver->unmap)
mapper->driver->unmap(mapper);
+
+ // Clean up after the image if the mapper didn't already
mp_image_unrefp(&mapper->src);
}