From: Enlightenment S. <no-...@en...> - 2011-06-16 15:29:39
|
Log: emotion: temporary fix gstreamer uri to match other engine behaviour. Author: cedric Date: 2011-06-16 08:29:29 -0700 (Thu, 16 Jun 2011) New Revision: 60398 Trac: http://trac.enlightenment.org/e/changeset/60398 Modified: trunk/emotion/src/modules/gstreamer/emotion_gstreamer_pipeline.c Modified: trunk/emotion/src/modules/gstreamer/emotion_gstreamer_pipeline.c =================================================================== --- trunk/emotion/src/modules/gstreamer/emotion_gstreamer_pipeline.c 2011-06-16 15:14:17 UTC (rev 60397) +++ trunk/emotion/src/modules/gstreamer/emotion_gstreamer_pipeline.c 2011-06-16 15:29:29 UTC (rev 60398) @@ -1,3 +1,9 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#define _GNU_SOURCE + #include <unistd.h> #include <fcntl.h> @@ -109,22 +115,27 @@ } g_object_set(G_OBJECT(ev->pipeline), "audio-sink", sink, NULL); - if ((*file == '/') || (*file == '~')) + if (strstr(file, "://") == NULL) { - char *uri; + Eina_Strbuf *sbuf; - uri = g_filename_to_uri(file, NULL, NULL); - if (uri) - { - DBG("Setting file %s\n", uri); - g_object_set(G_OBJECT(ev->pipeline), "uri", uri, NULL); - free(uri); - } - else - { - ERR("could not create new uri from %s", file); - goto unref_pipeline; - } + sbuf = eina_strbuf_new(); + eina_strbuf_append(sbuf, "file://"); + if (*file != '.' && *file != '/') + { + char *tmp; + + tmp = get_current_dir_name(); + eina_strbuf_append(sbuf, tmp); + eina_strbuf_append(sbuf, "/"); + free(tmp); + } + eina_strbuf_append(sbuf, file); + + DBG("Setting file %s\n", eina_strbuf_string_get(sbuf)); + g_object_set(G_OBJECT(ev->pipeline), "uri", eina_strbuf_string_get(sbuf), NULL); + + eina_strbuf_free(sbuf); } else { |