am 4b9a895d: am d8d4d666: Merge "Send current bandwidth info event when buffering occurs" into jb-mr1-dev
* commit '4b9a895d8bda928351e7169319dd73891873f929':
Send current bandwidth info event when buffering occurs
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp
index e18fcbc..04f78eb 100644
--- a/media/libstagefright/AwesomePlayer.cpp
+++ b/media/libstagefright/AwesomePlayer.cpp
@@ -756,8 +756,8 @@
cachedDurationUs / 1E6);
pause_l();
ensureCacheIsFetching_l();
- sendCacheStats();
}
+ sendCacheStats();
notifyListener_l(MEDIA_INFO, MEDIA_INFO_BUFFERING_START);
} else if (eos || cachedDurationUs > kHighWaterMarkUs) {
if (mFlags & CACHE_UNDERRUN) {
@@ -780,9 +780,14 @@
void AwesomePlayer::sendCacheStats() {
sp<MediaPlayerBase> listener = mListener.promote();
- if (listener != NULL && mCachedSource != NULL) {
+ if (listener != NULL) {
int32_t kbps = 0;
- status_t err = mCachedSource->getEstimatedBandwidthKbps(&kbps);
+ status_t err = UNKNOWN_ERROR;
+ if (mCachedSource != NULL) {
+ err = mCachedSource->getEstimatedBandwidthKbps(&kbps);
+ } else if (mWVMExtractor != NULL) {
+ err = mWVMExtractor->getEstimatedBandwidthKbps(&kbps);
+ }
if (err == OK) {
listener->sendEvent(
MEDIA_INFO, MEDIA_INFO_NETWORK_BANDWIDTH, kbps);
diff --git a/media/libstagefright/WVMExtractor.cpp b/media/libstagefright/WVMExtractor.cpp
index 08d2ae2..d94fc65 100644
--- a/media/libstagefright/WVMExtractor.cpp
+++ b/media/libstagefright/WVMExtractor.cpp
@@ -121,6 +121,15 @@
return mImpl->getCachedDurationUs(finalStatus);
}
+status_t WVMExtractor::getEstimatedBandwidthKbps(int32_t *kbps) {
+ if (mImpl == NULL) {
+ return UNKNOWN_ERROR;
+ }
+
+ return mImpl->getEstimatedBandwidthKbps(kbps);
+}
+
+
void WVMExtractor::setAdaptiveStreamingMode(bool adaptive) {
if (mImpl != NULL) {
mImpl->setAdaptiveStreamingMode(adaptive);
diff --git a/media/libstagefright/include/WVMExtractor.h b/media/libstagefright/include/WVMExtractor.h
index 2b952e2..c43c801 100644
--- a/media/libstagefright/include/WVMExtractor.h
+++ b/media/libstagefright/include/WVMExtractor.h
@@ -33,6 +33,7 @@
virtual ~WVMLoadableExtractor() {}
virtual int64_t getCachedDurationUs(status_t *finalStatus) = 0;
+ virtual status_t getEstimatedBandwidthKbps(int32_t *kbps) = 0;
virtual void setAdaptiveStreamingMode(bool adaptive) = 0;
virtual void setCryptoPluginMode(bool cryptoPluginMode) = 0;
virtual void setUID(uid_t uid) = 0;
@@ -55,6 +56,9 @@
// *finalStatus == ERROR_END_OF_STREAM
int64_t getCachedDurationUs(status_t *finalStatus);
+ // Return the current estimated bandwidth
+ status_t getEstimatedBandwidthKbps(int32_t *kbps);
+
// Set to use adaptive streaming mode by the WV component.
// If adaptive == true, adaptive streaming mode will be used.
// Default mode is non-adaptive streaming mode.