From adf34bf9b7925f990259b1b6f4c69b8668f76ead Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Wed, 3 Sep 2014 18:22:22 -0700 Subject: NuPlayer: Discard seeks when source and decoders are NULL Problem occurs when loop mode asynchronously seeks to the start of the source after a MediaPlayer::reset(). Bug: 17379148 Change-Id: I50bfe65a753afffb1d478db54c76067a9c61a0ae --- media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'media/libmediaplayerservice/nuplayer/NuPlayer.cpp') diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index ae22123..cf4757e 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -1665,6 +1665,14 @@ void NuPlayer::performSeek(int64_t seekTimeUs) { seekTimeUs, seekTimeUs / 1E6); + if (mSource == NULL) { + // This happens when reset occurs right before the loop mode + // asynchronously seeks to the start of the stream. + LOG_ALWAYS_FATAL_IF(mAudioDecoder != NULL || mVideoDecoder != NULL, + "mSource is NULL and decoders not NULL audio(%p) video(%p)", + mAudioDecoder.get(), mVideoDecoder.get()); + return; + } mSource->seekTo(seekTimeUs); ++mTimedTextGeneration; -- cgit v1.1