diff options
author | Jens Georg <mail@jensge.org> | 2016-02-07 13:01:16 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2016-02-07 13:05:24 +0100 |
commit | b264a967ba7333983df0e41dfe7401e2bc4500eb (patch) | |
tree | c1ee643cb832c9a2257faa62739a0abe53d50414 /src/media-engines/gstreamer | |
parent | 1b2ddf4063100be96c29ad6146b6c4183a89014a (diff) | |
download | rygel-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.vala | 3 | ||||
-rw-r--r-- | src/media-engines/gstreamer/rygel-gst-sink.vala | 7 |
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; } } |