summaryrefslogtreecommitdiffstats
path: root/video/vaapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/vaapi.c')
-rw-r--r--video/vaapi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/video/vaapi.c b/video/vaapi.c
index b18b9135cd..b7c6013e79 100644
--- a/video/vaapi.c
+++ b/video/vaapi.c
@@ -453,16 +453,19 @@ bool va_image_unmap(VADisplay display, VAImage *image)
return check_va_status(status, "vaUnmapBuffer()");
}
-bool va_surface_upload(struct va_surface *surface, const struct mp_image *mpi)
+bool va_surface_upload(struct va_surface *surface, struct mp_image *mpi)
{
va_surface_priv_t *p = surface->p;
if (p->image.image_id == VA_INVALID_ID)
return false;
+ if (va_fourcc_to_imgfmt(p->image.format.fourcc) != mpi->imgfmt)
+ return false;
+
struct mp_image img;
if (!va_image_map(p->display, &p->image, &img))
return false;
- mp_image_copy(&img, (struct mp_image*)mpi);
+ mp_image_copy(&img, mpi);
va_image_unmap(p->display, &p->image);
if (!p->is_derived) {