diff options
author | wm4 <wm4@nowhere> | 2017-03-14 23:29:47 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2017-03-14 23:29:47 +0100 |
commit | 4e384c8e69422acf593fc7b2a0c1d512c3e5966e (patch) | |
tree | 1f7964f08e96b8e117072f319f3b3740c0d87a71 | |
parent | 94e82bcdb82dfedbb01978a68204c7ecd24d6b6c (diff) | |
download | mpv-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.c | 11 |
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) |