summaryrefslogtreecommitdiff
path: root/src/media-engines/gstreamer
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2015-09-09 14:30:54 +0200
committerJens Georg <mail@jensge.org>2016-01-03 15:35:26 +0100
commit9511030b7f3e0de350aadc824e808ca593ce2043 (patch)
tree8abf0fbb0fd3e7ce8a08b96b3fb4a795133edc21 /src/media-engines/gstreamer
parent3fac7ac8ce0dc9b63e4c4a4d2b09b93c480e10f9 (diff)
downloadrygel-9511030b7f3e0de350aadc824e808ca593ce2043.tar.gz
engine-gst: Add DVD support
Signed-off-by: Jens Georg <mail@jensge.org>
Diffstat (limited to 'src/media-engines/gstreamer')
-rw-r--r--src/media-engines/gstreamer/rygel-gst-media-engine.vala3
-rw-r--r--src/media-engines/gstreamer/rygel-gst-utils.vala8
2 files changed, 10 insertions, 1 deletions
diff --git a/src/media-engines/gstreamer/rygel-gst-media-engine.vala b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
index 0b38b7c5..c60cb6b8 100644
--- a/src/media-engines/gstreamer/rygel-gst-media-engine.vala
+++ b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
@@ -136,7 +136,8 @@ public class Rygel.GstMediaEngine : Rygel.MediaEngine {
parts[0]);
if (!Gst.URI.protocol_is_supported (URIType.SRC, parts[0]) &&
- parts[0] != "gst-launch") {
+ parts[0] != "gst-launch" &&
+ parts[0] != "dvd") {
warning (_("Can't process URI %s with protocol %s"),
source_uri,
parts[0]);
diff --git a/src/media-engines/gstreamer/rygel-gst-utils.vala b/src/media-engines/gstreamer/rygel-gst-utils.vala
index bb19a7ea..20b7302d 100644
--- a/src/media-engines/gstreamer/rygel-gst-utils.vala
+++ b/src/media-engines/gstreamer/rygel-gst-utils.vala
@@ -51,6 +51,14 @@ internal abstract class Rygel.GstUtils {
var description = uri.replace ("gst-launch://", "");
src = Gst.parse_bin_from_description (description, true);
+ } else if (uri.has_prefix ("dvd://")) {
+ var tmp = new Soup.URI (uri);
+ var query = Soup.Form.decode (tmp.query);
+ src = ElementFactory.make ("dvdreadsrc", null);
+ if (query.contains ("title")) {
+ src.title = int.parse (query.lookup ("title"));
+ }
+ src.device = Soup.URI.decode (tmp.path);
} else {
src = Element.make_from_uri (URIType.SRC, uri, null);
}