forked from AuroraMiddleware/gtk
media: Only force GL if we're using a GL renderer
When we are not using a GL renderer, getting GL textures is no advantage to us, so don't make gstreamer send its frames as GL memory in this case.
This commit is contained in:
parent
53fe751371
commit
536a67ec96
@ -20,10 +20,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include "gtkgstpaintableprivate.h"
|
||||
|
||||
#include "gtkgstsinkprivate.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <gst/player/gstplayer-video-renderer.h>
|
||||
#include <gsk/gl/gskglrenderer.h>
|
||||
|
||||
#include <math.h>
|
||||
|
||||
@ -122,6 +123,9 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
|
||||
"gl-context", self->context,
|
||||
NULL);
|
||||
|
||||
if (self->context == NULL)
|
||||
return sink;
|
||||
|
||||
glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
|
||||
|
||||
g_object_set (glsinkbin, "sink", sink, NULL);
|
||||
@ -175,10 +179,20 @@ gtk_gst_paintable_realize (GtkGstPaintable *self,
|
||||
GdkSurface *surface)
|
||||
{
|
||||
GError *error = NULL;
|
||||
GtkNative *native;
|
||||
GskRenderer *renderer;
|
||||
|
||||
if (self->context)
|
||||
return;
|
||||
|
||||
native = gtk_native_get_for_surface (surface);
|
||||
renderer = gtk_native_get_renderer (native);
|
||||
if (!GSK_IS_GL_RENDERER (renderer))
|
||||
{
|
||||
GST_INFO ("not using GL with a %s renderer\n", G_OBJECT_TYPE_NAME (renderer));
|
||||
return;
|
||||
}
|
||||
|
||||
self->context = gdk_surface_create_gl_context (surface, &error);
|
||||
if (self->context == NULL)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user