From 247a6aab9abec56d94a894cc2b9e882a1af1d327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 16 Jun 2015 22:32:49 +0100 Subject: [PATCH] tools: gst-play: error out instead of crashing if there's no playbin element --- tools/gst-play.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/gst-play.c b/tools/gst-play.c index c9b6e73f5c..a6ea68b7ea 100644 --- a/tools/gst-play.c +++ b/tools/gst-play.c @@ -138,16 +138,20 @@ static GstPlay * play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink, gboolean gapless, gdouble initial_volume) { - GstElement *sink; + GstElement *sink, *playbin; GstPlay *play; + playbin = gst_element_factory_make ("playbin", "playbin"); + if (playbin == NULL) + return NULL; + play = g_new0 (GstPlay, 1); play->uris = uris; play->num_uris = g_strv_length (uris); play->cur_idx = -1; - play->playbin = gst_element_factory_make ("playbin", "playbin"); + play->playbin = playbin; if (audio_sink != NULL) { if (strchr (audio_sink, ' ') != NULL) @@ -1213,6 +1217,12 @@ main (int argc, char **argv) /* prepare */ play = play_new (uris, audio_sink, video_sink, gapless, volume); + if (play == NULL) { + g_printerr + ("Failed to create 'playbin' element. Check your GStreamer installation.\n"); + return EXIT_FAILURE; + } + if (interactive) { if (gst_play_kb_set_key_handler (keyboard_cb, play)) { g_print (_("Press 'k' to see a list of keyboard shortcuts.\n"));