mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +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_buffer *buffer;
|
||||
struct wl_callback *callback;
|
||||
guint width, height;
|
||||
guint width, height, va_flags;
|
||||
VASurfaceID surface_id;
|
||||
VAStatus status;
|
||||
|
||||
|
@ -224,11 +224,23 @@ gst_vaapi_window_wayland_render(
|
|||
if (priv->redraw_pending)
|
||||
wl_display_iterate(wl_display, WL_DISPLAY_READABLE);
|
||||
|
||||
/* XXX: use VA/VPP for other filters */
|
||||
va_flags = from_GstVaapiSurfaceRenderFlags(flags);
|
||||
status = vaGetSurfaceBufferWl(
|
||||
GST_VAAPI_DISPLAY_VADISPLAY(display),
|
||||
surface_id,
|
||||
va_flags & (VA_TOP_FIELD|VA_BOTTOM_FIELD),
|
||||
&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()"))
|
||||
return FALSE;
|
||||
|
||||
|
|
Loading…
Reference in a new issue