tests: image: try to upload images through vaDeriveImage() too.

On some platforms, vaPutImage() would fail even if it does not involve
color format conversion or scaling, whereas copying raw pixels through
vaDeriveImage() could work instead.
This commit is contained in:
Gwenole Beauchesne 2013-07-26 13:12:28 +02:00
parent f997f6271f
commit 73323ba76a

View file

@ -363,7 +363,9 @@ image_upload(GstVaapiImage *image, GstVaapiSurface *surface)
{
GstVaapiDisplay *display;
GstVideoFormat format;
GstVaapiImage *surface_image;
GstVaapiSubpicture *subpicture;
gboolean success;
display = gst_vaapi_object_get_display(GST_VAAPI_OBJECT(surface));
if (!display)
@ -376,6 +378,14 @@ image_upload(GstVaapiImage *image, GstVaapiSurface *surface)
if (gst_vaapi_surface_put_image(surface, image))
return TRUE;
surface_image = gst_vaapi_surface_derive_image(surface);
if (surface_image) {
success = gst_vaapi_image_copy(surface_image, image);
gst_vaapi_object_unref(surface_image);
if (success)
return TRUE;
}
g_print("could not upload %s image to surface\n",
gst_vaapi_video_format_to_string(format));