summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-09-11 18:44:56 -0700
committerAndy Hung <hunga@google.com>2015-09-11 18:48:48 -0700
commit3f5ff68327b1df21196f18a020aec474a0dd95fe (patch)
treee649b1493c7f8912cec6b1a7e51e8645b2c17955 /media/libmediaplayerservice
parent0f05031545e43c8fe49a9dda0cfd9dce202d1ef3 (diff)
downloadframeworks_av-3f5ff68327b1df21196f18a020aec474a0dd95fe.zip
frameworks_av-3f5ff68327b1df21196f18a020aec474a0dd95fe.tar.gz
frameworks_av-3f5ff68327b1df21196f18a020aec474a0dd95fe.tar.bz2
NuPlayerRenderer: Do not drain audio during teardown
Bug: 23748678 Change-Id: I8b65786f25f4524e5e2e9476ecc2a4f4ab3aea9e
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index 0ac29a8..93555f5 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -798,6 +798,10 @@ void NuPlayer::Renderer::drainAudioQueueUntilLastEOS() {
}
bool NuPlayer::Renderer::onDrainAudioQueue() {
+ // do not drain audio during teardown as queued buffers may be invalid.
+ if (mAudioTornDown) {
+ return false;
+ }
// TODO: This call to getPosition checks if AudioTrack has been created
// in AudioSink before draining audio. If AudioTrack doesn't exist, then
// CHECKs on getPosition will fail.
@@ -1477,6 +1481,7 @@ void NuPlayer::Renderer::onResume() {
cancelAudioOffloadPauseTimeout();
status_t err = mAudioSink->start();
if (err != OK) {
+ ALOGE("cannot start AudioSink err %d", err);
notifyAudioTearDown();
}
}