mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-11 06:11:27 +00:00
wayland: handle de-interlacing flags.
VA/Wayland API was updated to allow flags for bob deinterlacing. More elaborated filters will require a complete VA/VPP pipeline.
This commit is contained in:
parent
0b3d75f14b
commit
a10ee527c7
1 changed files with 13 additions and 1 deletions
|
@ -195,7 +195,7 @@ gst_vaapi_window_wayland_render(
|
||||||
struct wl_display * const wl_display = GST_VAAPI_OBJECT_WL_DISPLAY(window);
|
struct wl_display * const wl_display = GST_VAAPI_OBJECT_WL_DISPLAY(window);
|
||||||
struct wl_buffer *buffer;
|
struct wl_buffer *buffer;
|
||||||
struct wl_callback *callback;
|
struct wl_callback *callback;
|
||||||
guint width, height;
|
guint width, height, va_flags;
|
||||||
VASurfaceID surface_id;
|
VASurfaceID surface_id;
|
||||||
VAStatus status;
|
VAStatus status;
|
||||||
|
|
||||||
|
@ -224,11 +224,23 @@ gst_vaapi_window_wayland_render(
|
||||||
if (priv->redraw_pending)
|
if (priv->redraw_pending)
|
||||||
wl_display_iterate(wl_display, WL_DISPLAY_READABLE);
|
wl_display_iterate(wl_display, WL_DISPLAY_READABLE);
|
||||||
|
|
||||||
|
/* XXX: use VA/VPP for other filters */
|
||||||
|
va_flags = from_GstVaapiSurfaceRenderFlags(flags);
|
||||||
status = vaGetSurfaceBufferWl(
|
status = vaGetSurfaceBufferWl(
|
||||||
GST_VAAPI_DISPLAY_VADISPLAY(display),
|
GST_VAAPI_DISPLAY_VADISPLAY(display),
|
||||||
surface_id,
|
surface_id,
|
||||||
|
va_flags & (VA_TOP_FIELD|VA_BOTTOM_FIELD),
|
||||||
&buffer
|
&buffer
|
||||||
);
|
);
|
||||||
|
if (status == VA_STATUS_ERROR_FLAG_NOT_SUPPORTED) {
|
||||||
|
/* XXX: de-interlacing flags not supported, try with VPP? */
|
||||||
|
status = vaGetSurfaceBufferWl(
|
||||||
|
GST_VAAPI_DISPLAY_VADISPLAY(display),
|
||||||
|
surface_id,
|
||||||
|
VA_FRAME_PICTURE,
|
||||||
|
&buffer
|
||||||
|
);
|
||||||
|
}
|
||||||
if (!vaapi_check_status(status, "vaGetSurfaceBufferWl()"))
|
if (!vaapi_check_status(status, "vaGetSurfaceBufferWl()"))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue