From ffe9c0350259efa81bc5500226c65315cd8b936d Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 4 Nov 2014 22:26:31 +0100 Subject: video: get hwaccel flag from pixdesc --- video/img_format.c | 6 +++++- video/img_format.h | 7 +++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/video/img_format.c b/video/img_format.c index e838b5ca55..2f45787c5a 100644 --- a/video/img_format.c +++ b/video/img_format.c @@ -121,7 +121,8 @@ static struct mp_imgfmt_desc mp_only_imgfmt_desc(int mpfmt) return (struct mp_imgfmt_desc) { .id = mpfmt, .avformat = AV_PIX_FMT_NONE, - .flags = MP_IMGFLAG_BE | MP_IMGFLAG_LE | MP_IMGFLAG_RGB, + .flags = MP_IMGFLAG_BE | MP_IMGFLAG_LE | MP_IMGFLAG_RGB | + MP_IMGFLAG_HWACCEL, }; } return (struct mp_imgfmt_desc) {0}; @@ -224,6 +225,9 @@ struct mp_imgfmt_desc mp_imgfmt_get_desc(int mpfmt) if ((desc.bpp[0] % 8) != 0) desc.align_x = 8 / desc.bpp[0]; // expect power of 2 + if (pd->flags & AV_PIX_FMT_FLAG_HWACCEL) + desc.flags |= MP_IMGFLAG_HWACCEL; + return desc; } diff --git a/video/img_format.h b/video/img_format.h index 1db317b5dd..1645bd3ab9 100644 --- a/video/img_format.h +++ b/video/img_format.h @@ -64,6 +64,8 @@ // The only real paletted format we support is IMGFMT_PAL8, so check for that // format directly if you want an actual paletted format. #define MP_IMGFLAG_PAL 0x8000 +// planes don't contain real data; planes[3] contains an API-specific pointer +#define MP_IMGFLAG_HWACCEL 0x10000 // Exactly one of these bits is set in mp_imgfmt_desc.flags #define MP_IMGFLAG_COLOR_CLASS_MASK \ @@ -330,10 +332,7 @@ static inline bool IMGFMT_IS_RGB(int fmt) } #define IMGFMT_RGB_DEPTH(fmt) (mp_imgfmt_get_desc(fmt).plane_bits) - -#define IMGFMT_IS_HWACCEL(fmt) \ - ((fmt) == IMGFMT_VDPAU || (fmt) == IMGFMT_VDPAU_OUTPUT || \ - (fmt) == IMGFMT_VAAPI || (fmt) == IMGFMT_VDA || (fmt) == IMGFMT_DXVA2) +#define IMGFMT_IS_HWACCEL(fmt) (mp_imgfmt_get_desc(fmt).flags & MP_IMGFLAG_HWACCEL) int mp_imgfmt_from_name(bstr name, bool allow_hwaccel); char *mp_imgfmt_to_name_buf(char *buf, size_t buf_size, int fmt); -- cgit v1.2.3