summaryrefslogtreecommitdiff
path: root/src/media-engines/gstreamer
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2016-02-07 13:01:16 +0100
committerJens Georg <mail@jensge.org>2016-02-07 13:05:24 +0100
commitb264a967ba7333983df0e41dfe7401e2bc4500eb (patch)
treec1ee643cb832c9a2257faa62739a0abe53d50414 /src/media-engines/gstreamer
parent1b2ddf4063100be96c29ad6146b6c4183a89014a (diff)
downloadrygel-b264a967ba7333983df0e41dfe7401e2bc4500eb.tar.gz
engine-gst: Fix serving of resources with unspecified length
Signed-off-by: Jens Georg <mail@jensge.org>
Diffstat (limited to 'src/media-engines/gstreamer')
-rw-r--r--src/media-engines/gstreamer/rygel-gst-data-source.vala3
-rw-r--r--src/media-engines/gstreamer/rygel-gst-sink.vala7
2 files changed, 6 insertions, 4 deletions
diff --git a/src/media-engines/gstreamer/rygel-gst-data-source.vala b/src/media-engines/gstreamer/rygel-gst-data-source.vala
index 117bab27..458a9560 100644
--- a/src/media-engines/gstreamer/rygel-gst-data-source.vala
+++ b/src/media-engines/gstreamer/rygel-gst-data-source.vala
@@ -296,7 +296,8 @@ internal class Rygel.GstDataSource : Rygel.DataSource, GLib.Object {
} else if (this.seek is HTTPByteSeekRequest) {
var byte_seek = this.seek as HTTPByteSeekRequest;
if (byte_seek.range_length >= byte_seek.total_size) {
- // How/why would this happen?
+ // Can happen on (invalid) seeks on resources with unspecified
+ // size
return true;
}
diff --git a/src/media-engines/gstreamer/rygel-gst-sink.vala b/src/media-engines/gstreamer/rygel-gst-sink.vala
index 5c5f2db1..3bff4d52 100644
--- a/src/media-engines/gstreamer/rygel-gst-sink.vala
+++ b/src/media-engines/gstreamer/rygel-gst-sink.vala
@@ -68,9 +68,10 @@ internal class Rygel.GstSink : Sink {
this.name = NAME;
this.frozen = false;
- if (this.offsets != null) {
- if (this.offsets is HTTPByteSeekRequest) {
- this.max_bytes = (this.offsets as HTTPByteSeekRequest).total_size;
+ if (this.offsets != null && this.offsets is HTTPByteSeekRequest) {
+ this.max_bytes = (this.offsets as HTTPByteSeekRequest).total_size;
+ if (this.max_bytes == -1) {
+ this.max_bytes = int64.MAX;
}
}