summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReynaldo H. Verdejo Pinochet <reynaldo@collabora.com>2012-09-10 18:06:52 -0300
committerReynaldo H. Verdejo Pinochet <reynaldo@collabora.com>2012-09-10 18:06:52 -0300
commit88ef0de535d306fdcf998d1710945b30c86980a7 (patch)
tree336493cbde6308c8fd1947dc9a1d337c2e6f711f
parentff26c06ba2ffbfbfbc64d8d6bcd1a506d0bd0ea2 (diff)
Actually set and use can_create_window prop
-rw-r--r--sys/android/gstvidroidsink.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/android/gstvidroidsink.c b/sys/android/gstvidroidsink.c
index dc92a3ae8..0d0af6dbe 100644
--- a/sys/android/gstvidroidsink.c
+++ b/sys/android/gstvidroidsink.c
@@ -814,7 +814,13 @@ static EGLNativeWindowType
gst_vidroidsink_create_window (GstViDroidSink * vidroidsink, gint width,
gint height)
{
- EGLNativeWindowType window;
+ EGLNativeWindowType window = 0;
+
+ if (!vidroidsink->can_create_window) {
+ GST_ERROR_OBJECT (vidroidsink, "This sink can't create a window by itself");
+ return window;
+ } else
+ GST_INFO_OBJECT (vidroidsink, "Attempting internal window creation");
if (!width && !height) { /* Create a default size window */
width = vidroidsink->window_default_width;
@@ -1386,7 +1392,7 @@ gst_vidroidsink_setcaps (GstBaseSink * bsink, GstCaps * caps)
GST_VIDEO_SINK_HEIGHT (vidroidsink) = height;
if (!vidroidsink->have_window) {
- /* This is a no-go on Android but should work on x11/mesa */
+ /* Window creation for no x11/mesa hasn't been implemented yet */
GST_INFO_OBJECT (vidroidsink,
"No window. Will attempt internal window creation");
if (!(vidroidsink->window = gst_vidroidsink_create_window (vidroidsink,
@@ -1527,7 +1533,7 @@ gst_vidroidsink_class_init (GstViDroidSinkClass * klass)
FALSE, G_PARAM_READWRITE));
g_object_class_install_property (gobject_class, PROP_CAN_CREATE_WINDOW,
g_param_spec_boolean ("can_create_window", "CanCreateWindow",
- "Attempt to create a window?", FALSE, G_PARAM_READWRITE));
+ "Attempt to create a window?", TRUE, G_PARAM_READWRITE));
g_object_class_install_property (gobject_class, PROP_FORCE_RENDERING_SLOW,
g_param_spec_boolean ("force_rendering_slow", "ForceRenderingSlow",
"Force slow rendering path?", FALSE, G_PARAM_READWRITE));
@@ -1555,7 +1561,8 @@ gst_vidroidsink_init (GstViDroidSink * vidroidsink,
vidroidsink->have_vbo = FALSE;
vidroidsink->have_texture = FALSE;
vidroidsink->running = FALSE; /* XXX: unused */
- vidroidsink->rendering_path = GST_VIDROIDSINK_RENDER_SLOW; /* default */
+ vidroidsink->rendering_path = GST_VIDROIDSINK_RENDER_SLOW;
+ vidroidsink->can_create_window = TRUE;
}
/* Interface initializations. Used here for initializing the XOverlay