Merge "Tuner FW: fix filter type check." into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-27 04:16:50 +00:00
committed by Android (Google) Code Review
3 changed files with 11 additions and 12 deletions

View File

@@ -447,7 +447,7 @@ public class Tuner implements AutoCloseable {
private native DvrRecorder nativeOpenDvrRecorder(long bufferSize);
private native DvrPlayback nativeOpenDvrPlayback(long bufferSize);
private static native DemuxCapabilities nativeGetDemuxCapabilities();
private native DemuxCapabilities nativeGetDemuxCapabilities();
private native int nativeCloseDemux(int handle);
private native int nativeCloseFrontend(int handle);
@@ -939,8 +939,7 @@ public class Tuner implements AutoCloseable {
Filter filter = nativeOpenFilter(
mainType, TunerUtils.getFilterSubtype(mainType, subType), bufferSize);
if (filter != null) {
filter.setMainType(mainType);
filter.setSubtype(subType);
filter.setType(mainType, subType);
filter.setCallback(cb, executor);
if (mHandler == null) {
mHandler = createEventHandler();
@@ -1147,8 +1146,11 @@ public class Tuner implements AutoCloseable {
}
/* package */ void releaseLnb() {
mTunerResourceManager.releaseLnb(mLnbHandle, mClientId);
mLnbHandle = null;
if (mLnbHandle != null) {
// LNB handle can be null if it's opened by name.
mTunerResourceManager.releaseLnb(mLnbHandle, mClientId);
mLnbHandle = null;
}
mLnb = null;
}
}

View File

@@ -221,12 +221,9 @@ public class Filter implements AutoCloseable {
}
/** @hide */
public void setMainType(@Type int mainType) {
public void setType(@Type int mainType, @Subtype int subtype) {
mMainType = mainType;
}
/** @hide */
public void setSubtype(@Subtype int subtype) {
mSubtype = subtype;
mSubtype = TunerUtils.getFilterSubtype(mainType, subtype);
}
/** @hide */

View File

@@ -2975,7 +2975,7 @@ static jint copyData(JNIEnv *env, std::unique_ptr<MQ>& mq, EventFlag* flag, jbyt
jbyte *dst = env->GetByteArrayElements(buffer, &isCopy);
ALOGD("copyData, isCopy=%d", isCopy);
if (dst == nullptr) {
ALOGD("Failed to GetByteArrayElements");
jniThrowRuntimeException(env, "Failed to GetByteArrayElements");
return 0;
}
@@ -2983,7 +2983,7 @@ static jint copyData(JNIEnv *env, std::unique_ptr<MQ>& mq, EventFlag* flag, jbyt
env->ReleaseByteArrayElements(buffer, dst, 0);
flag->wake(static_cast<uint32_t>(DemuxQueueNotifyBits::DATA_CONSUMED));
} else {
ALOGD("Failed to read FMQ");
jniThrowRuntimeException(env, "Failed to read FMQ");
env->ReleaseByteArrayElements(buffer, dst, 0);
return 0;
}