From fa7d53ccff1ea7c89be1356f03f0b1c893aed3ad Mon Sep 17 00:00:00 2001 From: Amy Zhang Date: Fri, 14 Aug 2020 18:14:48 -0700 Subject: [PATCH] Deprecate int getFecCapability() and add long getCodeRateCapability() instead Test: make Bug: 155436396 Change-Id: I9726d865c4f1e47af63c4b106eace548a9a94ed0 --- api/system-current.txt | 3 ++- core/api/system-current.txt | 3 ++- .../frontend/DvbcFrontendCapabilities.java | 19 +++++++++++++++++-- media/jni/android_media_tv_Tuner.cpp | 4 ++-- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 87f3f4c655202..99b326473b1f2 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5790,7 +5790,8 @@ package android.media.tv.tuner.frontend { public class DvbcFrontendCapabilities extends android.media.tv.tuner.frontend.FrontendCapabilities { method public int getAnnexCapability(); - method public int getFecCapability(); + method public long getCodeRateCapability(); + method @Deprecated public int getFecCapability(); method public int getModulationCapability(); } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index eea50be6da1d7..0ffdf93b153ce 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -5730,7 +5730,8 @@ package android.media.tv.tuner.frontend { public class DvbcFrontendCapabilities extends android.media.tv.tuner.frontend.FrontendCapabilities { method public int getAnnexCapability(); - method public int getFecCapability(); + method public long getCodeRateCapability(); + method @Deprecated public int getFecCapability(); method public int getModulationCapability(); } diff --git a/media/java/android/media/tv/tuner/frontend/DvbcFrontendCapabilities.java b/media/java/android/media/tv/tuner/frontend/DvbcFrontendCapabilities.java index faa54344573a6..948f4a77e361c 100644 --- a/media/java/android/media/tv/tuner/frontend/DvbcFrontendCapabilities.java +++ b/media/java/android/media/tv/tuner/frontend/DvbcFrontendCapabilities.java @@ -26,10 +26,10 @@ import android.annotation.SystemApi; @SystemApi public class DvbcFrontendCapabilities extends FrontendCapabilities { private final int mModulationCap; - private final int mFecCap; + private final long mFecCap; private final int mAnnexCap; - private DvbcFrontendCapabilities(int modulationCap, int fecCap, int annexCap) { + private DvbcFrontendCapabilities(int modulationCap, long fecCap, int annexCap) { mModulationCap = modulationCap; mFecCap = fecCap; mAnnexCap = annexCap; @@ -44,9 +44,24 @@ public class DvbcFrontendCapabilities extends FrontendCapabilities { } /** * Gets inner FEC capability. + * + * @deprecated Use {@link getInnerFecCapability()} with long return value instead. This function + * returns the correct cap value when the value is not bigger than the max integer + * value. Otherwise it returns {@link FrontendSettings#FEC_UNDEFINED}. */ + @Deprecated @FrontendSettings.InnerFec public int getFecCapability() { + if (mFecCap > Integer.MAX_VALUE) { + return (int) FrontendSettings.FEC_UNDEFINED; + } + return (int) mFecCap; + } + /** + * Gets code rate capability. + */ + @FrontendSettings.InnerFec + public long getCodeRateCapability() { return mFecCap; } /** diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp index 1be0d4439e693..ab97f74724e71 100644 --- a/media/jni/android_media_tv_Tuner.cpp +++ b/media/jni/android_media_tv_Tuner.cpp @@ -1226,10 +1226,10 @@ jobject JTuner::getAtscFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilit jobject JTuner::getDvbcFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities& caps) { jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbcFrontendCapabilities"); - jmethodID capsInit = env->GetMethodID(clazz, "", "(III)V"); + jmethodID capsInit = env->GetMethodID(clazz, "", "(IJI)V"); jint modulationCap = caps.dvbcCaps().modulationCap; - jint fecCap = caps.dvbcCaps().fecCap; + jlong fecCap = caps.dvbcCaps().fecCap; jint annexCap = caps.dvbcCaps().annexCap; return env->NewObject(clazz, capsInit, modulationCap, fecCap, annexCap);