mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
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:
parent
f997f6271f
commit
73323ba76a
1 changed files with 10 additions and 0 deletions
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in a new issue