examples/overlay: handle the case when xvimagesink is not found

So that ximagesink can have a chance to be found.
In qtgv-videooverlay.
This commit is contained in:
Julien Isorce 2013-10-10 14:09:19 +01:00
parent e0dfbe9dfa
commit 973d1dcf39

View file

@ -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;
}
}
}