diff options
author | Andy Hung <hunga@google.com> | 2015-06-01 15:53:14 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2015-06-03 13:58:39 -0700 |
commit | da17c04fa1c81ff8ffa8160df06fa5031a7884f4 (patch) | |
tree | 8f8de9064479ea370b7d5c97dd7de61cc593f018 /media/libmediaplayerservice/MediaPlayerService.cpp | |
parent | 0eafa9d8ee4069aa709ff85ceffe94d12995956d (diff) | |
download | frameworks_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.cpp | 2 |
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(); } |