if (sc)
{
std::list<std::string> extensions;
+ extensions.push_back("mp2");
extensions.push_back("mp3");
extensions.push_back("ogg");
extensions.push_back("mpg");
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;
}
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
queue_audio = gst_element_factory_make("queue", "queue_audio");
queue_video = gst_element_factory_make("queue", "queue_video");
- char demux_type[14];
+ std::string demux_type;
switch (sourceinfo.containertype)
{
case ctMPEGTS:
- strcat(demux_type, "flutsdemux");
+ demux_type = "flutsdemux";
break;
case ctMPEGPS:
case ctVCD:
- strcat(demux_type, "flupsdemux");
+ demux_type = "flupsdemux";
break;
case ctMKV:
- strcat(demux_type, "matroskademux");
+ demux_type = "matroskademux";
break;
case ctAVI:
- strcat(demux_type, "avidemux");
+ demux_type = "avidemux";
break;
case ctMP4:
- strcat(demux_type, "qtdemux");
+ demux_type = "qtdemux";
break;
default:
break;
}
- videodemux = gst_element_factory_make(demux_type, "videodemux");
+ videodemux = gst_element_factory_make(demux_type.c_str(), "videodemux");
if (!videodemux)
- m_error_message = "GStreamer plugin " + (std::string)demux_type + " not available!\n";
+ m_error_message = "GStreamer plugin " + demux_type + " not available!\n";
switch_audio = gst_element_factory_make ("input-selector", "switch_audio");
if (!switch_audio)