am 564fee36: Merge "Make sure we can properly shutdown even if" into ics-mr1
* commit '564fee36667e2699c59a29102136220dc2f65862': Make sure we can properly shutdown even if
This commit is contained in:
@@ -463,11 +463,24 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
|
|||||||
{
|
{
|
||||||
LOGV("kWhatReset");
|
LOGV("kWhatReset");
|
||||||
|
|
||||||
|
if (mRenderer != NULL) {
|
||||||
|
// There's an edge case where the renderer owns all output
|
||||||
|
// buffers and is paused, therefore the decoder will not read
|
||||||
|
// more input data and will never encounter the matching
|
||||||
|
// discontinuity. To avoid this, we resume the renderer.
|
||||||
|
|
||||||
|
if (mFlushingAudio == AWAITING_DISCONTINUITY
|
||||||
|
|| mFlushingVideo == AWAITING_DISCONTINUITY) {
|
||||||
|
mRenderer->resume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mFlushingAudio != NONE || mFlushingVideo != NONE) {
|
if (mFlushingAudio != NONE || mFlushingVideo != NONE) {
|
||||||
// We're currently flushing, postpone the reset until that's
|
// We're currently flushing, postpone the reset until that's
|
||||||
// completed.
|
// completed.
|
||||||
|
|
||||||
LOGV("postponing reset");
|
LOGV("postponing reset mFlushingAudio=%d, mFlushingVideo=%d",
|
||||||
|
mFlushingAudio, mFlushingVideo);
|
||||||
|
|
||||||
mResetPostponed = true;
|
mResetPostponed = true;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -628,11 +628,16 @@ void NuPlayer::Renderer::onPause() {
|
|||||||
mAudioSink->pause();
|
mAudioSink->pause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOGV("now paused audio queue has %d entries, video has %d entries",
|
||||||
|
mAudioQueue.size(), mVideoQueue.size());
|
||||||
|
|
||||||
mPaused = true;
|
mPaused = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NuPlayer::Renderer::onResume() {
|
void NuPlayer::Renderer::onResume() {
|
||||||
CHECK(mPaused);
|
if (!mPaused) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (mHasAudio) {
|
if (mHasAudio) {
|
||||||
mAudioSink->start();
|
mAudioSink->start();
|
||||||
|
|||||||
Reference in New Issue
Block a user