aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/Components/Playlist.py2
-rw-r--r--lib/service/servicemp3.cpp35
2 files changed, 21 insertions, 16 deletions
diff --git a/lib/python/Components/Playlist.py b/lib/python/Components/Playlist.py
index 22799692..744ee3af 100644
--- a/lib/python/Components/Playlist.py
+++ b/lib/python/Components/Playlist.py
@@ -70,6 +70,8 @@ class PlaylistIOM3U(PlaylistIO):
# TODO: use e2 facilities to create a service ref from file
if entry[0] == "/":
self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry))
+ elif entry.startswith("http"):
+ self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry.replace(':',"%3a")))
else:
self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + os.path.dirname(filename) + "/" + entry))
file.close()
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index c76e346e..19b7735b 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -227,11 +227,29 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
if (!m_gst_pipeline)
m_error_message = "failed to create GStreamer pipeline!\n";
- if ( sourceinfo.containertype == ctCDA )
+ if ( sourceinfo.is_streaming )
+ {
+ eDebug("play webradio!");
+ source = gst_element_factory_make ("neonhttpsrc", "http-source");
+ if (source)
+ {
+ g_object_set (G_OBJECT (source), "location", filename, NULL);
+ g_object_set (G_OBJECT (source), "automatic-redirect", TRUE, NULL);
+ }
+ else
+ m_error_message = "GStreamer plugin neonhttpsrc not available!\n";
+ }
+ else if ( sourceinfo.containertype == ctCDA )
{
source = gst_element_factory_make ("cdiocddasrc", "cda-source");
if (source)
+ {
g_object_set (G_OBJECT (source), "device", "/dev/cdroms/cdrom0", NULL);
+ int track = atoi(filename+18);
+ eDebug("play audio CD track #%i",track);
+ if (track > 0)
+ g_object_set (G_OBJECT (source), "track", track, NULL);
+ }
else
sourceinfo.containertype = ctNone;
}
@@ -243,21 +261,6 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
else
m_error_message = "GStreamer can't open filesrc " + (std::string)filename + "!\n";
}
- else if ( sourceinfo.is_streaming )
- {
- source = gst_element_factory_make ("neonhttpsrc", "http-source");
- if (source)
- g_object_set (G_OBJECT (source), "automatic-redirect", TRUE, NULL);
- else
- m_error_message = "GStreamer plugin neonhttpsrc not available!\n";
- }
- else
- {
- int track = atoi(filename+18);
- eDebug("play audio CD track #%i",track);
- if (track > 0)
- g_object_set (G_OBJECT (source), "track", track, NULL);
- }
if ( sourceinfo.is_video )
{
/* filesrc -> mpegdemux -> | queue_audio -> dvbaudiosink