1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-20 22:02:59 +00:00

vdpau: fix vaapi probing if libvdpau-va-gl1 is present

Needs explicit logic. Fixes a pretty bad regression which prefers
vdpau-copy over native vaapi with direct rendering (with --hwdec=auto)
if libvdpau-va-gl1 is present. The reason is that vdpau-copy is above
vaapi, simply because all vdpau hwdecs are grouped and happened to be
listed before vaapi.

Although this is not that bad for copy-mode (unlike the case described
above), it's still a good idea to use our native vaapi code instead.
This commit is contained in:
wm4 2016-12-02 16:06:16 +01:00
parent 09238a9bb5
commit a89785f297

View File

@ -146,12 +146,14 @@ static int probe_copy(struct lavc_ctx *ctx, struct vd_lavc_hwdec *hwdec,
const char *codec)
{
assert(!ctx->hwdec_priv);
int r = init_copy(ctx);
if (ctx->hwdec_priv)
uninit(ctx);
ctx->hwdec_priv = NULL;
return r < 0 ? HWDEC_ERR_NO_CTX : 0;
int r = HWDEC_ERR_NO_CTX;
if (init_copy(ctx) >=0 ) {
struct priv *p = ctx->hwdec_priv;
r = mp_vdpau_guess_if_emulated(p->mpvdp) ? HWDEC_ERR_EMULATED : 0;
uninit(ctx);
}
return r;
}
static struct mp_image *copy_image(struct lavc_ctx *ctx, struct mp_image *img)