diff options
Diffstat (limited to 'media')
4 files changed, 5 insertions, 44 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index 42977ca..a63a940 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -663,17 +663,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { instantiateDecoder(false, &mVideoDecoder); } - // Don't try to re-open audio sink if there's an existing decoder. - if (mAudioSink != NULL && mAudioDecoder == NULL) { - sp<MetaData> audioMeta = mSource->getFormatMeta(true /* audio */); - sp<AMessage> videoFormat = mSource->getFormat(false /* audio */); - audio_stream_type_t streamType = mAudioSink->getAudioStreamType(); - bool canOffload = canOffloadStream(audioMeta, (videoFormat != NULL), - true /* is_streaming */, streamType); - if (canOffload) { - if (!mOffloadAudio) { - mRenderer->signalEnableOffloadAudio(); - } + if (mAudioSink != NULL) { + if (mOffloadAudio) { // open audio sink early under offload mode. sp<AMessage> format = mSource->getFormat(true /*audio*/); openAudioSink(format, true /*offloadOnly*/); @@ -910,7 +901,7 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { ALOGV("media rendering started"); notifyListener(MEDIA_STARTED, 0, 0); } else if (what == Renderer::kWhatAudioOffloadTearDown) { - ALOGV("Tear down audio offload, fall back to s/w path if due to error."); + ALOGV("Tear down audio offload, fall back to s/w path"); int64_t positionUs; CHECK(msg->findInt64("positionUs", &positionUs)); int32_t reason; @@ -922,11 +913,11 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { if (mVideoDecoder != NULL) { mRenderer->flush(false /* audio */); } + mRenderer->signalDisableOffloadAudio(); + mOffloadAudio = false; performSeek(positionUs, false /* needNotify */); if (reason == Renderer::kDueToError) { - mRenderer->signalDisableOffloadAudio(); - mOffloadAudio = false; instantiateDecoder(true /* audio */, &mAudioDecoder); } } diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp index c52d837..4febd6b 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp @@ -316,13 +316,6 @@ status_t NuPlayerDriver::stop() { } status_t NuPlayerDriver::pause() { - // The NuPlayerRenderer may get flushed if pause for long enough, e.g. the pause timeout tear - // down for audio offload mode. If that happens, the NuPlayerRenderer will no longer know the - // current position. So similar to seekTo, update |mPositionUs| to the pause position by calling - // getCurrentPosition here. - int msec; - getCurrentPosition(&msec); - Mutex::Autolock autoLock(mLock); switch (mState) { diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index bb6fe41..638d9bc 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -155,10 +155,6 @@ void NuPlayer::Renderer::signalDisableOffloadAudio() { (new AMessage(kWhatDisableOffloadAudio, id()))->post(); } -void NuPlayer::Renderer::signalEnableOffloadAudio() { - (new AMessage(kWhatEnableOffloadAudio, id()))->post(); -} - void NuPlayer::Renderer::pause() { (new AMessage(kWhatPause, id()))->post(); } @@ -410,12 +406,6 @@ void NuPlayer::Renderer::onMessageReceived(const sp<AMessage> &msg) { break; } - case kWhatEnableOffloadAudio: - { - onEnableOffloadAudio(); - break; - } - case kWhatPause: { onPause(); @@ -1022,7 +1012,6 @@ void NuPlayer::Renderer::onFlush(const sp<AMessage> &msg) { Mutex::Autolock autoLock(mLock); syncQueuesDone_l(); setPauseStartedTimeRealUs(-1); - setAnchorTime(-1, -1); } ALOGV("flushing %s", audio ? "audio" : "video"); @@ -1126,12 +1115,6 @@ void NuPlayer::Renderer::onDisableOffloadAudio() { ++mAudioQueueGeneration; } -void NuPlayer::Renderer::onEnableOffloadAudio() { - Mutex::Autolock autoLock(mLock); - mFlags |= FLAG_OFFLOAD_AUDIO; - ++mAudioQueueGeneration; -} - void NuPlayer::Renderer::onPause() { if (mPaused) { ALOGW("Renderer::onPause() called while already paused!"); @@ -1415,9 +1398,6 @@ bool NuPlayer::Renderer::onOpenAudioSink( if (audioSinkChanged) { onAudioSinkChanged(); } - if (offloadingAudio()) { - mAudioOffloadTornDown = false; - } return offloadingAudio(); } diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h index dc37b93..b15a266 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h @@ -53,7 +53,6 @@ struct NuPlayer::Renderer : public AHandler { void signalAudioSinkChanged(); void signalDisableOffloadAudio(); - void signalEnableOffloadAudio(); void pause(); void resume(); @@ -113,7 +112,6 @@ private: kWhatCloseAudioSink = 'clsA', kWhatStopAudioSink = 'stpA', kWhatDisableOffloadAudio = 'noOA', - kWhatEnableOffloadAudio = 'enOA', kWhatSetVideoFrameRate = 'sVFR', }; @@ -197,7 +195,6 @@ private: void onFlush(const sp<AMessage> &msg); void onAudioSinkChanged(); void onDisableOffloadAudio(); - void onEnableOffloadAudio(); void onPause(); void onResume(); void onSetVideoFrameRate(float fps); |