Loading core/api/system-current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -6467,6 +6467,7 @@ package android.media.tv.tuner { method public int getAvSyncHwId(@NonNull android.media.tv.tuner.filter.Filter); method public long getAvSyncTime(int); method @Nullable public java.util.List<android.media.tv.tuner.frontend.FrontendInfo> getAvailableFrontendInfos(); method @Nullable public String getCurrentFrontendHardwardInfo(); method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(); method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo(); method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]); Loading Loading @@ -6631,6 +6632,10 @@ package android.media.tv.tuner.filter { method public boolean isPassthrough(); method public boolean useSecureMemory(); field public static final int AUDIO_STREAM_TYPE_AAC = 6; // 0x6 field public static final int AUDIO_STREAM_TYPE_AAC_ADTS = 16; // 0x10 field public static final int AUDIO_STREAM_TYPE_AAC_HE_ADTS = 18; // 0x12 field public static final int AUDIO_STREAM_TYPE_AAC_HE_LATM = 19; // 0x13 field public static final int AUDIO_STREAM_TYPE_AAC_LATM = 17; // 0x11 field public static final int AUDIO_STREAM_TYPE_AC3 = 7; // 0x7 field public static final int AUDIO_STREAM_TYPE_AC4 = 9; // 0x9 field public static final int AUDIO_STREAM_TYPE_DRA = 15; // 0xf Loading Loading @@ -6792,6 +6797,7 @@ package android.media.tv.tuner.filter { method @IntRange(from=0) public int getMpuSequenceNumber(); method public long getOffset(); method public long getPts(); method public int getScIndexMask(); method public int getStreamId(); method public boolean isDtsPresent(); method public boolean isPrivateData(); Loading Loading @@ -7907,6 +7913,7 @@ package android.media.tv.tuner.frontend { method public void onScanStopped(); method public void onSignalTypeReported(int); method public void onSymbolRatesReported(@NonNull int[]); method public default void onUnLocked(); } } media/java/android/media/tv/tuner/Tuner.java +47 −0 Original line number Diff line number Diff line Loading @@ -687,6 +687,7 @@ public class Tuner implements AutoCloseable { private native FrontendInfo nativeGetFrontendInfo(int id); private native Filter nativeOpenFilter(int type, int subType, long bufferSize); private native TimeFilter nativeOpenTimeFilter(); private native String nativeGetFrontendHardwareInfo(); private native Lnb nativeOpenLnbByHandle(int handle); private native Lnb nativeOpenLnbByName(String name); Loading Loading @@ -1278,6 +1279,34 @@ public class Tuner implements AutoCloseable { return Arrays.asList(feInfoList); } /** * Gets the currently initialized and activated frontend hardware information. The return values * would differ per device makers. E.g. RF chip version, Demod chip version, detailed status of * dvbs blind scan, etc * * <p>This API is only supported by Tuner HAL 2.0 or higher. Unsupported version would return * {@code null}. Use {@link TunerVersionChecker#getTunerVersion()} to check the version. * * @return The active frontend hardware information. {@code null} if the operation failed. * @throws IllegalStateException if there is no active frontend currently. */ @Nullable public String getCurrentFrontendHardwardInfo() { mFrontendLock.lock(); try { if (!TunerVersionChecker.checkHigherOrEqualVersionTo( TunerVersionChecker.TUNER_VERSION_2_0, "Get Frontend hardware info")) { return null; } if (mFrontend == null) { throw new IllegalStateException("frontend is not initialized"); } return nativeGetFrontendHardwareInfo(); } finally { mFrontendLock.unlock(); } } /** @hide */ public FrontendInfo getFrontendInfoById(int id) { mFrontendLock.lock(); Loading Loading @@ -1353,6 +1382,24 @@ public class Tuner implements AutoCloseable { } } private void onUnLocked() { Log.d(TAG, "Wrote Stats Log for unlocked event from scanning."); FrameworkStatsLog.write(FrameworkStatsLog.TV_TUNER_STATE_CHANGED, mUserId, FrameworkStatsLog.TV_TUNER_STATE_CHANGED__STATE__LOCKED); synchronized (mScanCallbackLock) { if (mScanCallbackExecutor != null && mScanCallback != null) { mScanCallbackExecutor.execute(() -> { synchronized (mScanCallbackLock) { if (mScanCallback != null) { mScanCallback.onUnLocked(); } } }); } } } private void onScanStopped() { synchronized (mScanCallbackLock) { if (mScanCallbackExecutor != null && mScanCallback != null) { Loading media/java/android/media/tv/tuner/filter/AvSettings.java +37 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,8 @@ public class AvSettings extends Settings { AUDIO_STREAM_TYPE_AAC, AUDIO_STREAM_TYPE_AC3, AUDIO_STREAM_TYPE_EAC3, AUDIO_STREAM_TYPE_AC4, AUDIO_STREAM_TYPE_DTS, AUDIO_STREAM_TYPE_DTS_HD, AUDIO_STREAM_TYPE_WMA, AUDIO_STREAM_TYPE_OPUS, AUDIO_STREAM_TYPE_VORBIS, AUDIO_STREAM_TYPE_DRA}) AUDIO_STREAM_TYPE_DRA, AUDIO_STREAM_TYPE_AAC_ADTS, AUDIO_STREAM_TYPE_AAC_LATM, AUDIO_STREAM_TYPE_AAC_HE_ADTS, AUDIO_STREAM_TYPE_AAC_HE_LATM}) @Retention(RetentionPolicy.SOURCE) public @interface AudioStreamType {} Loading Loading @@ -182,6 +183,41 @@ public class AvSettings extends Settings { */ public static final int AUDIO_STREAM_TYPE_DRA = android.hardware.tv.tuner.AudioStreamType.DRA; /* * AAC with ADTS (Audio Data Transport Format). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_ADTS = android.hardware.tv.tuner.AudioStreamType.AAC_ADTS; /* * AAC with ADTS with LATM (Low-overhead MPEG-4 Audio Transport Multiplex). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_LATM = android.hardware.tv.tuner.AudioStreamType.AAC_LATM; /* * High-Efficiency AAC (HE-AAC) with ADTS (Audio Data Transport Format). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_HE_ADTS = android.hardware.tv.tuner.AudioStreamType.AAC_HE_ADTS; /* * High-Efficiency AAC (HE-AAC) with LATM (Low-overhead MPEG-4 Audio Transport Multiplex). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_HE_LATM = android.hardware.tv.tuner.AudioStreamType.AAC_HE_LATM; private final boolean mIsPassthrough; private int mAudioStreamType = AUDIO_STREAM_TYPE_UNDEFINED; Loading media/java/android/media/tv/tuner/filter/MediaEvent.java +15 −1 Original line number Diff line number Diff line Loading @@ -49,12 +49,14 @@ public class MediaEvent extends FilterEvent { private final long mDataId; private final int mMpuSequenceNumber; private final boolean mIsPrivateData; private final int mScIndexMask; private final AudioDescriptor mExtraMetaData; // This constructor is used by JNI code only private MediaEvent(int streamId, boolean isPtsPresent, long pts, boolean isDtsPresent, long dts, long dataLength, long offset, LinearBlock buffer, boolean isSecureMemory, long dataId, int mpuSequenceNumber, boolean isPrivateData, AudioDescriptor extraMetaData) { int mpuSequenceNumber, boolean isPrivateData, int scIndexMask, AudioDescriptor extraMetaData) { mStreamId = streamId; mIsPtsPresent = isPtsPresent; mPts = pts; Loading @@ -67,6 +69,7 @@ public class MediaEvent extends FilterEvent { mDataId = dataId; mMpuSequenceNumber = mpuSequenceNumber; mIsPrivateData = isPrivateData; mScIndexMask = scIndexMask; mExtraMetaData = extraMetaData; } Loading Loading @@ -193,6 +196,17 @@ public class MediaEvent extends FilterEvent { return mIsPrivateData; } /** * Gets SC (Start Code) index mask. * * <p>This API is only supported by Tuner HAL 2.0 or higher. Unsupported version would return * {@code 0}. Use {@link TunerVersionChecker#getTunerVersion()} to check the version. */ @RecordSettings.ScIndexMask public int getScIndexMask() { return mScIndexMask; } /** * Gets audio extra metadata. */ Loading media/java/android/media/tv/tuner/frontend/ScanCallback.java +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ public interface ScanCallback { */ void onLocked(); /** Scan unlocked the signal. */ default void onUnLocked() {} /** Scan stopped. */ void onScanStopped(); Loading Loading
core/api/system-current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -6467,6 +6467,7 @@ package android.media.tv.tuner { method public int getAvSyncHwId(@NonNull android.media.tv.tuner.filter.Filter); method public long getAvSyncTime(int); method @Nullable public java.util.List<android.media.tv.tuner.frontend.FrontendInfo> getAvailableFrontendInfos(); method @Nullable public String getCurrentFrontendHardwardInfo(); method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(); method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo(); method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]); Loading Loading @@ -6631,6 +6632,10 @@ package android.media.tv.tuner.filter { method public boolean isPassthrough(); method public boolean useSecureMemory(); field public static final int AUDIO_STREAM_TYPE_AAC = 6; // 0x6 field public static final int AUDIO_STREAM_TYPE_AAC_ADTS = 16; // 0x10 field public static final int AUDIO_STREAM_TYPE_AAC_HE_ADTS = 18; // 0x12 field public static final int AUDIO_STREAM_TYPE_AAC_HE_LATM = 19; // 0x13 field public static final int AUDIO_STREAM_TYPE_AAC_LATM = 17; // 0x11 field public static final int AUDIO_STREAM_TYPE_AC3 = 7; // 0x7 field public static final int AUDIO_STREAM_TYPE_AC4 = 9; // 0x9 field public static final int AUDIO_STREAM_TYPE_DRA = 15; // 0xf Loading Loading @@ -6792,6 +6797,7 @@ package android.media.tv.tuner.filter { method @IntRange(from=0) public int getMpuSequenceNumber(); method public long getOffset(); method public long getPts(); method public int getScIndexMask(); method public int getStreamId(); method public boolean isDtsPresent(); method public boolean isPrivateData(); Loading Loading @@ -7907,6 +7913,7 @@ package android.media.tv.tuner.frontend { method public void onScanStopped(); method public void onSignalTypeReported(int); method public void onSymbolRatesReported(@NonNull int[]); method public default void onUnLocked(); } }
media/java/android/media/tv/tuner/Tuner.java +47 −0 Original line number Diff line number Diff line Loading @@ -687,6 +687,7 @@ public class Tuner implements AutoCloseable { private native FrontendInfo nativeGetFrontendInfo(int id); private native Filter nativeOpenFilter(int type, int subType, long bufferSize); private native TimeFilter nativeOpenTimeFilter(); private native String nativeGetFrontendHardwareInfo(); private native Lnb nativeOpenLnbByHandle(int handle); private native Lnb nativeOpenLnbByName(String name); Loading Loading @@ -1278,6 +1279,34 @@ public class Tuner implements AutoCloseable { return Arrays.asList(feInfoList); } /** * Gets the currently initialized and activated frontend hardware information. The return values * would differ per device makers. E.g. RF chip version, Demod chip version, detailed status of * dvbs blind scan, etc * * <p>This API is only supported by Tuner HAL 2.0 or higher. Unsupported version would return * {@code null}. Use {@link TunerVersionChecker#getTunerVersion()} to check the version. * * @return The active frontend hardware information. {@code null} if the operation failed. * @throws IllegalStateException if there is no active frontend currently. */ @Nullable public String getCurrentFrontendHardwardInfo() { mFrontendLock.lock(); try { if (!TunerVersionChecker.checkHigherOrEqualVersionTo( TunerVersionChecker.TUNER_VERSION_2_0, "Get Frontend hardware info")) { return null; } if (mFrontend == null) { throw new IllegalStateException("frontend is not initialized"); } return nativeGetFrontendHardwareInfo(); } finally { mFrontendLock.unlock(); } } /** @hide */ public FrontendInfo getFrontendInfoById(int id) { mFrontendLock.lock(); Loading Loading @@ -1353,6 +1382,24 @@ public class Tuner implements AutoCloseable { } } private void onUnLocked() { Log.d(TAG, "Wrote Stats Log for unlocked event from scanning."); FrameworkStatsLog.write(FrameworkStatsLog.TV_TUNER_STATE_CHANGED, mUserId, FrameworkStatsLog.TV_TUNER_STATE_CHANGED__STATE__LOCKED); synchronized (mScanCallbackLock) { if (mScanCallbackExecutor != null && mScanCallback != null) { mScanCallbackExecutor.execute(() -> { synchronized (mScanCallbackLock) { if (mScanCallback != null) { mScanCallback.onUnLocked(); } } }); } } } private void onScanStopped() { synchronized (mScanCallbackLock) { if (mScanCallbackExecutor != null && mScanCallback != null) { Loading
media/java/android/media/tv/tuner/filter/AvSettings.java +37 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,8 @@ public class AvSettings extends Settings { AUDIO_STREAM_TYPE_AAC, AUDIO_STREAM_TYPE_AC3, AUDIO_STREAM_TYPE_EAC3, AUDIO_STREAM_TYPE_AC4, AUDIO_STREAM_TYPE_DTS, AUDIO_STREAM_TYPE_DTS_HD, AUDIO_STREAM_TYPE_WMA, AUDIO_STREAM_TYPE_OPUS, AUDIO_STREAM_TYPE_VORBIS, AUDIO_STREAM_TYPE_DRA}) AUDIO_STREAM_TYPE_DRA, AUDIO_STREAM_TYPE_AAC_ADTS, AUDIO_STREAM_TYPE_AAC_LATM, AUDIO_STREAM_TYPE_AAC_HE_ADTS, AUDIO_STREAM_TYPE_AAC_HE_LATM}) @Retention(RetentionPolicy.SOURCE) public @interface AudioStreamType {} Loading Loading @@ -182,6 +183,41 @@ public class AvSettings extends Settings { */ public static final int AUDIO_STREAM_TYPE_DRA = android.hardware.tv.tuner.AudioStreamType.DRA; /* * AAC with ADTS (Audio Data Transport Format). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_ADTS = android.hardware.tv.tuner.AudioStreamType.AAC_ADTS; /* * AAC with ADTS with LATM (Low-overhead MPEG-4 Audio Transport Multiplex). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_LATM = android.hardware.tv.tuner.AudioStreamType.AAC_LATM; /* * High-Efficiency AAC (HE-AAC) with ADTS (Audio Data Transport Format). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_HE_ADTS = android.hardware.tv.tuner.AudioStreamType.AAC_HE_ADTS; /* * High-Efficiency AAC (HE-AAC) with LATM (Low-overhead MPEG-4 Audio Transport Multiplex). * * This API is only supported by Tuner HAL 2.0 or higher. Use * {@link TunerVersionChecker#getTunerVersion()} to check the version. */ public static final int AUDIO_STREAM_TYPE_AAC_HE_LATM = android.hardware.tv.tuner.AudioStreamType.AAC_HE_LATM; private final boolean mIsPassthrough; private int mAudioStreamType = AUDIO_STREAM_TYPE_UNDEFINED; Loading
media/java/android/media/tv/tuner/filter/MediaEvent.java +15 −1 Original line number Diff line number Diff line Loading @@ -49,12 +49,14 @@ public class MediaEvent extends FilterEvent { private final long mDataId; private final int mMpuSequenceNumber; private final boolean mIsPrivateData; private final int mScIndexMask; private final AudioDescriptor mExtraMetaData; // This constructor is used by JNI code only private MediaEvent(int streamId, boolean isPtsPresent, long pts, boolean isDtsPresent, long dts, long dataLength, long offset, LinearBlock buffer, boolean isSecureMemory, long dataId, int mpuSequenceNumber, boolean isPrivateData, AudioDescriptor extraMetaData) { int mpuSequenceNumber, boolean isPrivateData, int scIndexMask, AudioDescriptor extraMetaData) { mStreamId = streamId; mIsPtsPresent = isPtsPresent; mPts = pts; Loading @@ -67,6 +69,7 @@ public class MediaEvent extends FilterEvent { mDataId = dataId; mMpuSequenceNumber = mpuSequenceNumber; mIsPrivateData = isPrivateData; mScIndexMask = scIndexMask; mExtraMetaData = extraMetaData; } Loading Loading @@ -193,6 +196,17 @@ public class MediaEvent extends FilterEvent { return mIsPrivateData; } /** * Gets SC (Start Code) index mask. * * <p>This API is only supported by Tuner HAL 2.0 or higher. Unsupported version would return * {@code 0}. Use {@link TunerVersionChecker#getTunerVersion()} to check the version. */ @RecordSettings.ScIndexMask public int getScIndexMask() { return mScIndexMask; } /** * Gets audio extra metadata. */ Loading
media/java/android/media/tv/tuner/frontend/ScanCallback.java +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,9 @@ public interface ScanCallback { */ void onLocked(); /** Scan unlocked the signal. */ default void onUnLocked() {} /** Scan stopped. */ void onScanStopped(); Loading