From 74581a61064f56b170e555fa72d9cdca161d2307 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 22 Jan 2015 17:47:14 +0100 Subject: video: handle hwdec screenshots differently Instead of converting the hw surface to an image in the VO, provide a generic way to convet hw surfaces, and use this in the screenshot code. It's all relatively straightforward, except vdpau is being terrible. It needs a huge chunk of new code, because copying back is not simple. --- video/out/vo_vaapi.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'video/out/vo_vaapi.c') diff --git a/video/out/vo_vaapi.c b/video/out/vo_vaapi.c index cf07787a48..06c7b3c9f4 100644 --- a/video/out/vo_vaapi.c +++ b/video/out/vo_vaapi.c @@ -303,14 +303,7 @@ static struct mp_image *get_screenshot(struct priv *p) struct mp_image *hwimg = p->output_surfaces[p->visible_surface]; if (!hwimg) return NULL; - struct mp_image *img = va_surface_download(hwimg, NULL); - if (!img) - return NULL; - struct mp_image_params params = p->image_params; - params.imgfmt = img->imgfmt; - mp_image_params_guess_csp(¶ms); // ensure colorspace consistency - mp_image_set_params(img, ¶ms); - return img; + return mp_image_new_ref(hwimg); } static void free_subpicture(struct priv *p, struct vaapi_osd_image *img) -- cgit v1.2.3