From 973d1dcf39308a01f79b9bafe6bfa288523a1f0b Mon Sep 17 00:00:00 2001 From: Julien Isorce Date: Thu, 10 Oct 2013 14:09:19 +0100 Subject: [PATCH] examples/overlay: handle the case when xvimagesink is not found So that ximagesink can have a chance to be found. In qtgv-videooverlay. --- tests/examples/overlay/qtgv-videooverlay.cpp | 35 +++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/tests/examples/overlay/qtgv-videooverlay.cpp b/tests/examples/overlay/qtgv-videooverlay.cpp index ba60e3733..d36bab665 100644 --- a/tests/examples/overlay/qtgv-videooverlay.cpp +++ b/tests/examples/overlay/qtgv-videooverlay.cpp @@ -42,31 +42,26 @@ SinkPipeline::SinkPipeline(QGraphicsView *parent) : QObject(parent) if (sret != GST_STATE_CHANGE_SUCCESS) { gst_element_set_state (sink, GST_STATE_NULL); gst_object_unref (sink); - - if ((sink = gst_element_factory_make ("ximagesink", NULL))) { + } + } else if ((sink = gst_element_factory_make ("ximagesink", NULL))) { + sret = gst_element_set_state (sink, GST_STATE_READY); + if (sret != GST_STATE_CHANGE_SUCCESS) { + gst_element_set_state (sink, GST_STATE_NULL); + gst_object_unref (sink); + } + } else if (strcmp (DEFAULT_VIDEOSINK, "xvimagesink") != 0 && + strcmp (DEFAULT_VIDEOSINK, "ximagesink") != 0) { + if ((sink = gst_element_factory_make (DEFAULT_VIDEOSINK, NULL))) { + if (!GST_IS_BIN (sink)) { sret = gst_element_set_state (sink, GST_STATE_READY); if (sret != GST_STATE_CHANGE_SUCCESS) { gst_element_set_state (sink, GST_STATE_NULL); gst_object_unref (sink); - - if (strcmp (DEFAULT_VIDEOSINK, "xvimagesink") != 0 && - strcmp (DEFAULT_VIDEOSINK, "ximagesink") != 0) { - - if ((sink = gst_element_factory_make (DEFAULT_VIDEOSINK, NULL))) { - if (!GST_IS_BIN (sink)) { - sret = gst_element_set_state (sink, GST_STATE_READY); - if (sret != GST_STATE_CHANGE_SUCCESS) { - gst_element_set_state (sink, GST_STATE_NULL); - gst_object_unref (sink); - sink = NULL; - } - } else { - gst_object_unref (sink); - sink = NULL; - } - } - } + sink = NULL; } + } else { + gst_object_unref (sink); + sink = NULL; } } } -- 2.34.1