From 3f5ff68327b1df21196f18a020aec474a0dd95fe Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Fri, 11 Sep 2015 18:44:56 -0700 Subject: NuPlayerRenderer: Do not drain audio during teardown Bug: 23748678 Change-Id: I8b65786f25f4524e5e2e9476ecc2a4f4ab3aea9e --- media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp') 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(); } } -- cgit v1.1