Loading media/libaudioclient/AudioEffect.cpp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -135,7 +135,11 @@ status_t AudioEffect::set(const effect_uuid_t *type, &mStatus, &mId, &enabled); &mStatus, &mId, &enabled); if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); char typeBuffer[64], uuidBuffer[64]; guidToString(type, typeBuffer, sizeof(typeBuffer)); guidToString(uuid, uuidBuffer, sizeof(uuidBuffer)); ALOGE("set(): AudioFlinger could not create effect %s / %s, status: %d", typeBuffer, uuidBuffer, mStatus); if (iEffect == 0) { if (iEffect == 0) { mStatus = NO_INIT; mStatus = NO_INIT; } } Loading services/audioflinger/AudioFlinger.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -2603,7 +2603,7 @@ void AudioFlinger::purgeStaleEffects_l() { while (ec->mEffects.size()) { while (ec->mEffects.size()) { sp<EffectModule> effect = ec->mEffects[0]; sp<EffectModule> effect = ec->mEffects[0]; effect->unPin(); effect->unPin(); t->removeEffect_l(effect); t->removeEffect_l(effect, /*release*/ true); if (effect->purgeHandles()) { if (effect->purgeHandles()) { t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId()); t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId()); } } Loading services/audioflinger/Effects.cpp +12 −15 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_visualizer.h> #include <system/audio_effects/effect_visualizer.h> #include <audio_utils/primitives.h> #include <audio_utils/primitives.h> #include <media/AudioEffect.h> #include <media/audiohal/EffectHalInterface.h> #include <media/audiohal/EffectHalInterface.h> #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/EffectsFactoryHalInterface.h> Loading Loading @@ -109,7 +110,10 @@ AudioFlinger::EffectModule::~EffectModule() { { ALOGV("Destructor %p", this); ALOGV("Destructor %p", this); if (mEffectInterface != 0) { if (mEffectInterface != 0) { ALOGW("EffectModule %p destructor called with unreleased interface", this); char uuidStr[64]; AudioEffect::guidToString(&mDescriptor.uuid, uuidStr, sizeof(uuidStr)); ALOGW("EffectModule %p destructor called with unreleased interface, effect %s", this, uuidStr); release_l(); release_l(); } } Loading Loading @@ -1081,18 +1085,12 @@ void AudioFlinger::EffectModule::dump(int fd, const Vector<String16>& args __unu result.append(buffer); result.append(buffer); result.append("\t\tDescriptor:\n"); result.append("\t\tDescriptor:\n"); snprintf(buffer, SIZE, "\t\t- UUID: %08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X\n", char uuidStr[64]; mDescriptor.uuid.timeLow, mDescriptor.uuid.timeMid, mDescriptor.uuid.timeHiAndVersion, AudioEffect::guidToString(&mDescriptor.uuid, uuidStr, sizeof(uuidStr)); mDescriptor.uuid.clockSeq, mDescriptor.uuid.node[0], mDescriptor.uuid.node[1], snprintf(buffer, SIZE, "\t\t- UUID: %s\n", uuidStr); mDescriptor.uuid.node[2], mDescriptor.uuid.node[3],mDescriptor.uuid.node[4],mDescriptor.uuid.node[5]); result.append(buffer); result.append(buffer); snprintf(buffer, SIZE, "\t\t- TYPE: %08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X\n", AudioEffect::guidToString(&mDescriptor.type, uuidStr, sizeof(uuidStr)); mDescriptor.type.timeLow, mDescriptor.type.timeMid, snprintf(buffer, SIZE, "\t\t- TYPE: %s\n", uuidStr); mDescriptor.type.timeHiAndVersion, mDescriptor.type.clockSeq, mDescriptor.type.node[0], mDescriptor.type.node[1], mDescriptor.type.node[2], mDescriptor.type.node[3],mDescriptor.type.node[4],mDescriptor.type.node[5]); result.append(buffer); result.append(buffer); snprintf(buffer, SIZE, "\t\t- apiVersion: %08X\n\t\t- flags: %08X (%s)\n", snprintf(buffer, SIZE, "\t\t- apiVersion: %08X\n\t\t- flags: %08X (%s)\n", mDescriptor.apiVersion, mDescriptor.apiVersion, Loading Loading @@ -1306,11 +1304,10 @@ void AudioFlinger::EffectHandle::disconnect(bool unpinIfLast) if (thread != 0) { if (thread != 0) { thread->disconnectEffectHandle(this, unpinIfLast); thread->disconnectEffectHandle(this, unpinIfLast); } else { } else { ALOGW("%s Effect handle %p disconnected after thread destruction", __FUNCTION__, this); // try to cleanup as much as we can // try to cleanup as much as we can sp<EffectModule> effect = mEffect.promote(); sp<EffectModule> effect = mEffect.promote(); if (effect != 0) { if (effect != 0 && effect->disconnectHandle(this, unpinIfLast) > 0) { effect->disconnectHandle(this, unpinIfLast); ALOGW("%s Effect handle %p disconnected after thread destruction", __FUNCTION__, this); } } } } Loading Loading
media/libaudioclient/AudioEffect.cpp +5 −1 Original line number Original line Diff line number Diff line Loading @@ -135,7 +135,11 @@ status_t AudioEffect::set(const effect_uuid_t *type, &mStatus, &mId, &enabled); &mStatus, &mId, &enabled); if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); char typeBuffer[64], uuidBuffer[64]; guidToString(type, typeBuffer, sizeof(typeBuffer)); guidToString(uuid, uuidBuffer, sizeof(uuidBuffer)); ALOGE("set(): AudioFlinger could not create effect %s / %s, status: %d", typeBuffer, uuidBuffer, mStatus); if (iEffect == 0) { if (iEffect == 0) { mStatus = NO_INIT; mStatus = NO_INIT; } } Loading
services/audioflinger/AudioFlinger.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -2603,7 +2603,7 @@ void AudioFlinger::purgeStaleEffects_l() { while (ec->mEffects.size()) { while (ec->mEffects.size()) { sp<EffectModule> effect = ec->mEffects[0]; sp<EffectModule> effect = ec->mEffects[0]; effect->unPin(); effect->unPin(); t->removeEffect_l(effect); t->removeEffect_l(effect, /*release*/ true); if (effect->purgeHandles()) { if (effect->purgeHandles()) { t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId()); t->checkSuspendOnEffectEnabled_l(effect, false, effect->sessionId()); } } Loading
services/audioflinger/Effects.cpp +12 −15 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_visualizer.h> #include <system/audio_effects/effect_visualizer.h> #include <audio_utils/primitives.h> #include <audio_utils/primitives.h> #include <media/AudioEffect.h> #include <media/audiohal/EffectHalInterface.h> #include <media/audiohal/EffectHalInterface.h> #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/EffectsFactoryHalInterface.h> Loading Loading @@ -109,7 +110,10 @@ AudioFlinger::EffectModule::~EffectModule() { { ALOGV("Destructor %p", this); ALOGV("Destructor %p", this); if (mEffectInterface != 0) { if (mEffectInterface != 0) { ALOGW("EffectModule %p destructor called with unreleased interface", this); char uuidStr[64]; AudioEffect::guidToString(&mDescriptor.uuid, uuidStr, sizeof(uuidStr)); ALOGW("EffectModule %p destructor called with unreleased interface, effect %s", this, uuidStr); release_l(); release_l(); } } Loading Loading @@ -1081,18 +1085,12 @@ void AudioFlinger::EffectModule::dump(int fd, const Vector<String16>& args __unu result.append(buffer); result.append(buffer); result.append("\t\tDescriptor:\n"); result.append("\t\tDescriptor:\n"); snprintf(buffer, SIZE, "\t\t- UUID: %08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X\n", char uuidStr[64]; mDescriptor.uuid.timeLow, mDescriptor.uuid.timeMid, mDescriptor.uuid.timeHiAndVersion, AudioEffect::guidToString(&mDescriptor.uuid, uuidStr, sizeof(uuidStr)); mDescriptor.uuid.clockSeq, mDescriptor.uuid.node[0], mDescriptor.uuid.node[1], snprintf(buffer, SIZE, "\t\t- UUID: %s\n", uuidStr); mDescriptor.uuid.node[2], mDescriptor.uuid.node[3],mDescriptor.uuid.node[4],mDescriptor.uuid.node[5]); result.append(buffer); result.append(buffer); snprintf(buffer, SIZE, "\t\t- TYPE: %08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X\n", AudioEffect::guidToString(&mDescriptor.type, uuidStr, sizeof(uuidStr)); mDescriptor.type.timeLow, mDescriptor.type.timeMid, snprintf(buffer, SIZE, "\t\t- TYPE: %s\n", uuidStr); mDescriptor.type.timeHiAndVersion, mDescriptor.type.clockSeq, mDescriptor.type.node[0], mDescriptor.type.node[1], mDescriptor.type.node[2], mDescriptor.type.node[3],mDescriptor.type.node[4],mDescriptor.type.node[5]); result.append(buffer); result.append(buffer); snprintf(buffer, SIZE, "\t\t- apiVersion: %08X\n\t\t- flags: %08X (%s)\n", snprintf(buffer, SIZE, "\t\t- apiVersion: %08X\n\t\t- flags: %08X (%s)\n", mDescriptor.apiVersion, mDescriptor.apiVersion, Loading Loading @@ -1306,11 +1304,10 @@ void AudioFlinger::EffectHandle::disconnect(bool unpinIfLast) if (thread != 0) { if (thread != 0) { thread->disconnectEffectHandle(this, unpinIfLast); thread->disconnectEffectHandle(this, unpinIfLast); } else { } else { ALOGW("%s Effect handle %p disconnected after thread destruction", __FUNCTION__, this); // try to cleanup as much as we can // try to cleanup as much as we can sp<EffectModule> effect = mEffect.promote(); sp<EffectModule> effect = mEffect.promote(); if (effect != 0) { if (effect != 0 && effect->disconnectHandle(this, unpinIfLast) > 0) { effect->disconnectHandle(this, unpinIfLast); ALOGW("%s Effect handle %p disconnected after thread destruction", __FUNCTION__, this); } } } } Loading