NuPlayer: Notify if drain message time is unexpectedly long
Bug: 27940058
Change-Id: Id8897c30e21b6b9de545a710e7766ffceb491455
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index a4cc3d7..b135466 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -875,6 +875,24 @@
return (ssize_t) mProxy->getBufferSizeInFrames();
}
+status_t AudioTrack::getBufferDurationInUs(int64_t *duration)
+{
+ if (duration == nullptr) {
+ return BAD_VALUE;
+ }
+ AutoMutex lock(mLock);
+ if (mOutput == AUDIO_IO_HANDLE_NONE || mProxy.get() == 0) {
+ return NO_INIT;
+ }
+ ssize_t bufferSizeInFrames = (ssize_t) mProxy->getBufferSizeInFrames();
+ if (bufferSizeInFrames < 0) {
+ return (status_t)bufferSizeInFrames;
+ }
+ *duration = (int64_t)((double)bufferSizeInFrames * 1000000
+ / ((double)mSampleRate * mPlaybackRate.mSpeed));
+ return NO_ERROR;
+}
+
ssize_t AudioTrack::setBufferSizeInFrames(size_t bufferSizeInFrames)
{
AutoMutex lock(mLock);