summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MediaPlayerService.cpp
diff options
context:
space:
mode:
authorJohn Grossman <johngro@google.com>2012-08-24 14:47:25 -0700
committerJohn Grossman <johngro@google.com>2012-09-06 12:33:35 -0700
commit5f7e55ea443c80ef8b6173efd1c2551e07309b0a (patch)
tree4cd31563d1b3922b7b04ae6ced11eb8c0d918399 /media/libmediaplayerservice/MediaPlayerService.cpp
parented68d9acdd5eae0ca6a3a6eebb99c104784707e4 (diff)
downloadframeworks_av-5f7e55ea443c80ef8b6173efd1c2551e07309b0a.zip
frameworks_av-5f7e55ea443c80ef8b6173efd1c2551e07309b0a.tar.gz
frameworks_av-5f7e55ea443c80ef8b6173efd1c2551e07309b0a.tar.bz2
Add a small hook to support gapless in AAH.
Change-Id: Ie07eca6b45142bdd83412ee0e38d732a4c355630
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 423d6ce..6b57c48 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -922,15 +922,22 @@ status_t MediaPlayerService::Client::setNextPlayer(const sp<IMediaPlayer>& playe
Mutex::Autolock l(mLock);
sp<Client> c = static_cast<Client*>(player.get());
mNextClient = c;
- if (mAudioOutput != NULL && c != NULL) {
- mAudioOutput->setNextOutput(c->mAudioOutput);
- } else {
- ALOGE("no current audio output");
+
+ if (c != NULL) {
+ if (mAudioOutput != NULL) {
+ mAudioOutput->setNextOutput(c->mAudioOutput);
+ } else if ((mPlayer != NULL) && !mPlayer->hardwareOutput()) {
+ ALOGE("no current audio output");
+ }
+
+ if ((mPlayer != NULL) && (mNextClient->getPlayer() != NULL)) {
+ mPlayer->setNextPlayer(mNextClient->getPlayer());
+ }
}
+
return OK;
}
-
status_t MediaPlayerService::Client::seekTo(int msec)
{
ALOGV("[%d] seekTo(%d)", mConnId, msec);