Merge "Don't open frontend device if it's a shared frontend" am: 8212f52f44
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1538203 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Id1cc4d914efb70f7cdec2ca0f73b8e6e68c1bb20
This commit is contained in:
@@ -211,6 +211,7 @@ public class Tuner implements AutoCloseable {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private FrontendInfo mFrontendInfo;
|
private FrontendInfo mFrontendInfo;
|
||||||
private Integer mFrontendHandle;
|
private Integer mFrontendHandle;
|
||||||
|
private Boolean mIsSharedFrontend = false;
|
||||||
private int mFrontendType = FrontendSettings.TYPE_UNDEFINED;
|
private int mFrontendType = FrontendSettings.TYPE_UNDEFINED;
|
||||||
private int mUserId;
|
private int mUserId;
|
||||||
private Lnb mLnb;
|
private Lnb mLnb;
|
||||||
@@ -338,8 +339,11 @@ public class Tuner implements AutoCloseable {
|
|||||||
*/
|
*/
|
||||||
public void shareFrontendFromTuner(@NonNull Tuner tuner) {
|
public void shareFrontendFromTuner(@NonNull Tuner tuner) {
|
||||||
mTunerResourceManager.shareFrontend(mClientId, tuner.mClientId);
|
mTunerResourceManager.shareFrontend(mClientId, tuner.mClientId);
|
||||||
|
synchronized (mIsSharedFrontend) {
|
||||||
mFrontendHandle = tuner.mFrontendHandle;
|
mFrontendHandle = tuner.mFrontendHandle;
|
||||||
mFrontend = nativeOpenFrontendByHandle(mFrontendHandle);
|
mFrontend = tuner.mFrontend;
|
||||||
|
mIsSharedFrontend = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -370,10 +374,15 @@ public class Tuner implements AutoCloseable {
|
|||||||
|
|
||||||
private void releaseAll() {
|
private void releaseAll() {
|
||||||
if (mFrontendHandle != null) {
|
if (mFrontendHandle != null) {
|
||||||
|
synchronized (mIsSharedFrontend) {
|
||||||
|
if (!mIsSharedFrontend) {
|
||||||
int res = nativeCloseFrontend(mFrontendHandle);
|
int res = nativeCloseFrontend(mFrontendHandle);
|
||||||
if (res != Tuner.RESULT_SUCCESS) {
|
if (res != Tuner.RESULT_SUCCESS) {
|
||||||
TunerUtils.throwExceptionForResult(res, "failed to close frontend");
|
TunerUtils.throwExceptionForResult(res, "failed to close frontend");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
mIsSharedFrontend = false;
|
||||||
|
}
|
||||||
mTunerResourceManager.releaseFrontend(mFrontendHandle, mClientId);
|
mTunerResourceManager.releaseFrontend(mFrontendHandle, mClientId);
|
||||||
FrameworkStatsLog
|
FrameworkStatsLog
|
||||||
.write(FrameworkStatsLog.TV_TUNER_STATE_CHANGED, mUserId,
|
.write(FrameworkStatsLog.TV_TUNER_STATE_CHANGED, mUserId,
|
||||||
|
|||||||
Reference in New Issue
Block a user