From ae23aaee377578d9601db8d0acff66a4dd40920a Mon Sep 17 00:00:00 2001 From: James Dong Date: Thu, 28 Apr 2011 11:15:01 -0700 Subject: Add avg bandwidth estimate every 2 seconds - do not merge. This patch is meant for testing only. We will remove this patch once we tracked down all those spinning issues. related-to-bug: 4339075 Change-Id: I4cf1927f1067d4f7dbc589ceb3c47407eaf40ae7 --- media/libstagefright/NuHTTPDataSource.cpp | 11 +++++++++++ media/libstagefright/include/NuHTTPDataSource.h | 1 + 2 files changed, 12 insertions(+) (limited to 'media/libstagefright') diff --git a/media/libstagefright/NuHTTPDataSource.cpp b/media/libstagefright/NuHTTPDataSource.cpp index bee0d5e..62fb732 100644 --- a/media/libstagefright/NuHTTPDataSource.cpp +++ b/media/libstagefright/NuHTTPDataSource.cpp @@ -100,6 +100,7 @@ NuHTTPDataSource::NuHTTPDataSource(uint32_t flags) mNumBandwidthHistoryItems(0), mTotalTransferTimeUs(0), mTotalTransferBytes(0), + mPrevBandwidthMeasureTimeUs(0), mDecryptHandle(NULL), mDrmManagerClient(NULL) { } @@ -534,6 +535,16 @@ void NuHTTPDataSource::addBandwidthMeasurement_l( mTotalTransferBytes -= entry->mNumBytes; mBandwidthHistory.erase(mBandwidthHistory.begin()); --mNumBandwidthHistoryItems; + int64_t timeNowUs = ALooper::GetNowUs(); + if (timeNowUs - mPrevBandwidthMeasureTimeUs > 2000000LL) { + if (mPrevBandwidthMeasureTimeUs != 0) { + double estimatedBandwidth = + ((double)mTotalTransferBytes * 8E3 / mTotalTransferTimeUs); + LOGI("estimated avg bandwidth is %8.2f kbps in the past %lld us", + estimatedBandwidth, timeNowUs - mPrevBandwidthMeasureTimeUs); + } + mPrevBandwidthMeasureTimeUs = timeNowUs; + } } } diff --git a/media/libstagefright/include/NuHTTPDataSource.h b/media/libstagefright/include/NuHTTPDataSource.h index 2569568..0d68234 100644 --- a/media/libstagefright/include/NuHTTPDataSource.h +++ b/media/libstagefright/include/NuHTTPDataSource.h @@ -97,6 +97,7 @@ private: size_t mNumBandwidthHistoryItems; int64_t mTotalTransferTimeUs; size_t mTotalTransferBytes; + int64_t mPrevBandwidthMeasureTimeUs; DecryptHandle *mDecryptHandle; DrmManagerClient *mDrmManagerClient; -- cgit v1.1