[rygel] media-export: Mark DVD streams as time-seek only



commit 84de80b58b2241374beaa94cfc9ef8a001ce51f4
Author: Jens Georg <mail jensge org>
Date:   Fri Sep 18 15:36:55 2015 +0200

    media-export: Mark DVD streams as time-seek only
    
    Signed-off-by: Jens Georg <mail jensge org>

 src/librygel-server/rygel-media-file-item.vala     |    1 +
 .../gstreamer/rygel-gst-media-engine.vala          |    1 -
 src/plugins/media-export/Makefile.am               |    3 +-
 .../rygel-media-export-dvd-container.vala          |    6 +-
 .../media-export/rygel-media-export-dvd-track.vala |   40 ++++++++++++++++++++
 5 files changed, 46 insertions(+), 5 deletions(-)
---
diff --git a/src/librygel-server/rygel-media-file-item.vala b/src/librygel-server/rygel-media-file-item.vala
index ce6d252..58ee9b0 100644
--- a/src/librygel-server/rygel-media-file-item.vala
+++ b/src/librygel-server/rygel-media-file-item.vala
@@ -167,6 +167,7 @@ public abstract class Rygel.MediaFileItem : MediaItem {
         res.mime_type = this.mime_type;
         res.dlna_profile = this.dlna_profile;
         res.dlna_flags = DLNAFlags.BACKGROUND_TRANSFER_MODE;
+        res.dlna_operation = DLNAOperation.RANGE;
 
         // MediaFileItems refer directly to the source URI
         res.uri = this.get_primary_uri ();
diff --git a/src/media-engines/gstreamer/rygel-gst-media-engine.vala 
b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
index c60cb6b..a5e6b83 100644
--- a/src/media-engines/gstreamer/rygel-gst-media-engine.vala
+++ b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
@@ -150,7 +150,6 @@ public class Rygel.GstMediaEngine : Rygel.MediaEngine {
 
         // The GstMediaEngine only supports byte-based seek on the primary
         // resource currently
-        primary_res.dlna_operation = DLNAOperation.RANGE;
 
         // The GstMediaEngine supports connection stalling on the primary
         // resource
diff --git a/src/plugins/media-export/Makefile.am b/src/plugins/media-export/Makefile.am
index 101e4cc..257a080 100644
--- a/src/plugins/media-export/Makefile.am
+++ b/src/plugins/media-export/Makefile.am
@@ -60,7 +60,8 @@ librygel_media_export_la_SOURCES = \
        rygel-media-export-playlist-item.vala \
        rygel-media-export-trackable-db-container.vala \
        rygel-media-export-updatable-object.vala \
-       rygel-media-export-dvd-container.vala
+       rygel-media-export-dvd-container.vala \
+       rygel-media-export-dvd-track.vala
 
 librygel_media_export_la_VALAFLAGS = \
        --enable-experimental \
diff --git a/src/plugins/media-export/rygel-media-export-dvd-container.vala 
b/src/plugins/media-export/rygel-media-export-dvd-container.vala
index a79dfad..7e60cf1 100644
--- a/src/plugins/media-export/rygel-media-export-dvd-container.vala
+++ b/src/plugins/media-export/rygel-media-export-dvd-container.vala
@@ -150,9 +150,9 @@ internal class Rygel.MediaExport.DVDContainer : SimpleContainer, UpdatableObject
     }
 
     private MediaFileItem get_item_for_xml (int track, Xml.Node *node) {
-        var item = new VideoItem (this.get_track_id (track),
-                                  this,
-                                  "Track %d".printf (track + 1));
+        var item = new DVDTrack (this.get_track_id (track),
+                                 this,
+                                 "Track %d".printf (track + 1));
         item.parent_ref = this;
 
         var uri = new Soup.URI (this.get_uris ()[0]);
diff --git a/src/plugins/media-export/rygel-media-export-dvd-track.vala 
b/src/plugins/media-export/rygel-media-export-dvd-track.vala
new file mode 100644
index 0000000..0820121
--- /dev/null
+++ b/src/plugins/media-export/rygel-media-export-dvd-track.vala
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2015 Jens Georg <mail jensge org>
+ *
+ * Author: Jens Georg <mail jensge org>
+ *
+ * This file is part of Rygel.
+ *
+ * Rygel is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Rygel is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+using GUPnP;
+
+internal class Rygel.MediaExport.DVDTrack : Rygel.VideoItem {
+    public DVDTrack (string         id,
+                     MediaContainer parent,
+                     string         title) {
+        base (id, parent, title, Rygel.VideoItem.UPNP_CLASS);
+    }
+
+    public override MediaResource get_primary_resource () {
+        var res = base.get_primary_resource ();
+
+        // We don't have proper access to tbe bytes, but time seek should week
+        res.dlna_operation = DLNAOperation.TIMESEEK;
+
+        return res;
+    }
+}


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