[rygel/wip/dvd: 53/56] media-export: Mark DVD streams as time-seek only
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel/wip/dvd: 53/56] media-export: Mark DVD streams as time-seek only
- Date: Sun, 3 Jan 2016 11:58:47 +0000 (UTC)
commit 188f09eb0844001c4f554de4e925a8ee5a628ff1
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 1113951..c55bd5f 100644
--- a/src/plugins/media-export/rygel-media-export-dvd-container.vala
+++ b/src/plugins/media-export/rygel-media-export-dvd-container.vala
@@ -151,9 +151,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]