gl_hwdec: use a imgfmt field instead of a query_format callback

Now that vdpau always uses a single image format, this can be
simplified.
This commit is contained in:
wm4 2013-11-29 14:19:51 +01:00
parent 2a316c3506
commit 9edc2dbcf3
4 changed files with 5 additions and 15 deletions

View File

@ -182,8 +182,8 @@ struct gl_hwdec {
struct gl_hwdec_driver {
// Same name as used by mp_hwdec_info->load_api()
const char *api_name;
// Test whether the given IMGFMT_ is supported.
bool (*query_format)(int imgfmt);
// The hardware surface IMGFMT_ that must be passed to map_image later.
int imgfmt;
// Create the hwdec device. It must fill in hw->info, if applicable.
// This also must set hw->converted_imgfmt.
int (*create)(struct gl_hwdec *hw);

View File

@ -35,11 +35,6 @@ struct priv {
void *vaglx_surface;
};
static bool query_format(int imgfmt)
{
return imgfmt == IMGFMT_VAAPI;
}
static void destroy_texture(struct gl_hwdec *hw)
{
struct priv *p = hw->priv;
@ -131,7 +126,7 @@ static void unmap_image(struct gl_hwdec *hw)
const struct gl_hwdec_driver gl_hwdec_vaglx = {
.api_name = "vaapi",
.query_format = query_format,
.imgfmt = IMGFMT_VAAPI,
.create = create,
.reinit = reinit,
.map_image = map_image,

View File

@ -40,11 +40,6 @@ struct priv {
VdpVideoMixer video_mixer;
};
static bool query_format(int imgfmt)
{
return imgfmt == IMGFMT_VDPAU;
}
static void mark_vdpau_objects_uninitialized(struct gl_hwdec *hw)
{
struct priv *p = hw->priv;
@ -253,7 +248,7 @@ static void unmap_image(struct gl_hwdec *hw)
const struct gl_hwdec_driver gl_hwdec_vdpau = {
.api_name = "vdpau",
.query_format = query_format,
.imgfmt = IMGFMT_VDPAU,
.create = create,
.reinit = reinit,
.map_image = map_image,

View File

@ -1948,7 +1948,7 @@ static bool init_format(int fmt, struct gl_video *init)
init = &dummy;
init->hwdec_active = false;
if (init->hwdec && init->hwdec->driver->query_format(fmt)) {
if (init->hwdec && init->hwdec->driver->imgfmt == fmt) {
fmt = init->hwdec->converted_imgfmt;
init->hwdec_active = true;
}