Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ NuPlayer::NuPlayer(pid_t pid) mAudioDecoderGeneration(0), mVideoDecoderGeneration(0), mRendererGeneration(0), mPreviousSeekTimeUs(0), mAudioEOS(false), mVideoEOS(false), mScanSourcesPending(false), Loading Loading @@ -1114,7 +1115,9 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { } int64_t positionUs; CHECK(msg->findInt64("positionUs", &positionUs)); if (!msg->findInt64("positionUs", &positionUs)) { positionUs = mPreviousSeekTimeUs; } performSeek(positionUs); if (reason == Renderer::kDueToError && needsToCreateAudioDecoder) { Loading Loading @@ -1857,6 +1860,7 @@ void NuPlayer::performSeek(int64_t seekTimeUs) { mAudioDecoder.get(), mVideoDecoder.get()); return; } mPreviousSeekTimeUs = seekTimeUs; mSource->seekTo(seekTimeUs); ++mTimedTextGeneration; Loading media/libmediaplayerservice/nuplayer/NuPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,8 @@ private: int32_t mVideoDecoderGeneration; int32_t mRendererGeneration; int64_t mPreviousSeekTimeUs; List<sp<Action> > mDeferredActions; bool mAudioEOS; Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -1586,16 +1586,15 @@ void NuPlayer::Renderer::onAudioTearDown(AudioTearDownReason reason) { mAudioTornDown = true; int64_t currentPositionUs; if (getCurrentPosition(¤tPositionUs) != OK) { currentPositionUs = 0; sp<AMessage> notify = mNotify->dup(); if (getCurrentPosition(¤tPositionUs) == OK) { notify->setInt64("positionUs", currentPositionUs); } mAudioSink->stop(); mAudioSink->flush(); sp<AMessage> notify = mNotify->dup(); notify->setInt32("what", kWhatAudioTearDown); notify->setInt64("positionUs", currentPositionUs); notify->setInt32("reason", reason); notify->post(); } Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ NuPlayer::NuPlayer(pid_t pid) mAudioDecoderGeneration(0), mVideoDecoderGeneration(0), mRendererGeneration(0), mPreviousSeekTimeUs(0), mAudioEOS(false), mVideoEOS(false), mScanSourcesPending(false), Loading Loading @@ -1114,7 +1115,9 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { } int64_t positionUs; CHECK(msg->findInt64("positionUs", &positionUs)); if (!msg->findInt64("positionUs", &positionUs)) { positionUs = mPreviousSeekTimeUs; } performSeek(positionUs); if (reason == Renderer::kDueToError && needsToCreateAudioDecoder) { Loading Loading @@ -1857,6 +1860,7 @@ void NuPlayer::performSeek(int64_t seekTimeUs) { mAudioDecoder.get(), mVideoDecoder.get()); return; } mPreviousSeekTimeUs = seekTimeUs; mSource->seekTo(seekTimeUs); ++mTimedTextGeneration; Loading
media/libmediaplayerservice/nuplayer/NuPlayer.h +2 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,8 @@ private: int32_t mVideoDecoderGeneration; int32_t mRendererGeneration; int64_t mPreviousSeekTimeUs; List<sp<Action> > mDeferredActions; bool mAudioEOS; Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -1586,16 +1586,15 @@ void NuPlayer::Renderer::onAudioTearDown(AudioTearDownReason reason) { mAudioTornDown = true; int64_t currentPositionUs; if (getCurrentPosition(¤tPositionUs) != OK) { currentPositionUs = 0; sp<AMessage> notify = mNotify->dup(); if (getCurrentPosition(¤tPositionUs) == OK) { notify->setInt64("positionUs", currentPositionUs); } mAudioSink->stop(); mAudioSink->flush(); sp<AMessage> notify = mNotify->dup(); notify->setInt32("what", kWhatAudioTearDown); notify->setInt64("positionUs", currentPositionUs); notify->setInt32("reason", reason); notify->post(); } Loading