mirror of
https://github.com/mpv-player/mpv
synced 2025-01-01 20:32:13 +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:
parent
09238a9bb5
commit
a89785f297
@ -146,12 +146,14 @@ static int probe_copy(struct lavc_ctx *ctx, struct vd_lavc_hwdec *hwdec,
|
|||||||
const char *codec)
|
const char *codec)
|
||||||
{
|
{
|
||||||
assert(!ctx->hwdec_priv);
|
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)
|
static struct mp_image *copy_image(struct lavc_ctx *ctx, struct mp_image *img)
|
||||||
|
Loading…
Reference in New Issue
Block a user