core: Correct logic for decision to seek or not
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 9 Dec 2009 01:10:25 +0000 (03:10 +0200)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 9 Dec 2009 15:31:07 +0000 (17:31 +0200)
src/rygel/rygel-http-byte-seek.vala
src/rygel/rygel-http-time-seek.vala

index 72a701b..faf327a 100644 (file)
@@ -81,7 +81,8 @@ internal class Rygel.HTTPByteSeek : Rygel.HTTPSeek {
     }
 
     public static bool needed (HTTPRequest request) {
-        return true;
+        return request.item.size > 0 ||
+               (request.thumbnail != null && request.thumbnail.size > 0);
     }
 
     public override void add_response_headers () {
index bd3e17c..87bb032 100644 (file)
@@ -78,7 +78,11 @@ internal class Rygel.HTTPTimeSeek : Rygel.HTTPSeek {
     }
 
     public static bool needed (HTTPRequest request) {
-        return request.thumbnail == null && request.item.should_stream ();
+        var range = request.msg.request_headers.get ("TimeSeekRange.dlna.org");
+
+        return range != null &&
+               (request.request_handler is HTTPTranscodeHandler ||
+                (request.thumbnail == null && request.item.should_stream ()));
     }
 
     public override void add_response_headers () {