diff options
author | Tejas Shikhare <tshikhar@codeaurora.org> | 2012-04-30 17:05:13 -0700 |
---|---|---|
committer | Giulio Cervera <giulio.cervera@gmail.com> | 2012-05-31 01:57:11 +0200 |
commit | 283df8ca2e87c89ddb9952957319191281eba818 (patch) | |
tree | f09fe0a6e2f0d28eedcc80b3f2a7a221a762c471 /media | |
parent | 524c0d41f151595f581ca47c0a61b5cd8f74e8a1 (diff) | |
download | frameworks_base-283df8ca2e87c89ddb9952957319191281eba818.zip frameworks_base-283df8ca2e87c89ddb9952957319191281eba818.tar.gz frameworks_base-283df8ca2e87c89ddb9952957319191281eba818.tar.bz2 |
frameworks/base: Enable LPA for music stream only.
Enable LPA playback for music streams only. There are no
significant power savings for using LPA with other modes like
ringtone.
CRs-Fixed: 357327
(cherry picked from commit 75484628e5a915422f822b9759cb3ce8f9c4f0ad)
Change-Id: Ibd3940f74bd6b0cf2446e1159640d39a107c2929
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.h | 6 | ||||
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h index 2b66b7a..24a8d09 100644 --- a/media/libmediaplayerservice/MediaPlayerService.h +++ b/media/libmediaplayerservice/MediaPlayerService.h @@ -103,6 +103,9 @@ class MediaPlayerService : public BnMediaPlayerService virtual void closeSession(); #endif void setAudioStreamType(int streamType) { mStreamType = streamType; } +#ifdef WITH_QCOM_LPA + virtual int getAudioStreamType() { return mStreamType; } +#endif void setVolume(float left, float right); status_t setAuxEffectSendLevel(float level); status_t attachAuxEffect(int effectId); @@ -162,6 +165,9 @@ class MediaPlayerService : public BnMediaPlayerService virtual void pause() {} virtual void close() {} void setAudioStreamType(int streamType) {} +#ifdef WITH_QCOM_LPA + virtual int getAudioStreamType() { return 0; } +#endif void setVolume(float left, float right) {} uint32_t sampleRate() const { return mSampleRate; } uint32_t format() const { return (uint32_t)mFormat; } diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index a2b120b..6da986a 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -936,10 +936,11 @@ status_t AwesomePlayer::play_l() { if(strcmp("true",lpaDecode) == 0) { LOGV("LPAPlayer::getObjectsAlive() %d",LPAPlayer::objectsAlive); + int streamType = mAudioSink->getAudioStreamType(); if ( durationUs > 60000000 && !isFormatAdif - &&(!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG) || !strcasecmp(mime,MEDIA_MIMETYPE_AUDIO_AAC)) - && LPAPlayer::objectsAlive == 0 && mVideoSource == NULL) { - LOGE("LPAPlayer created, LPA MODE detected mime %s duration %d\n", mime, durationUs); + && (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG) || !strcasecmp(mime,MEDIA_MIMETYPE_AUDIO_AAC)) + && LPAPlayer::objectsAlive == 0 && mVideoSource == NULL && streamType == AUDIO_STREAM_MUSIC) { + LOGE("LPAPlayer created, LPA MODE detected mime %s duration %lld AudioStream %d", mime, durationUs,streamType); bool initCheck = false; mAudioPlayer = new LPAPlayer(mAudioSink, initCheck, this); if(!initCheck) { |