Loading media/libmediaplayerservice/MediaPlayerService.cpp +15 −6 Original line number Diff line number Diff line Loading @@ -1845,7 +1845,7 @@ status_t MediaPlayerService::AudioOutput::open( mCallbackData->setOutput(this); } delete newcbd; return OK; return updateTrack(); } } Loading @@ -1867,17 +1867,26 @@ status_t MediaPlayerService::AudioOutput::open( mFrameSize = t->frameSize(); mTrack = t; return updateTrack(); } status_t MediaPlayerService::AudioOutput::updateTrack() { if (mTrack == NULL) { return NO_ERROR; } status_t res = NO_ERROR; // Note some output devices may give us a direct track even though we don't specify it. // Example: Line application b/17459982. if ((t->getFlags() & (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD | AUDIO_OUTPUT_FLAG_DIRECT)) == 0) { res = t->setPlaybackRate(mPlaybackRate); if ((mTrack->getFlags() & (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD | AUDIO_OUTPUT_FLAG_DIRECT)) == 0) { res = mTrack->setPlaybackRate(mPlaybackRate); if (res == NO_ERROR) { t->setAuxEffectSendLevel(mSendLevel); res = t->attachAuxEffect(mAuxEffectId); mTrack->setAuxEffectSendLevel(mSendLevel); res = mTrack->attachAuxEffect(mAuxEffectId); } } ALOGV("open() DONE status %d", res); ALOGV("updateTrack() DONE status %d", res); return res; } Loading media/libmediaplayerservice/MediaPlayerService.h +1 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ class MediaPlayerService : public BnMediaPlayerService int event, void *me, void *info); void deleteRecycledTrack_l(); void close_l(); status_t updateTrack(); sp<AudioTrack> mTrack; sp<AudioTrack> mRecycledTrack; Loading Loading
media/libmediaplayerservice/MediaPlayerService.cpp +15 −6 Original line number Diff line number Diff line Loading @@ -1845,7 +1845,7 @@ status_t MediaPlayerService::AudioOutput::open( mCallbackData->setOutput(this); } delete newcbd; return OK; return updateTrack(); } } Loading @@ -1867,17 +1867,26 @@ status_t MediaPlayerService::AudioOutput::open( mFrameSize = t->frameSize(); mTrack = t; return updateTrack(); } status_t MediaPlayerService::AudioOutput::updateTrack() { if (mTrack == NULL) { return NO_ERROR; } status_t res = NO_ERROR; // Note some output devices may give us a direct track even though we don't specify it. // Example: Line application b/17459982. if ((t->getFlags() & (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD | AUDIO_OUTPUT_FLAG_DIRECT)) == 0) { res = t->setPlaybackRate(mPlaybackRate); if ((mTrack->getFlags() & (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD | AUDIO_OUTPUT_FLAG_DIRECT)) == 0) { res = mTrack->setPlaybackRate(mPlaybackRate); if (res == NO_ERROR) { t->setAuxEffectSendLevel(mSendLevel); res = t->attachAuxEffect(mAuxEffectId); mTrack->setAuxEffectSendLevel(mSendLevel); res = mTrack->attachAuxEffect(mAuxEffectId); } } ALOGV("open() DONE status %d", res); ALOGV("updateTrack() DONE status %d", res); return res; } Loading
media/libmediaplayerservice/MediaPlayerService.h +1 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ class MediaPlayerService : public BnMediaPlayerService int event, void *me, void *info); void deleteRecycledTrack_l(); void close_l(); status_t updateTrack(); sp<AudioTrack> mTrack; sp<AudioTrack> mRecycledTrack; Loading