diff options
| author | 2023-04-21 16:30:16 -0700 | |
|---|---|---|
| committer | 2023-05-03 15:40:58 -0700 | |
| commit | c4a891c6bcb9ab2b28c70bfd44c283cab1f43247 (patch) | |
| tree | d84559be795ce65dd5167e047b4e8f04ec15f1b0 | |
| parent | abbe7c56383504eeb6edb850f319d8a8b397ae88 (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
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 } } } - } |