[rygel] rygel,server: Init MediaEngine in MediaServerPlugin



commit 96931eee072182687793a0461e8989d8abd443ad
Author: Jens Georg <mail jensge org>
Date:   Thu Oct 18 09:38:35 2018 +0200

    rygel,server: Init MediaEngine in MediaServerPlugin
    
    This way it is possible to not build any engine at all if you are only
    interested in running as a DMR as the engine is only used for the
    streaming / transcoding of the media

 src/librygel-server/rygel-media-engine.vala        | 12 +++++++-----
 src/librygel-server/rygel-media-server-plugin.vala |  5 +++++
 src/rygel/rygel-main.vala                          |  1 -
 3 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/librygel-server/rygel-media-engine.vala b/src/librygel-server/rygel-media-engine.vala
index 067a8a2f..bf8e8e3f 100644
--- a/src/librygel-server/rygel-media-engine.vala
+++ b/src/librygel-server/rygel-media-engine.vala
@@ -54,12 +54,14 @@ public abstract class Rygel.MediaEngine : GLib.Object {
     private static MediaEngine instance;
 
     public static void init () throws Error {
-        // lazy-load the engine plug-in
-        var loader = new EngineLoader ();
-        MediaEngine.instance = loader.load_engine ();
         if (MediaEngine.instance == null) {
-            throw new MediaEngineError.NOT_FOUND
-                                        (_("No media engine found."));
+            // lazy-load the engine plug-in
+            var loader = new EngineLoader ();
+            MediaEngine.instance = loader.load_engine ();
+            if (MediaEngine.instance == null) {
+                throw new MediaEngineError.NOT_FOUND
+                    (_("No media engine found."));
+            }
         }
     }
 
diff --git a/src/librygel-server/rygel-media-server-plugin.vala 
b/src/librygel-server/rygel-media-server-plugin.vala
index b7d87efc..e162020b 100644
--- a/src/librygel-server/rygel-media-server-plugin.vala
+++ b/src/librygel-server/rygel-media-server-plugin.vala
@@ -141,6 +141,11 @@ public abstract class Rygel.MediaServerPlugin : Rygel.Plugin {
 
     public override void constructed () {
         base.constructed ();
+        try {
+            MediaEngine.init();
+        } catch (Error e) {
+            error ("Failed to initialize media engine: %s", e.message);
+        }
 
         var path = ContentDirectory.DESCRIPTION_PATH_NO_TRACK;
 
diff --git a/src/rygel/rygel-main.vala b/src/rygel/rygel-main.vala
index bd5c65e0..4a1d3b7e 100644
--- a/src/rygel/rygel-main.vala
+++ b/src/rygel/rygel-main.vala
@@ -291,7 +291,6 @@ internal class Rygel.Main : Object {
             // Parse commandline options
             CmdlineConfig.parse_args (ref args);
             Main.register_default_configurations ();
-            MediaEngine.init ();
 
             main = new Main ();
             service = new DBusService (main);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]