summaryrefslogtreecommitdiffstats
path: root/media/libeffects/lvm
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-08-31 13:50:07 -0700
committerEric Laurent <elaurent@google.com>2010-08-31 15:26:23 -0700
commit8f45bd725549436eeacd12ee69349e2332ed8da5 (patch)
treed1f48f9af5991d462fb22fb37a5dd0a3d7f2251a /media/libeffects/lvm
parent06124758ff402512f3c7a5fb2b35d8d09a0d6c2e (diff)
downloadframeworks_av-8f45bd725549436eeacd12ee69349e2332ed8da5.zip
frameworks_av-8f45bd725549436eeacd12ee69349e2332ed8da5.tar.gz
frameworks_av-8f45bd725549436eeacd12ee69349e2332ed8da5.tar.bz2
Audio Effects: fix problems in volume control.
- Fixed click when re-enabling effect during the turn off phase: make sure the effect states where effect is processed are the same where volume control is delegated to effect. - Fixed click when effect is deleted while still active: do not apply volume ramp if an effect having volume control was just removed from the effect chain. Also fixed a crash when PCM dump is enabled in effect bundle wrapper. Change-Id: Ib562f5cf75c69af75df0e862536262e2514493e4
Diffstat (limited to 'media/libeffects/lvm')
-rw-r--r--media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
index d3bb96e..7297811 100644
--- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
+++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
@@ -258,16 +258,24 @@ extern "C" int EffectCreate(effect_uuid_t *uuid,
pContext->pBundledContext->firstVolume = LVM_TRUE;
#ifdef LVM_PCM
- pContext->pBundledContext->PcmInPtr = NULL;
- pContext->pBundledContext->PcmOutPtr = NULL;
- pContext->pBundledContext->PcmInPtr = fopen("/data/tmp/bundle_pcm_in.pcm", "w");
- pContext->pBundledContext->PcmOutPtr = fopen("/data/tmp/bundle_pcm_out.pcm", "w");
+ char fileName[256];
+ snprintf(fileName, 256, "/data/tmp/bundle_%p_pcm_in.pcm", pContext->pBundledContext);
+ pContext->pBundledContext->PcmInPtr = fopen(fileName, "w");
+ if (pContext->pBundledContext->PcmInPtr == NULL) {
+ LOGV("cannot open %s", fileName);
+ return -EINVAL;
+ }
- if((pContext->pBundledContext->PcmInPtr == NULL)||
- (pContext->pBundledContext->PcmOutPtr == NULL)){
+ snprintf(fileName, 256, "/data/tmp/bundle_%p_pcm_out.pcm", pContext->pBundledContext);
+ pContext->pBundledContext->PcmOutPtr = fopen(fileName, "w");
+ if (pContext->pBundledContext->PcmOutPtr == NULL) {
+ LOGV("cannot open %s", fileName);
+ fclose(pContext->pBundledContext->PcmInPtr);
+ pContext->pBundledContext->PcmInPtr = NULL;
return -EINVAL;
}
+
#endif
/* Saved strength is used to return the exact strength that was used in the set to the get
@@ -375,8 +383,14 @@ extern "C" int EffectRelease(effect_interface_t interface){
(GlobalSessionMemory[pContext->pBundledContext->SessionNo].bVirtualizerInstantiated==LVM_FALSE))
{
#ifdef LVM_PCM
- fclose(pContext->pBundledContext->PcmInPtr);
- fclose(pContext->pBundledContext->PcmOutPtr);
+ if (pContext->pBundledContext->PcmInPtr != NULL) {
+ fclose(pContext->pBundledContext->PcmInPtr);
+ pContext->pBundledContext->PcmInPtr = NULL;
+ }
+ if (pContext->pBundledContext->PcmOutPtr != NULL) {
+ fclose(pContext->pBundledContext->PcmOutPtr);
+ pContext->pBundledContext->PcmOutPtr = NULL;
+ }
#endif
LvmSessionsActive--;