diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 33 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 6 | ||||
-rw-r--r-- | services/audioflinger/AudioMixer.cpp | 37 | ||||
-rw-r--r-- | services/audioflinger/AudioMixer.h | 5 |
4 files changed, 36 insertions, 45 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 2090f1b..89f64a1 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -35,6 +35,7 @@ #include <cutils/bitops.h> #include <cutils/properties.h> +#include <cutils/compiler.h> #include <media/AudioTrack.h> #include <media/AudioRecord.h> @@ -1930,8 +1931,8 @@ bool AudioFlinger::MixerThread::threadLoop() const SortedVector< wp<Track> >& activeTracks = mActiveTracks; // put audio hardware into standby after short delay - if UNLIKELY((!activeTracks.size() && systemTime() > standbyTime) || - mSuspended) { + if (CC_UNLIKELY((!activeTracks.size() && systemTime() > standbyTime) || + mSuspended)) { if (!mStandby) { ALOGV("Audio hardware entering standby, mixer %p, mSuspended %d\n", this, mSuspended); mOutput->stream->common.standby(&mOutput->stream->common); @@ -1976,7 +1977,7 @@ bool AudioFlinger::MixerThread::threadLoop() lockEffectChains_l(effectChains); } - if (LIKELY(mixerStatus == MIXER_TRACKS_READY)) { + if (CC_LIKELY(mixerStatus == MIXER_TRACKS_READY)) { // mix buffers... mAudioMixer->process(); sleepTime = 0; @@ -2256,7 +2257,7 @@ uint32_t AudioFlinger::MixerThread::prepareTracks_l(const SortedVector< wp<Track // remove all the tracks that need to be... count = tracksToRemove->size(); - if (UNLIKELY(count)) { + if (CC_UNLIKELY(count)) { for (size_t i=0 ; i<count ; i++) { const sp<Track>& track = tracksToRemove->itemAt(i); mActiveTracks.remove(track); @@ -2591,8 +2592,8 @@ bool AudioFlinger::DirectOutputThread::threadLoop() } // put audio hardware into standby after short delay - if UNLIKELY((!mActiveTracks.size() && systemTime() > standbyTime) || - mSuspended) { + if (CC_UNLIKELY((!mActiveTracks.size() && systemTime() > standbyTime) || + mSuspended)) { // wait until we have something to do... if (!mStandby) { ALOGV("Audio hardware entering standby, mixer %p\n", this); @@ -2742,7 +2743,7 @@ bool AudioFlinger::DirectOutputThread::threadLoop() } // remove all the tracks that need to be... - if (UNLIKELY(trackToRemove != 0)) { + if (CC_UNLIKELY(trackToRemove != 0)) { mActiveTracks.remove(trackToRemove); if (!effectChains.isEmpty()) { ALOGV("stopping track on chain %p for session Id: %d", effectChains[0].get(), @@ -2757,7 +2758,7 @@ bool AudioFlinger::DirectOutputThread::threadLoop() lockEffectChains_l(effectChains); } - if (LIKELY(mixerStatus == MIXER_TRACKS_READY)) { + if (CC_LIKELY(mixerStatus == MIXER_TRACKS_READY)) { AudioBufferProvider::Buffer buffer; size_t frameCount = mFrameCount; curBuf = (int8_t *)mMixBuffer; @@ -2765,7 +2766,7 @@ bool AudioFlinger::DirectOutputThread::threadLoop() while (frameCount) { buffer.frameCount = frameCount; activeTrack->getNextBuffer(&buffer); - if (UNLIKELY(buffer.raw == NULL)) { + if (CC_UNLIKELY(buffer.raw == NULL)) { memset(curBuf, 0, frameCount * mFrameSize); break; } @@ -2984,8 +2985,8 @@ bool AudioFlinger::DuplicatingThread::threadLoop() } // put audio hardware into standby after short delay - if UNLIKELY((!activeTracks.size() && systemTime() > standbyTime) || - mSuspended) { + if (CC_UNLIKELY((!activeTracks.size() && systemTime() > standbyTime) || + mSuspended)) { if (!mStandby) { for (size_t i = 0; i < outputTracks.size(); i++) { outputTracks[i]->stop(); @@ -3030,7 +3031,7 @@ bool AudioFlinger::DuplicatingThread::threadLoop() lockEffectChains_l(effectChains); } - if (LIKELY(mixerStatus == MIXER_TRACKS_READY)) { + if (CC_LIKELY(mixerStatus == MIXER_TRACKS_READY)) { // mix buffers... if (outputsReady(outputTracks)) { mAudioMixer->process(); @@ -3443,7 +3444,7 @@ status_t AudioFlinger::PlaybackThread::Track::getNextBuffer(AudioBufferProvider: framesReady = cblk->framesReady(); - if (LIKELY(framesReady)) { + if (CC_LIKELY(framesReady)) { uint32_t s = cblk->server; uint32_t bufferEnd = cblk->serverBase + cblk->frameCount; @@ -3692,7 +3693,7 @@ status_t AudioFlinger::RecordThread::RecordTrack::getNextBuffer(AudioBufferProvi framesAvail = cblk->framesAvailable_l(); - if (LIKELY(framesAvail)) { + if (CC_LIKELY(framesAvail)) { uint32_t s = cblk->server; uint32_t bufferEnd = cblk->serverBase + cblk->frameCount; @@ -3945,7 +3946,7 @@ status_t AudioFlinger::PlaybackThread::OutputTrack::obtainBuffer(AudioBufferProv goto start_loop_here; while (framesAvail == 0) { active = mActive; - if (UNLIKELY(!active)) { + if (CC_UNLIKELY(!active)) { ALOGV("Not active and NO_MORE_BUFFERS"); return AudioTrack::NO_MORE_BUFFERS; } @@ -4323,7 +4324,7 @@ bool AudioFlinger::RecordThread::threadLoop() } buffer.frameCount = mFrameCount; - if (LIKELY(mActiveTrack->getNextBuffer(&buffer) == NO_ERROR)) { + if (CC_LIKELY(mActiveTrack->getNextBuffer(&buffer) == NO_ERROR)) { size_t framesOut = buffer.frameCount; if (mResampler == NULL) { // no resampling diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 9707cf4..7baa8fc 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -55,12 +55,6 @@ class AudioResampler; // ---------------------------------------------------------------------------- -#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true )) -#define UNLIKELY( exp ) (__builtin_expect( (exp) != 0, false )) - - -// ---------------------------------------------------------------------------- - static const nsecs_t kStandbyTimeInNsecs = seconds(3); class AudioFlinger : diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp index 89f7b65..9da18be 100644 --- a/services/audioflinger/AudioMixer.cpp +++ b/services/audioflinger/AudioMixer.cpp @@ -28,6 +28,7 @@ #include <utils/Log.h> #include <cutils/bitops.h> +#include <cutils/compiler.h> #include <system/audio.h> @@ -489,13 +490,13 @@ void AudioMixer::track__genericResample(track_t* t, int32_t* out, size_t outFram t->resampler->setVolume(UNITY_GAIN, UNITY_GAIN); memset(temp, 0, outFrameCount * MAX_NUM_CHANNELS * sizeof(int32_t)); t->resampler->resample(temp, outFrameCount, t->bufferProvider); - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc)) { volumeRampStereo(t, out, outFrameCount, temp, aux); } else { volumeStereo(t, out, outFrameCount, temp, aux); } } else { - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1])) { t->resampler->setVolume(UNITY_GAIN, UNITY_GAIN); memset(temp, 0, outFrameCount * MAX_NUM_CHANNELS * sizeof(int32_t)); t->resampler->resample(temp, outFrameCount, t->bufferProvider); @@ -526,7 +527,7 @@ void AudioMixer::volumeRampStereo(track_t* t, int32_t* out, size_t frameCount, i // (vl + vlInc*frameCount)/65536.0f, frameCount); // ramp volume - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { int32_t va = t->prevAuxLevel; const int32_t vaInc = t->auxInc; int32_t l; @@ -561,7 +562,7 @@ void AudioMixer::volumeStereo(track_t* t, int32_t* out, size_t frameCount, int32 const int16_t vl = t->volume[0]; const int16_t vr = t->volume[1]; - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { const int16_t va = (int16_t)t->auxLevel; do { int16_t l = (int16_t)(*temp++ >> 12); @@ -588,11 +589,11 @@ void AudioMixer::track__16BitsStereo(track_t* t, int32_t* out, size_t frameCount { int16_t const *in = static_cast<int16_t const *>(t->in); - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { int32_t l; int32_t r; // ramp gain - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc)) { int32_t vl = t->prevVolume[0]; int32_t vr = t->prevVolume[1]; int32_t va = t->prevAuxLevel; @@ -637,7 +638,7 @@ void AudioMixer::track__16BitsStereo(track_t* t, int32_t* out, size_t frameCount } } else { // ramp gain - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1])) { int32_t vl = t->prevVolume[0]; int32_t vr = t->prevVolume[1]; const int32_t vlInc = t->volumeInc[0]; @@ -678,9 +679,9 @@ void AudioMixer::track__16BitsMono(track_t* t, int32_t* out, size_t frameCount, { int16_t const *in = static_cast<int16_t const *>(t->in); - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { // ramp gain - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1]|t->auxInc)) { int32_t vl = t->prevVolume[0]; int32_t vr = t->prevVolume[1]; int32_t va = t->prevAuxLevel; @@ -723,7 +724,7 @@ void AudioMixer::track__16BitsMono(track_t* t, int32_t* out, size_t frameCount, } } else { // ramp gain - if UNLIKELY(t->volumeInc[0]|t->volumeInc[1]) { + if (CC_UNLIKELY(t->volumeInc[0]|t->volumeInc[1])) { int32_t vl = t->prevVolume[0]; int32_t vr = t->prevVolume[1]; const int32_t vlInc = t->volumeInc[0]; @@ -776,7 +777,7 @@ void AudioMixer::process__nop(state_t* state) i = 31 - __builtin_clz(e2); e2 &= ~(1<<i); track_t& t2 = state->tracks[i]; - if UNLIKELY(t2.mainBuffer != t1.mainBuffer) { + if (CC_UNLIKELY(t2.mainBuffer != t1.mainBuffer)) { e1 &= ~(1<<i); } } @@ -834,7 +835,7 @@ void AudioMixer::process__genericNoResampling(state_t* state) j = 31 - __builtin_clz(e2); e2 &= ~(1<<j); track_t& t2 = state->tracks[j]; - if UNLIKELY(t2.mainBuffer != t1.mainBuffer) { + if (CC_UNLIKELY(t2.mainBuffer != t1.mainBuffer)) { e1 &= ~(1<<j); } } @@ -851,7 +852,7 @@ void AudioMixer::process__genericNoResampling(state_t* state) track_t& t = state->tracks[i]; size_t outFrames = BLOCKSIZE; int32_t *aux = NULL; - if UNLIKELY((t.needs & NEEDS_AUX__MASK) == NEEDS_AUX_ENABLED) { + if (CC_UNLIKELY((t.needs & NEEDS_AUX__MASK) == NEEDS_AUX_ENABLED)) { aux = t.auxBuffer + numFrames; } while (outFrames) { @@ -860,7 +861,7 @@ void AudioMixer::process__genericNoResampling(state_t* state) (t.hook)(&t, outTemp + (BLOCKSIZE-outFrames)*MAX_NUM_CHANNELS, inFrames, state->resampleTemp, aux); t.frameCount -= inFrames; outFrames -= inFrames; - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { aux += inFrames; } } @@ -915,7 +916,7 @@ void AudioMixer::process__genericResampling(state_t* state) j = 31 - __builtin_clz(e2); e2 &= ~(1<<j); track_t& t2 = state->tracks[j]; - if UNLIKELY(t2.mainBuffer != t1.mainBuffer) { + if (CC_UNLIKELY(t2.mainBuffer != t1.mainBuffer)) { e1 &= ~(1<<j); } } @@ -927,7 +928,7 @@ void AudioMixer::process__genericResampling(state_t* state) e1 &= ~(1<<i); track_t& t = state->tracks[i]; int32_t *aux = NULL; - if UNLIKELY((t.needs & NEEDS_AUX__MASK) == NEEDS_AUX_ENABLED) { + if (CC_UNLIKELY((t.needs & NEEDS_AUX__MASK) == NEEDS_AUX_ENABLED)) { aux = t.auxBuffer; } @@ -948,7 +949,7 @@ void AudioMixer::process__genericResampling(state_t* state) // been enabled for mixing. if (t.in == NULL) break; - if UNLIKELY(aux != NULL) { + if (CC_UNLIKELY(aux != NULL)) { aux += outFrames; } (t.hook)(&t, outTemp + outFrames*MAX_NUM_CHANNELS, t.buffer.frameCount, state->resampleTemp, aux); @@ -990,7 +991,7 @@ void AudioMixer::process__OneTrack16BitsStereoNoResampling(state_t* state) } size_t outFrames = b.frameCount; - if (UNLIKELY(uint32_t(vl) > UNITY_GAIN || uint32_t(vr) > UNITY_GAIN)) { + if (CC_UNLIKELY(uint32_t(vl) > UNITY_GAIN || uint32_t(vr) > UNITY_GAIN)) { // volume is boosted, so we might need to clamp even though // we process only one track. do { diff --git a/services/audioflinger/AudioMixer.h b/services/audioflinger/AudioMixer.h index 70464fc..05f405f 100644 --- a/services/audioflinger/AudioMixer.h +++ b/services/audioflinger/AudioMixer.h @@ -28,11 +28,6 @@ namespace android { // ---------------------------------------------------------------------------- -#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true )) -#define UNLIKELY( exp ) (__builtin_expect( (exp) != 0, false )) - -// ---------------------------------------------------------------------------- - class AudioMixer { public: |