HLS: remove no more than 10% of bandwidth history at a time

- fix a 'possible video time jump' after seek, don't update
  renderer anchor time for 0-sized audio buffers

- fix another 'possible video time jump' caused by some states
  not reset in mStreams

- bandwidth estimator changes to not remove more than 10%
  of total transfer duration at a time to avoid jumping up
  too quickly

bug: 20267388
related-to-bug: 19864613
related-to-bug: 20138395

Change-Id: I8812332cd1e26bf562acfaf086fd679a3549debc
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index f8be16a..f229452 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -621,7 +621,8 @@
             return false;
         }
 
-        if (entry->mOffset == 0) {
+        // ignore 0-sized buffer which could be EOS marker with no data
+        if (entry->mOffset == 0 && entry->mBuffer->size() > 0) {
             int64_t mediaTimeUs;
             CHECK(entry->mBuffer->meta()->findInt64("timeUs", &mediaTimeUs));
             ALOGV("rendering audio at media time %.2f secs", mediaTimeUs / 1E6);