From 1a5c859016e743779e4db25855390b3ce523cd48 Mon Sep 17 00:00:00 2001 From: Robert Shih Date: Tue, 4 Aug 2015 18:07:44 -0700 Subject: NuPlayer:seek handling on kWhatAudioTearDown Restart from previous seek time on kWhatAudioTearDown if mRenderer didn't supply a useful positionUs. Bug: 22662968 Change-Id: Ic21957f676ba25fb92694f71093bed60b630390b --- media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'media/libmediaplayerservice/nuplayer/NuPlayer.cpp') diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index bfdb1ad..214315f 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -174,6 +174,7 @@ NuPlayer::NuPlayer(pid_t pid) mAudioDecoderGeneration(0), mVideoDecoderGeneration(0), mRendererGeneration(0), + mPreviousSeekTimeUs(0), mAudioEOS(false), mVideoEOS(false), mScanSourcesPending(false), @@ -1114,7 +1115,9 @@ void NuPlayer::onMessageReceived(const sp &msg) { } int64_t positionUs; - CHECK(msg->findInt64("positionUs", &positionUs)); + if (!msg->findInt64("positionUs", &positionUs)) { + positionUs = mPreviousSeekTimeUs; + } performSeek(positionUs); if (reason == Renderer::kDueToError && needsToCreateAudioDecoder) { @@ -1857,6 +1860,7 @@ void NuPlayer::performSeek(int64_t seekTimeUs) { mAudioDecoder.get(), mVideoDecoder.get()); return; } + mPreviousSeekTimeUs = seekTimeUs; mSource->seekTo(seekTimeUs); ++mTimedTextGeneration; -- cgit v1.1