summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-03-14 23:29:47 +0100
committerwm4 <wm4@nowhere>2017-03-14 23:29:47 +0100
commit4e384c8e69422acf593fc7b2a0c1d512c3e5966e (patch)
tree1f7964f08e96b8e117072f319f3b3740c0d87a71
parent94e82bcdb82dfedbb01978a68204c7ecd24d6b6c (diff)
downloadmpv-4e384c8e69422acf593fc7b2a0c1d512c3e5966e.tar.bz2
mpv-4e384c8e69422acf593fc7b2a0c1d512c3e5966e.tar.xz
vdpau: warn on HEVC due to completely broken nVidia drivers
I guess that's the full extent I still care about nVidia's broken garbage. In theory, we could always force the video mixer (which is the only method getting the video data that works), but why bother.
-rw-r--r--video/decode/hw_vdpau.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/video/decode/hw_vdpau.c b/video/decode/hw_vdpau.c
index 6047ef1360..e47893f19a 100644
--- a/video/decode/hw_vdpau.c
+++ b/video/decode/hw_vdpau.c
@@ -51,10 +51,13 @@ static int init_decoder(struct lavc_ctx *ctx, int w, int h)
if (mp_vdpau_handle_preemption(p->mpvdp, &p->preemption_counter) < 0)
return 0;
- return av_vdpau_bind_context(ctx->avctx, p->mpvdp->vdp_device,
- p->mpvdp->get_proc_address,
- AV_HWACCEL_FLAG_IGNORE_LEVEL |
- AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH);
+ int r = av_vdpau_bind_context(ctx->avctx, p->mpvdp->vdp_device,
+ p->mpvdp->get_proc_address,
+ AV_HWACCEL_FLAG_IGNORE_LEVEL |
+ AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH);
+ if (r >= 0 && ctx->avctx->codec_id == AV_CODEC_ID_HEVC)
+ MP_WARN(ctx, "HEVC video output may be broken due to nVidia bugs.\n");
+ return r;
}
static void uninit(struct lavc_ctx *ctx)