OSDN Git Service

When http streaming and Content-Length is unknown, make sure to return all
authorAndreas Huber <andih@google.com>
Wed, 30 Mar 2011 21:45:22 +0000 (14:45 -0700)
committerAndreas Huber <andih@google.com>
Wed, 30 Mar 2011 22:00:34 +0000 (15:00 -0700)
data that we successfully received before signalling the error.

Change-Id: I7e60602d41b4df85aa85e413c590687305e9bbce
related-to-bug: 4190765

media/libstagefright/NuHTTPDataSource.cpp

index b24343f..bee0d5e 100644 (file)
@@ -410,7 +410,14 @@ ssize_t NuHTTPDataSource::readAt(off64_t offset, void *data, size_t size) {
             internalRead((uint8_t *)data + numBytesRead, size - numBytesRead);
 
         if (n < 0) {
-            return n;
+            if (numBytesRead == 0 || mContentLengthValid) {
+                return n;
+            }
+
+            // If there was an error we want to at least return the data
+            // we've already successfully read. The next call to read will
+            // then return the error.
+            n = 0;
         }
 
         int64_t delayUs = ALooper::GetNowUs() - startTimeUs;