Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f10f36d3 authored by Jeffrey Tinker's avatar Jeffrey Tinker
Browse files

Send current bandwidth info event when buffering occurs

There is a dependent change in vendor/widevine repo.

Change-Id: If063f4b1c8857e5bfc7be54ab0f97a4ed169b303
related-to-bug: 5883234
parent cd3ed116
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -756,8 +756,8 @@ void AwesomePlayer::onBufferingUpdate() {
                      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::onBufferingUpdate() {

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);
+9 −0
Original line number Diff line number Diff line
@@ -121,6 +121,15 @@ int64_t WVMExtractor::getCachedDurationUs(status_t *finalStatus) {
    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);
+4 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ public:
    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 @@ public:
    // *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.