// A cheaper but less precise version of getBufferedDurationUs that we would like to use in // LiveSession::dequeueAccessUnit to trigger downwards adaptation. int64_t AnotherPacketSource::getEstimatedDurationUs() { Mutex::Autolock autoLock(mLock); if (mBuffers.empty()) { return 0; } if (mQueuedDiscontinuityCount > 0) { status_t finalResult; return getBufferedDurationUs_l(&finalResult); } List<sp<ABuffer> >::iterator it = mBuffers.begin(); sp<ABuffer> buffer = *it; int64_t startTimeUs; buffer->meta()->findInt64("timeUs", &startTimeUs); if (startTimeUs < 0) { return 0; } it = mBuffers.end(); --it; buffer = *it; int64_t endTimeUs; buffer->meta()->findInt64("timeUs", &endTimeUs); if (endTimeUs < 0) { return 0; } int64_t diffUs; if (endTimeUs > startTimeUs) { diffUs = endTimeUs - startTimeUs; } else { diffUs = startTimeUs - endTimeUs; } return diffUs; }
int64_t AnotherPacketSource::getBufferedDurationUs(status_t *finalResult) { Mutex::Autolock autoLock(mLock); return getBufferedDurationUs_l(finalResult); }
int64_t DirectRenderer::DecoderContext::getBufferedDurationUs() { Mutex::Autolock autoLock(mLock); return getBufferedDurationUs_l(); }