diff options
author | Jens Georg <mail@jensge.org> | 2015-09-09 14:30:54 +0200 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2016-01-03 15:35:26 +0100 |
commit | 9511030b7f3e0de350aadc824e808ca593ce2043 (patch) | |
tree | 8abf0fbb0fd3e7ce8a08b96b3fb4a795133edc21 /src/media-engines/gstreamer | |
parent | 3fac7ac8ce0dc9b63e4c4a4d2b09b93c480e10f9 (diff) | |
download | rygel-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.vala | 3 | ||||
-rw-r--r-- | src/media-engines/gstreamer/rygel-gst-utils.vala | 8 |
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); } |