am 53719fc4: Merge "Fix issue 5373048: AudioCache decode errors"

* commit '53719fc4c5c441e8696f26bbfb9166b0bd19ef29':
  Fix issue 5373048: AudioCache decode errors
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index a434614..b7d2b5c 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -52,6 +52,7 @@
 #include <media/Metadata.h>
 #include <media/AudioTrack.h>
 #include <media/MemoryLeakTrackUtil.h>
+#include <media/stagefright/MediaErrors.h>
 
 #include <system/audio.h>
 
@@ -1165,7 +1166,11 @@
     player->start();
 
     LOGV("wait for playback complete");
-    if (cache->wait() != NO_ERROR) goto Exit;
+    cache->wait();
+    // in case of error, return what was successfully decoded.
+    if (cache->size() == 0) {
+        goto Exit;
+    }
 
     mem = new MemoryBase(cache->getHeap(), 0, cache->size());
     *pSampleRate = cache->sampleRate();
@@ -1208,7 +1213,11 @@
     player->start();
 
     LOGV("wait for playback complete");
-    if (cache->wait() != NO_ERROR) goto Exit;
+    cache->wait();
+    // in case of error, return what was successfully decoded.
+    if (cache->size() == 0) {
+        goto Exit;
+    }
 
     mem = new MemoryBase(cache->getHeap(), 0, cache->size());
     *pSampleRate = cache->sampleRate();