diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc index ff8d875922..84794e4ee2 100644 --- a/ext/qt/gstqtglutility.cc +++ b/ext/qt/gstqtglutility.cc @@ -169,11 +169,7 @@ gst_qt_get_gl_wrapcontext (GstGLDisplay * display, } #endif #if GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_EGLFS) -#if GST_GL_HAVE_WINDOW_VIV_FB - if (GST_IS_GL_DISPLAY_VIV_FB (display)) { -#else if (GST_IS_GL_DISPLAY_EGL (display)) { -#endif platform = GST_GL_PLATFORM_EGL; } #endif diff --git a/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c b/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c index 48815e52fa..90202c78f2 100644 --- a/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c +++ b/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c @@ -29,75 +29,26 @@ GST_DEBUG_CATEGORY_STATIC (gst_gl_display_debug); #define GST_CAT_DEFAULT gst_gl_display_debug -G_DEFINE_TYPE (GstGLDisplayVivFB, gst_gl_display_viv_fb, GST_TYPE_GL_DISPLAY); - -static void gst_gl_display_viv_fb_finalize (GObject * object); -static guintptr gst_gl_display_viv_fb_get_handle (GstGLDisplay * display); - -static void -gst_gl_display_viv_fb_class_init (GstGLDisplayVivFBClass * klass) -{ - GST_GL_DISPLAY_CLASS (klass)->get_handle = - GST_DEBUG_FUNCPTR (gst_gl_display_viv_fb_get_handle); - - G_OBJECT_CLASS (klass)->finalize = gst_gl_display_viv_fb_finalize; -} - -static void -gst_gl_display_viv_fb_init (GstGLDisplayVivFB * display_viv_fb) -{ - GstGLDisplay *display = (GstGLDisplay *) display_viv_fb; - - display->type = GST_GL_DISPLAY_TYPE_VIV_FB; - - display_viv_fb->disp_idx = 0; - display_viv_fb->display = NULL; -} - -static void -gst_gl_display_viv_fb_finalize (GObject * object) -{ - GstGLDisplayVivFB *display_viv_fb = GST_GL_DISPLAY_VIV_FB (object); - - if (display_viv_fb->display) - fbDestroyDisplay (display_viv_fb->display); - - G_OBJECT_CLASS (gst_gl_display_viv_fb_parent_class)->finalize (object); -} - /** * gst_gl_display_viv_fb_new: * @disp_idx: a display index * - * Create a new #GstGLDisplayVivFB from the FB display index. + * Create a new #GstGLDisplay from the FB display index. * * Returns: (transfer full): a new #GstGLDisplayVivFB or %NULL */ -GstGLDisplayVivFB * +GstGLDisplayEGL * gst_gl_display_viv_fb_new (gint disp_idx) { - GstGLDisplayVivFB *display; + EGLDisplay display; GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay"); GST_DEBUG ("creating Vivante FB EGL display %d", disp_idx); - display = g_object_new (GST_TYPE_GL_DISPLAY_VIV_FB, NULL); - gst_object_ref_sink (display); - display->disp_idx = disp_idx; - display->display = fbGetDisplayByIndex (display->disp_idx); - if (!display->display) { - GST_ERROR ("Failed to open Vivante FB display %d", disp_idx); - return NULL; - } - + display = fbGetDisplayByIndex (disp_idx); GST_DEBUG ("Created Vivante FB EGL display %p", (gpointer) display->display); - - return display; -} - -static guintptr -gst_gl_display_viv_fb_get_handle (GstGLDisplay * display) -{ - return (guintptr) GST_GL_DISPLAY_VIV_FB (display)->display; + return + gst_gl_display_egl_new_with_egl_display (eglGetDisplay ( + (EGLNativeDisplayType) display)); } diff --git a/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.h b/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.h index 9ce1dce849..6d19c37788 100644 --- a/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.h +++ b/gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.h @@ -23,44 +23,12 @@ #define __GST_GL_DISPLAY_VIV_FB_H__ #include -#include +#include #include G_BEGIN_DECLS -GType gst_gl_display_viv_fb_get_type (void); - -#define GST_TYPE_GL_DISPLAY_VIV_FB (gst_gl_display_viv_fb_get_type()) -#define GST_GL_DISPLAY_VIV_FB(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_DISPLAY_VIV_FB,GstGLDisplayVivFB)) -#define GST_GL_DISPLAY_VIV_FB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_GL_DISPLAY_VIV_FB,GstGLDisplayVivFBClass)) -#define GST_IS_GL_DISPLAY_VIV_FB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GL_DISPLAY_VIV_FB)) -#define GST_IS_GL_DISPLAY_VIV_FB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_GL_DISPLAY_VIV_FB)) -#define GST_GL_DISPLAY_VIV_FB_CAST(obj) ((GstGLDisplayVivFB*)(obj)) - -typedef struct _GstGLDisplayVivFB GstGLDisplayVivFB; -typedef struct _GstGLDisplayVivFBClass GstGLDisplayVivFBClass; - -/** - * GstGLDisplayVivFB: - * - * the contents of a #GstGLDisplayVivFB are private and should only be accessed - * through the provided API - */ -struct _GstGLDisplayVivFB -{ - GstGLDisplay parent; - - /* */ - gint disp_idx; - EGLNativeDisplayType display; -}; - -struct _GstGLDisplayVivFBClass -{ - GstGLDisplayClass object_class; -}; - -GstGLDisplayVivFB *gst_gl_display_viv_fb_new (gint disp_idx); +GstGLDisplayEGL *gst_gl_display_viv_fb_new (gint disp_idx); G_END_DECLS diff --git a/gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c b/gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c index 8515dc8ec7..e6a62508b3 100644 --- a/gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c +++ b/gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c @@ -75,11 +75,6 @@ gst_gl_window_viv_fb_egl_new (GstGLDisplay * display) { GstGLWindowVivFBEGL *window; - if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_VIV_FB) == - 0) - /* we require a Vivante FB display to create windows */ - return NULL; - window = g_object_new (GST_TYPE_GL_WINDOW_VIV_FB_EGL, NULL); gst_object_ref_sink (window);