summaryrefslogtreecommitdiffstats
path: root/video/decode/vd_lavc.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-10-30 18:31:20 +0100
committerwm4 <wm4@nowhere>2017-10-30 18:31:20 +0100
commitb7ce3ac44575d82b5b23f10477b1158b84394b8f (patch)
tree612bae68b23a427a34fa5700fc309e819b3410bb /video/decode/vd_lavc.c
parent694157e024e52e6fcb01cfd2e9c6d50b85f9621f (diff)
downloadmpv-b7ce3ac44575d82b5b23f10477b1158b84394b8f.tar.bz2
mpv-b7ce3ac44575d82b5b23f10477b1158b84394b8f.tar.xz
vd_lavc: remove need for duplicated cuda GL interop backend
This is just a dumb consequence of HWDEC_ types somehow being part of both decoder and VO. Obviously, the VO should only care about supporting specific hardware surface types or providing specific device types, but until they are separated, stupid unintuitive mismatches will occur.
Diffstat (limited to 'video/decode/vd_lavc.c')
-rw-r--r--video/decode/vd_lavc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index ecc9e89962..6422346d31 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -160,6 +160,7 @@ static const struct vd_lavc_hwdec mp_vd_lavc_rkmpp = {
#if HAVE_CUDA_HWACCEL
static const struct vd_lavc_hwdec mp_vd_lavc_nvdec = {
.type = HWDEC_NVDEC,
+ .interop_type = HWDEC_CUDA,
.image_format = IMGFMT_CUDA,
.generic_hwaccel = true,
.set_hwframes = true,
@@ -369,8 +370,9 @@ static struct mp_hwdec_ctx *hwdec_create_dev(struct dec_video *vd,
if (hwdec->create_dev)
return hwdec->create_dev(vd->global, vd->log, autoprobe);
if (vd->hwdec_devs) {
- hwdec_devices_request(vd->hwdec_devs, hwdec->type);
- return hwdec_devices_get(vd->hwdec_devs, hwdec->type);
+ int type = hwdec->interop_type ? hwdec->interop_type : hwdec->type;
+ hwdec_devices_request(vd->hwdec_devs, type);
+ return hwdec_devices_get(vd->hwdec_devs, type);
}
return NULL;
}