static gboolean gst_vaapi_window_egl_create (GstVaapiWindowEGL * window, guint * width, guint * height) { GstVaapiDisplayEGL *const display = GST_VAAPI_DISPLAY_EGL (GST_VAAPI_OBJECT_DISPLAY (window)); const GstVaapiDisplayClass *const native_dpy_class = GST_VAAPI_DISPLAY_GET_CLASS (display->display); CreateObjectsArgs args; g_return_val_if_fail (native_dpy_class != NULL, FALSE); window->window = native_dpy_class->create_window (GST_VAAPI_DISPLAY (display->display), GST_VAAPI_ID_INVALID, *width, *height); if (!window->window) return FALSE; gst_vaapi_window_get_size (window->window, width, height); args.window = window; args.width = *width; args.height = *height; args.egl_context = GST_VAAPI_DISPLAY_EGL_CONTEXT (display); return egl_context_run (args.egl_context, (EglContextRunFunc) do_create_objects, &args) && args.success; }
static void gst_vaapi_display_egl_flush (GstVaapiDisplay * base_display) { GstVaapiDisplayEGL *display = GST_VAAPI_DISPLAY_EGL (base_display); GstVaapiDisplayClass *const klass = GST_VAAPI_DISPLAY_GET_CLASS (display->display); if (klass->flush) klass->flush (display->display); }
static void gst_vaapi_display_egl_get_size_mm (GstVaapiDisplay * base_display, guint * width_ptr, guint * height_ptr) { GstVaapiDisplayEGL *display = GST_VAAPI_DISPLAY_EGL (base_display); GstVaapiDisplayClass *const klass = GST_VAAPI_DISPLAY_GET_CLASS (display->display); if (klass->get_size_mm) klass->get_size_mm (display->display, width_ptr, height_ptr); }
static gboolean gst_vaapi_display_egl_get_display_info (GstVaapiDisplay * base_display, GstVaapiDisplayInfo * info) { GstVaapiDisplayEGL *display = GST_VAAPI_DISPLAY_EGL (base_display); GstVaapiDisplayClass *const klass = GST_VAAPI_DISPLAY_GET_CLASS (display->display); if (klass->get_display && !klass->get_display (display->display, info)) return FALSE; return TRUE; }