summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/NuCachedSource2.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-08-28 09:48:40 -0700
committerAndreas Huber <andih@google.com>2012-08-28 10:46:38 -0700
commita7607a7f97b3136d5e61c0bca63760bf9fc05b19 (patch)
tree9a939366f6acaba47fe73e6bb9d25bed37c8b022 /media/libstagefright/NuCachedSource2.cpp
parent690921927f289da73556ea71c28981194af8ffcd (diff)
downloadframeworks_av-a7607a7f97b3136d5e61c0bca63760bf9fc05b19.zip
frameworks_av-a7607a7f97b3136d5e61c0bca63760bf9fc05b19.tar.gz
frameworks_av-a7607a7f97b3136d5e61c0bca63760bf9fc05b19.tar.bz2
Fix retries when server doesn't support range requests.
Change-Id: I2d137f3e799b87af36a279473c0077d860c14477 related-to-bug: 7021436
Diffstat (limited to 'media/libstagefright/NuCachedSource2.cpp')
-rw-r--r--media/libstagefright/NuCachedSource2.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/media/libstagefright/NuCachedSource2.cpp b/media/libstagefright/NuCachedSource2.cpp
index f1075b1..05e599b 100644
--- a/media/libstagefright/NuCachedSource2.cpp
+++ b/media/libstagefright/NuCachedSource2.cpp
@@ -298,7 +298,9 @@ void NuCachedSource2::fetchInternal() {
Mutex::Autolock autoLock(mLock);
- if (err == ERROR_UNSUPPORTED) {
+ if (err == ERROR_UNSUPPORTED || err == -EPIPE) {
+ // These are errors that are not likely to go away even if we
+ // retry, i.e. the server doesn't support range requests or similar.
mNumRetriesLeft = 0;
return;
} else if (err != OK) {
@@ -317,8 +319,14 @@ void NuCachedSource2::fetchInternal() {
Mutex::Autolock autoLock(mLock);
if (n < 0) {
- ALOGE("source returned error %ld, %d retries left", n, mNumRetriesLeft);
mFinalStatus = n;
+ if (n == ERROR_UNSUPPORTED || n == -EPIPE) {
+ // These are errors that are not likely to go away even if we
+ // retry, i.e. the server doesn't support range requests or similar.
+ mNumRetriesLeft = 0;
+ }
+
+ ALOGE("source returned error %ld, %d retries left", n, mNumRetriesLeft);
mCache->releasePage(page);
} else if (n == 0) {
ALOGI("ERROR_END_OF_STREAM");