summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2015-04-25 08:33:45 +0200
committerJens Georg <mail@jensge.org>2015-04-25 08:38:40 +0200
commit29f9b0538fda8f43ab08f542dca3f868308e24a0 (patch)
tree18cd3b5b0461e0dc05dec5b04253c3db22ce08ad
parent661454559af7485ef5363b1fba2916b18e6b7ff4 (diff)
downloadrygel-29f9b0538fda8f43ab08f542dca3f868308e24a0.tar.gz
engine-gst: Fix resource duration handling
- Transfer resource from original data source to transcoding data source - Seed HTTPTimeSeekResponse with time in micorseconds not seconds Signed-off-by: Jens Georg <mail@jensge.org> https://bugzilla.gnome.org/show_bug.cgi?id=748410
-rw-r--r--src/media-engines/gstreamer/rygel-gst-data-source.vala4
-rw-r--r--src/media-engines/gstreamer/rygel-gst-transcoder.vala6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/media-engines/gstreamer/rygel-gst-data-source.vala b/src/media-engines/gstreamer/rygel-gst-data-source.vala
index f2f9ea99..1f3c3290 100644
--- a/src/media-engines/gstreamer/rygel-gst-data-source.vala
+++ b/src/media-engines/gstreamer/rygel-gst-data-source.vala
@@ -84,7 +84,9 @@ internal class Rygel.GstDataSource : Rygel.DataSource, GLib.Object {
var time_seek = seek_request as HTTPTimeSeekRequest;
// Set the effective TimeSeekRange response range to the requested range
// TODO: Align this with actual time range being returned
- var seek_response = new HTTPTimeSeekResponse.from_request(time_seek, res.duration);
+ var seek_response = new HTTPTimeSeekResponse.from_request(time_seek,
+ res.duration
+ * TimeSpan.SECOND);
debug("Processing time seek request for %lldns-%lldns",
seek_response.start_time, seek_response.end_time);
response_list.add(seek_response);
diff --git a/src/media-engines/gstreamer/rygel-gst-transcoder.vala b/src/media-engines/gstreamer/rygel-gst-transcoder.vala
index dd0bc023..521f32b7 100644
--- a/src/media-engines/gstreamer/rygel-gst-transcoder.vala
+++ b/src/media-engines/gstreamer/rygel-gst-transcoder.vala
@@ -157,7 +157,11 @@ public abstract class Rygel.GstTranscoder : GLib.Object {
var ghost = new GhostPad (null, pad);
bin.add_pad (ghost);
- return new GstDataSource.from_element (bin);
+ // Hook up resource from original resource
+ var new_source = new GstDataSource.from_element (bin);
+ new_source.res = orig_source.res;
+
+ return new_source;
}
/**