summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Atneya Nair <atneya@google.com> 2023-04-21 16:30:16 -0700
committer Atneya Nair <atneya@google.com> 2023-05-03 15:40:58 -0700
commitc4a891c6bcb9ab2b28c70bfd44c283cab1f43247 (patch)
treed84559be795ce65dd5167e047b4e8f04ec15f1b0
parentabbe7c56383504eeb6edb850f319d8a8b397ae88 (diff)
Revert "Generate an abort event when stopping"
This reverts commit 3b660525f37bdb6c549d9ce483658d4a8f189438. This commit causes deadlocks. Bug: 236826280 Fixes: 274993071 Test: CtsVoiceInteractionTestCases Test: CtsSoundTriggerTestCases Test: Manual verification Change-Id: Ie170e0a2572aae051acc6ec325b5b39afaf761de
-rw-r--r--services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java14
-rw-r--r--services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java33
2 files changed, 2 insertions, 45 deletions
diff --git a/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java b/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
index 5a2451f3b17e..3d963ed4fe37 100644
--- a/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
+++ b/services/tests/voiceinteractiontests/src/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImplTest.java
@@ -225,13 +225,6 @@ public class SoundTriggerMiddlewareImplTest {
// Stop the recognition.
stopRecognition(module, handle, hwHandle);
- ArgumentCaptor<RecognitionEventSys> eventCaptor = ArgumentCaptor.forClass(
- RecognitionEventSys.class);
- verify(callback).onRecognition(eq(handle), eventCaptor.capture(), eq(101));
- RecognitionEventSys lastEvent = eventCaptor.getValue();
- assertEquals(-1, lastEvent.halEventReceivedMillis);
- assertEquals(RecognitionStatus.ABORTED, lastEvent.recognitionEvent.status);
-
// Unload the model.
unloadModel(module, handle, hwHandle);
module.detach();
@@ -276,13 +269,6 @@ public class SoundTriggerMiddlewareImplTest {
// Stop the recognition.
stopRecognition(module, handle, hwHandle);
- ArgumentCaptor<PhraseRecognitionEventSys> eventCaptor = ArgumentCaptor.forClass(
- PhraseRecognitionEventSys.class);
- verify(callback).onPhraseRecognition(eq(handle), eventCaptor.capture(), eq(101));
- PhraseRecognitionEventSys lastEvent = eventCaptor.getValue();
- assertEquals(-1, lastEvent.halEventReceivedMillis);
- assertEquals(RecognitionStatus.ABORTED, lastEvent.phraseRecognitionEvent.common.status);
-
// Unload the model.
unloadModel(module, handle, hwHandle);
module.detach();
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java b/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java
index 84cec5592831..177b4da8fc75 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger_middleware/SoundTriggerModule.java
@@ -23,7 +23,6 @@ import android.media.soundtrigger.PhraseSoundModel;
import android.media.soundtrigger.Properties;
import android.media.soundtrigger.RecognitionConfig;
import android.media.soundtrigger.SoundModel;
-import android.media.soundtrigger.SoundModelType;
import android.media.soundtrigger.Status;
import android.media.soundtrigger_middleware.ISoundTriggerCallback;
import android.media.soundtrigger_middleware.ISoundTriggerModule;
@@ -385,7 +384,6 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo
private class Model implements ISoundTriggerHal.ModelCallback {
public int mHandle;
private ModelState mState = ModelState.INIT;
- private int mType = SoundModelType.INVALID;
private SoundTriggerMiddlewareImpl.AudioSessionProvider.AudioSession mSession;
private @NonNull
@@ -402,7 +400,6 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo
SoundTriggerMiddlewareImpl.AudioSessionProvider.AudioSession audioSession) {
mSession = audioSession;
mHandle = mHalService.loadSoundModel(model, this);
- mType = SoundModelType.GENERIC;
setState(ModelState.LOADED);
mLoadedModels.put(mHandle, this);
return mHandle;
@@ -412,7 +409,7 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo
SoundTriggerMiddlewareImpl.AudioSessionProvider.AudioSession audioSession) {
mSession = audioSession;
mHandle = mHalService.loadPhraseSoundModel(model, this);
- mType = SoundModelType.KEYPHRASE;
+
setState(ModelState.LOADED);
mLoadedModels.put(mHandle, this);
return mHandle;
@@ -441,34 +438,9 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo
return;
}
}
- // This must be invoked outside the lock.
mHalService.stopRecognition(mHandle);
-
- // No more callbacks for this model after this point.
synchronized (SoundTriggerModule.this) {
- // Generate an abortion callback to the client if the model is still active.
- if (getState() == ModelState.ACTIVE) {
- if (mCallback != null) {
- try {
- switch (mType) {
- case SoundModelType.GENERIC:
- mCallback.onRecognition(mHandle, AidlUtil.newAbortEvent(),
- mSession.mSessionHandle);
- break;
- case SoundModelType.KEYPHRASE:
- mCallback.onPhraseRecognition(mHandle,
- AidlUtil.newAbortPhraseEvent(),
- mSession.mSessionHandle);
- break;
- default:
- throw new RuntimeException(
- "Unexpected model type: " + mType);
- }
- } catch (RemoteException e) {
- }
- }
- setState(ModelState.LOADED);
- }
+ setState(ModelState.LOADED);
}
}
@@ -559,5 +531,4 @@ class SoundTriggerModule implements IBinder.DeathRecipient, ISoundTriggerHal.Glo
}
}
}
-
}