uridecodebin: Fix template construction
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 10 Jul 2009 19:24:14 +0000 (20:24 +0100)
committerWim Taymans <wim@metal.(none)>
Fri, 10 Jul 2009 19:26:22 +0000 (20:26 +0100)
Fix the construction of the temporary filename construction as the application
name can be NULL and we don't want a separator between the prgname and the
template.

gst/playback/gsturidecodebin.c

index 47251bc..f375155 100644 (file)
@@ -1247,16 +1247,26 @@ type_found (GstElement * typefind, guint probability,
       decoder->download);
 
   if (IS_DOWNLOAD_MEDIA (media_type) && decoder->download) {
-    gchar *temp_template;
+    gchar *temp_template, *filename;
+    const gchar *tmp_dir, *prgname;
+
+    tmp_dir = g_get_tmp_dir ();
+    prgname = g_get_prgname ();
+    if (prgname == NULL)
+      prgname = "GStreamer";
+
+    filename = g_strdup_printf ("%s-XXXXXX", prgname);
 
     /* build our filename */
-    temp_template =
-        g_build_filename (g_get_tmp_dir (), g_get_prgname (), "-XXXXXX", NULL);
+    temp_template = g_build_filename (tmp_dir, filename, NULL);
+
+    GST_DEBUG_OBJECT (decoder, "enable download buffering in %s (%s, %s, %s)",
+        temp_template, tmp_dir, prgname, filename);
 
-    GST_DEBUG_OBJECT (decoder, "enable download buffering in %s",
-        temp_template);
     /* configure progressive download for selected media types */
     g_object_set (G_OBJECT (queue), "temp-template", temp_template, NULL);
+
+    g_free (filename);
     g_free (temp_template);
   }