diff --git a/core/api/system-current.txt b/core/api/system-current.txt index f9519f845d5c5..0e6007c8049ec 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -5253,7 +5253,7 @@ package android.media.tv.tuner.filter { public class Filter implements java.lang.AutoCloseable { method public void close(); method public int configure(@NonNull android.media.tv.tuner.filter.FilterConfiguration); - method public int configureScramblingStatusEvent(int); + method public int configureMonitorEvent(int); method public int flush(); method public int getId(); method public long getId64Bit(); @@ -5261,6 +5261,8 @@ package android.media.tv.tuner.filter { method public int setDataSource(@Nullable android.media.tv.tuner.filter.Filter); method public int start(); method public int stop(); + field public static final int MONITOR_EVENT_IP_CID_CHANGE = 2; // 0x2 + field public static final int MONITOR_EVENT_SCRAMBLING_STATUS = 1; // 0x1 field public static final int SCRAMBLING_STATUS_NOT_SCRAMBLED = 2; // 0x2 field public static final int SCRAMBLING_STATUS_SCRAMBLED = 4; // 0x4 field public static final int SCRAMBLING_STATUS_UNKNOWN = 1; // 0x1 @@ -5307,6 +5309,10 @@ package android.media.tv.tuner.filter { ctor public FilterEvent(); } + public final class IpCidChangeEvent extends android.media.tv.tuner.filter.FilterEvent { + method public int getIpCid(); + } + public final class IpFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration { method @NonNull public static android.media.tv.tuner.filter.IpFilterConfiguration.Builder builder(); method @NonNull @Size(min=4, max=16) public byte[] getDstIpAddress(); diff --git a/media/java/android/media/tv/tuner/filter/Filter.java b/media/java/android/media/tv/tuner/filter/Filter.java index 82cc78d7e47d8..451f54caf7f96 100644 --- a/media/java/android/media/tv/tuner/filter/Filter.java +++ b/media/java/android/media/tv/tuner/filter/Filter.java @@ -186,7 +186,7 @@ public class Filter implements AutoCloseable { value = {SCRAMBLING_STATUS_UNKNOWN, SCRAMBLING_STATUS_NOT_SCRAMBLED, SCRAMBLING_STATUS_SCRAMBLED}) @Retention(RetentionPolicy.SOURCE) - public @interface ScramblingStatusMask {} + public @interface ScramblingStatus {} /** * Content’s scrambling status is unknown @@ -204,6 +204,23 @@ public class Filter implements AutoCloseable { public static final int SCRAMBLING_STATUS_SCRAMBLED = android.hardware.tv.tuner.V1_1.Constants.ScramblingStatus.SCRAMBLED; + /** @hide */ + @IntDef(flag = true, + prefix = "MONITOR_EVENT_", + value = {MONITOR_EVENT_SCRAMBLING_STATUS, MONITOR_EVENT_IP_CID_CHANGE}) + @Retention(RetentionPolicy.SOURCE) + public @interface MonitorEventTypeMask {} + + /** + * Monitor scrambling status change. + */ + public static final int MONITOR_EVENT_SCRAMBLING_STATUS = + android.hardware.tv.tuner.V1_1.Constants.DemuxFilterMonitorEventType.SCRAMBLING_STATUS; + /** + * Monitor ip cid change. + */ + public static final int MONITOR_EVENT_IP_CID_CHANGE = + android.hardware.tv.tuner.V1_1.Constants.DemuxFilterMonitorEventType.IP_CID_CHANGE; private static final String TAG = "Filter"; @@ -222,7 +239,7 @@ public class Filter implements AutoCloseable { int type, int subType, FilterConfiguration settings); private native int nativeGetId(); private native long nativeGetId64Bit(); - private native int nativeconfigureScramblingEvent(int scramblingStatusMask); + private native int nativeConfigureMonitorEvent(int monitorEventTypesMask); private native int nativeSetDataSource(Filter source); private native int nativeStartFilter(); private native int nativeStopFilter(); @@ -306,34 +323,40 @@ public class Filter implements AutoCloseable { } /** - * Configure the Filter to monitor specific Scrambling Status through - * {@link ScramblingStatusEvent}. + * Configure the Filter to monitor scrambling status and ip cid change. Set corresponding bit of + * {@link MonitorEventTypeMask} to monitor the change. Reset to stop monitoring. * *

{@link ScramblingStatusEvent} should be sent at the following two scenarios: - * *