limit gstreamer queue memory size
[enigma2.git] / lib / service / servicemp3.cpp
index a38ad4155915d7500e7d2624d8c526367bcb2225..14fef54c3de44413147174def149de8278aab3fc 100644 (file)
@@ -20,7 +20,16 @@ eServiceFactoryMP3::eServiceFactoryMP3()
        
        eServiceCenter::getPrivInstance(sc);
        if (sc)
-               sc->addServiceFactory(eServiceFactoryMP3::id, this);
+       {
+               std::list<std::string> extensions;
+               extensions.push_back("mp3");
+               extensions.push_back("ogg");
+               extensions.push_back("mpg");
+               extensions.push_back("vob");
+               extensions.push_back("wav");
+               extensions.push_back("wave");
+               sc->addServiceFactory(eServiceFactoryMP3::id, this, extensions);
+       }
 
        m_service_info = new eStaticServiceMP3Info();
 }
@@ -218,9 +227,11 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
                eDebug("audio: %p, queue_audio %p, video %p, queue_video %p, mpegdemux %p", audio, queue_audio, video, queue_video, mpegdemux);
                if (audio && queue_audio && video && queue_video && mpegdemux)
                {
+                       g_object_set (G_OBJECT (queue_audio), "max-size-bytes", 256*1024, NULL);
                        g_object_set (G_OBJECT (queue_audio), "max-size-buffers", 0, NULL);
                        g_object_set (G_OBJECT (queue_audio), "max-size-time", (guint64)0, NULL);
                        g_object_set (G_OBJECT (queue_video), "max-size-buffers", 0, NULL);
+                       g_object_set (G_OBJECT (queue_video), "max-size-bytes", 2*1024*1024, NULL);
                        g_object_set (G_OBJECT (queue_video), "max-size-time", (guint64)0, NULL);
                        all_ok = 1;
                }