summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2018-10-18 09:38:35 +0200
committerJens Georg <mail@jensge.org>2018-10-18 10:47:25 +0200
commit96931eee072182687793a0461e8989d8abd443ad (patch)
tree60db0eb06c078c826abc1f0a8935fa73e1434f40
parent6dfde6aa2bf7686e47428aca93116806197852b8 (diff)
downloadrygel-96931eee072182687793a0461e8989d8abd443ad.tar.gz
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
-rw-r--r--src/librygel-server/rygel-media-engine.vala12
-rw-r--r--src/librygel-server/rygel-media-server-plugin.vala5
-rw-r--r--src/rygel/rygel-main.vala1
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);