diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java index 5c6a69682b61d..8043c651751ce 100644 --- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java +++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java @@ -742,7 +742,10 @@ class TvInputHardwareManager implements TvInputHal.Callback { synchronized (mImplLock) { mAudioSource = null; mAudioSink.clear(); - mAudioPatch = null; + if (mAudioPatch != null) { + mAudioManager.releaseAudioPatch(mAudioPatch); + mAudioPatch = null; + } } } }; @@ -980,6 +983,9 @@ class TvInputHardwareManager implements TvInputHal.Callback { } if (shouldRecreateAudioPatch) { mCommittedVolume = volume; + if (mAudioPatch != null) { + mAudioManager.releaseAudioPatch(mAudioPatch); + } mAudioManager.createAudioPatch( audioPatchArray, new AudioPortConfig[] { sourceConfig },