summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MediaPlayerService.cpp
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-06-01 15:53:14 -0700
committerAndy Hung <hunga@google.com>2015-06-03 13:58:39 -0700
commitda17c04fa1c81ff8ffa8160df06fa5031a7884f4 (patch)
tree8f8de9064479ea370b7d5c97dd7de61cc593f018 /media/libmediaplayerservice/MediaPlayerService.cpp
parent0eafa9d8ee4069aa709ff85ceffe94d12995956d (diff)
downloadframeworks_av-da17c04fa1c81ff8ffa8160df06fa5031a7884f4.zip
frameworks_av-da17c04fa1c81ff8ffa8160df06fa5031a7884f4.tar.gz
frameworks_av-da17c04fa1c81ff8ffa8160df06fa5031a7884f4.tar.bz2
MediaPlayerService: Reset the bytes written in AudioSink stop and flush
When playing in non-offloaded mode with gapless playback it is necessary to reset AudioSink's bytes written on stop and flush (e.g. seeking) so the frames written can be correctly retrieved for the subsequent song in NuPlayer::Renderer::onAudioSinkChanged(). Without this change, seeks performed during playback will cause a time position offset of the subsequent song in Play Music. Bug: 21198655 Change-Id: I0fb6cc94b5a0ff106dc8a71571ed85d75fb00660
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 7c40121..2ba05c0 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -1744,12 +1744,14 @@ ssize_t MediaPlayerService::AudioOutput::write(const void* buffer, size_t size,
void MediaPlayerService::AudioOutput::stop()
{
ALOGV("stop");
+ mBytesWritten = 0;
if (mTrack != 0) mTrack->stop();
}
void MediaPlayerService::AudioOutput::flush()
{
ALOGV("flush");
+ mBytesWritten = 0;
if (mTrack != 0) mTrack->flush();
}