diff options
author | shubang <shubang@google.com> | 2020-08-12 11:14:39 -0700 |
---|---|---|
committer | Henry Fang <quxiangfang@google.com> | 2020-12-29 20:14:47 +0000 |
commit | 150c5afd8075e253895b95d0b01083bf6e130c65 (patch) | |
tree | a5f8b654b3815c27db9e22d6aaa515f6d60e3dbc | |
parent | eec09803da33c931644f8cabfefd0d9a72547862 (diff) |
Release resource before send MSG_RESOURCE_LOST message to TIS
Bug: 163397430
Test: mmm
Change-Id: I68e0c8704030e2a5713a5b63cffe8a1fb40873fc
Merged-In: I68e0c8704030e2a5713a5b63cffe8a1fb40873fc
-rw-r--r-- | media/java/android/media/tv/tuner/Tuner.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index 8bf688dba10b..e148d0e29b5a 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -362,6 +362,11 @@ public class Tuner implements AutoCloseable { */ @Override public void close() { + releaseAll(); + TunerUtils.throwExceptionForResult(nativeClose(), "failed to close tuner"); + } + + private void releaseAll() { if (mFrontendHandle != null) { int res = nativeCloseFrontend(mFrontendHandle); if (res != Tuner.RESULT_SUCCESS) { @@ -396,9 +401,9 @@ public class Tuner implements AutoCloseable { TunerUtils.throwExceptionForResult(res, "failed to close demux"); } mTunerResourceManager.releaseDemux(mDemuxHandle, mClientId); - mFrontendHandle = null; + mDemuxHandle = null; } - TunerUtils.throwExceptionForResult(nativeClose(), "failed to close tuner"); + } /** @@ -495,6 +500,7 @@ public class Tuner implements AutoCloseable { break; } case MSG_RESOURCE_LOST: { + releaseAll(); if (mOnResourceLostListener != null && mOnResourceLostListenerExecutor != null) { mOnResourceLostListenerExecutor.execute( |