summaryrefslogtreecommitdiff
path: root/tests/examples/overlay/gtk-xoverlay.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examples/overlay/gtk-xoverlay.c')
-rw-r--r--tests/examples/overlay/gtk-xoverlay.c45
1 files changed, 25 insertions, 20 deletions
diff --git a/tests/examples/overlay/gtk-xoverlay.c b/tests/examples/overlay/gtk-xoverlay.c
index 2bde191b..9a08c95f 100644
--- a/tests/examples/overlay/gtk-xoverlay.c
+++ b/tests/examples/overlay/gtk-xoverlay.c
@@ -42,44 +42,49 @@ window_closed (GtkWidget * widget, GdkEvent * event, gpointer user_data)
gtk_main_quit ();
}
-/* slightly convoluted way to find a working video sink that's not a bin */
+/* slightly convoluted way to find a working video sink that's not a bin,
+ * one could use autovideosink from gst-plugins-good instead
+ */
static GstElement *
find_video_sink (void)
{
GstStateChangeReturn sret;
GstElement *sink;
- sink = gst_element_factory_make ("xvimagesink", NULL);
- sret = gst_element_set_state (sink, GST_STATE_READY);
- if (sret == GST_STATE_CHANGE_SUCCESS)
- return sink;
+ if ((sink = gst_element_factory_make ("xvimagesink", NULL))) {
+ sret = gst_element_set_state (sink, GST_STATE_READY);
+ if (sret == GST_STATE_CHANGE_SUCCESS)
+ return sink;
- gst_element_set_state (sink, GST_STATE_NULL);
+ gst_element_set_state (sink, GST_STATE_NULL);
+ }
gst_object_unref (sink);
- sink = gst_element_factory_make ("ximagesink", NULL);
- sret = gst_element_set_state (sink, GST_STATE_READY);
- if (sret == GST_STATE_CHANGE_SUCCESS)
- return sink;
+ if ((sink = gst_element_factory_make ("ximagesink", NULL))) {
+ sret = gst_element_set_state (sink, GST_STATE_READY);
+ if (sret == GST_STATE_CHANGE_SUCCESS)
+ return sink;
- gst_element_set_state (sink, GST_STATE_NULL);
+ gst_element_set_state (sink, GST_STATE_NULL);
+ }
gst_object_unref (sink);
if (strcmp (DEFAULT_VIDEOSINK, "xvimagesink") == 0 ||
strcmp (DEFAULT_VIDEOSINK, "ximagesink") == 0)
return NULL;
- sink = gst_element_factory_make (DEFAULT_VIDEOSINK, NULL);
- if (GST_IS_BIN (sink)) {
- gst_object_unref (sink);
- return NULL;
- }
+ if ((sink = gst_element_factory_make (DEFAULT_VIDEOSINK, NULL))) {
+ if (GST_IS_BIN (sink)) {
+ gst_object_unref (sink);
+ return NULL;
+ }
- sret = gst_element_set_state (sink, GST_STATE_READY);
- if (sret == GST_STATE_CHANGE_SUCCESS)
- return sink;
+ sret = gst_element_set_state (sink, GST_STATE_READY);
+ if (sret == GST_STATE_CHANGE_SUCCESS)
+ return sink;
- gst_element_set_state (sink, GST_STATE_NULL);
+ gst_element_set_state (sink, GST_STATE_NULL);
+ }
gst_object_unref (sink);
return NULL;
}