diff options
10 files changed, 118 insertions, 35 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 41533b7cd19d..253b49671bc7 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4728,6 +4728,18 @@ package android.media.tv.tuner { field public static final int RESULT_SUCCESS = 0; // 0x0 field public static final int RESULT_UNAVAILABLE = 1; // 0x1 field public static final int RESULT_UNKNOWN_ERROR = 6; // 0x6 + field public static final int SC_HEVC_INDEX_AUD = 2; // 0x2 + field public static final int SC_HEVC_INDEX_SLICE_BLA_N_LP = 16; // 0x10 + field public static final int SC_HEVC_INDEX_SLICE_BLA_W_RADL = 8; // 0x8 + field public static final int SC_HEVC_INDEX_SLICE_CE_BLA_W_LP = 4; // 0x4 + field public static final int SC_HEVC_INDEX_SLICE_IDR_N_LP = 64; // 0x40 + field public static final int SC_HEVC_INDEX_SLICE_IDR_W_RADL = 32; // 0x20 + field public static final int SC_HEVC_INDEX_SLICE_TRAIL_CRA = 128; // 0x80 + field public static final int SC_HEVC_INDEX_SPS = 1; // 0x1 + field public static final int SC_INDEX_B_FRAME = 4; // 0x4 + field public static final int SC_INDEX_I_FRAME = 1; // 0x1 + field public static final int SC_INDEX_P_FRAME = 2; // 0x2 + field public static final int SC_INDEX_SEQUENCE = 8; // 0x8 } } @@ -4797,6 +4809,23 @@ package android.media.tv.tuner.dvr { package android.media.tv.tuner.filter { + public class AudioDescriptor { + method public byte getAdFade(); + method public byte getAdGainCenter(); + method public byte getAdGainFront(); + method public byte getAdGainSurround(); + method public byte getAdPan(); + method public char getAdVersionTextTag(); + } + + public class DownloadEvent extends android.media.tv.tuner.filter.FilterEvent { + method public int getDataLength(); + method public int getItemFragmentIndex(); + method public int getItemId(); + method public int getLastItemFragmentIndex(); + method public int getMpuSequenceNumber(); + } + public class Filter implements java.lang.AutoCloseable { method public void close(); method public int configure(@NonNull android.media.tv.tuner.filter.FilterConfiguration); @@ -4846,6 +4875,34 @@ package android.media.tv.tuner.filter { ctor public FilterEvent(); } + public class IpPayloadEvent extends android.media.tv.tuner.filter.FilterEvent { + method public int getDataLength(); + } + + public class MediaEvent extends android.media.tv.tuner.filter.FilterEvent { + method public long getAvDataId(); + method public long getDataLength(); + method @Nullable public android.media.tv.tuner.filter.AudioDescriptor getExtraMetaData(); + method public int getMpuSequenceNumber(); + method public long getOffset(); + method public long getPts(); + method public int getStreamId(); + method public boolean isPrivateData(); + method public boolean isPtsPresent(); + method public boolean isSecureMemory(); + } + + public class MmtpRecordEvent extends android.media.tv.tuner.filter.FilterEvent { + method public long getDataLength(); + method public int getScHevcIndexMask(); + } + + public class PesEvent extends android.media.tv.tuner.filter.FilterEvent { + method public int getDataLength(); + method public int getMpuSequenceNumber(); + method public int getStreamId(); + } + public class PesSettings extends android.media.tv.tuner.filter.Settings { method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.PesSettings.Builder builder(@NonNull android.content.Context, int); method public int getStreamId(); @@ -4868,6 +4925,12 @@ package android.media.tv.tuner.filter { public abstract class Settings { } + public class TemiEvent extends android.media.tv.tuner.filter.FilterEvent { + method @NonNull public byte[] getDescriptorData(); + method public byte getDescriptorTag(); + method public long getPts(); + } + public class TsFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration { method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.TsFilterConfiguration.Builder builder(@NonNull android.content.Context); method @Nullable public android.media.tv.tuner.filter.Settings getSettings(); @@ -4881,6 +4944,13 @@ package android.media.tv.tuner.filter { method @NonNull public android.media.tv.tuner.filter.TsFilterConfiguration.Builder setTpid(int); } + public class TsRecordEvent extends android.media.tv.tuner.filter.FilterEvent { + method public long getDataLength(); + method public int getPacketId(); + method public int getScIndexMask(); + method public int getTsIndexMask(); + } + } package android.media.tv.tuner.frontend { diff --git a/media/java/android/media/tv/tuner/TunerConstants.java b/media/java/android/media/tv/tuner/TunerConstants.java index b76a14d66313..5747c0b265f4 100644 --- a/media/java/android/media/tv/tuner/TunerConstants.java +++ b/media/java/android/media/tv/tuner/TunerConstants.java @@ -70,7 +70,6 @@ public final class TunerConstants { */ public static final int INDEX_TYPE_SC_HEVC = Constants.DemuxRecordScIndexType.SC_HEVC; - /** * Indexes can be tagged by Start Code in PES (Packetized Elementary Stream) * according to ISO/IEC 13818-1. @@ -83,22 +82,18 @@ public final class TunerConstants { /** * SC index for a new I-frame. - * @hide */ public static final int SC_INDEX_I_FRAME = Constants.DemuxScIndex.I_FRAME; /** * SC index for a new P-frame. - * @hide */ public static final int SC_INDEX_P_FRAME = Constants.DemuxScIndex.P_FRAME; /** * SC index for a new B-frame. - * @hide */ public static final int SC_INDEX_B_FRAME = Constants.DemuxScIndex.B_FRAME; /** * SC index for a new sequence. - * @hide */ public static final int SC_INDEX_SEQUENCE = Constants.DemuxScIndex.SEQUENCE; @@ -118,47 +113,39 @@ public final class TunerConstants { /** * SC HEVC index SPS. - * @hide */ public static final int SC_HEVC_INDEX_SPS = Constants.DemuxScHevcIndex.SPS; /** * SC HEVC index AUD. - * @hide */ public static final int SC_HEVC_INDEX_AUD = Constants.DemuxScHevcIndex.AUD; /** * SC HEVC index SLICE_CE_BLA_W_LP. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_CE_BLA_W_LP = Constants.DemuxScHevcIndex.SLICE_CE_BLA_W_LP; /** * SC HEVC index SLICE_BLA_W_RADL. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_BLA_W_RADL = Constants.DemuxScHevcIndex.SLICE_BLA_W_RADL; /** * SC HEVC index SLICE_BLA_N_LP. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_BLA_N_LP = Constants.DemuxScHevcIndex.SLICE_BLA_N_LP; /** * SC HEVC index SLICE_IDR_W_RADL. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_IDR_W_RADL = Constants.DemuxScHevcIndex.SLICE_IDR_W_RADL; /** * SC HEVC index SLICE_IDR_N_LP. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_IDR_N_LP = Constants.DemuxScHevcIndex.SLICE_IDR_N_LP; /** * SC HEVC index SLICE_TRAIL_CRA. - * @hide */ public static final int SC_HEVC_INDEX_SLICE_TRAIL_CRA = Constants.DemuxScHevcIndex.SLICE_TRAIL_CRA; diff --git a/media/java/android/media/tv/tuner/filter/AudioDescriptor.java b/media/java/android/media/tv/tuner/filter/AudioDescriptor.java index c88c07f8a150..7b1576a9ea26 100644 --- a/media/java/android/media/tv/tuner/filter/AudioDescriptor.java +++ b/media/java/android/media/tv/tuner/filter/AudioDescriptor.java @@ -16,11 +16,14 @@ package android.media.tv.tuner.filter; +import android.annotation.SystemApi; + /** * Meta data from AD (Audio Descriptor) according to ETSI TS 101 154 V2.1.1. * * @hide */ +@SystemApi public class AudioDescriptor { private final byte mAdFade; private final byte mAdPan; @@ -68,7 +71,7 @@ public class AudioDescriptor { * * <p>A single ASCII character version designator (here "1" indicates revision 1). */ - public char getVersionTextTag() { + public char getAdVersionTextTag() { return mVersionTextTag; } diff --git a/media/java/android/media/tv/tuner/filter/DownloadEvent.java b/media/java/android/media/tv/tuner/filter/DownloadEvent.java index 44c8447514d5..9f97b6141de0 100644 --- a/media/java/android/media/tv/tuner/filter/DownloadEvent.java +++ b/media/java/android/media/tv/tuner/filter/DownloadEvent.java @@ -16,11 +16,14 @@ package android.media.tv.tuner.filter; +import android.annotation.SystemApi; + /** * Filter event sent from {@link Filter} objects with download type. * * @hide */ +@SystemApi public class DownloadEvent extends FilterEvent { private final int mItemId; private final int mMpuSequenceNumber; diff --git a/media/java/android/media/tv/tuner/filter/IpPayloadEvent.java b/media/java/android/media/tv/tuner/filter/IpPayloadEvent.java index 7d8f0ce4d2bb..42a124f5a673 100644 --- a/media/java/android/media/tv/tuner/filter/IpPayloadEvent.java +++ b/media/java/android/media/tv/tuner/filter/IpPayloadEvent.java @@ -16,11 +16,14 @@ package android.media.tv.tuner.filter; +import android.annotation.SystemApi; + /** * Filter event sent from {@link Filter} objects with IP payload type. * * @hide */ +@SystemApi public class IpPayloadEvent extends FilterEvent { private final int mDataLength; diff --git a/media/java/android/media/tv/tuner/filter/MediaEvent.java b/media/java/android/media/tv/tuner/filter/MediaEvent.java index 6b69aca0e414..eb2f4a9533ad 100644 --- a/media/java/android/media/tv/tuner/filter/MediaEvent.java +++ b/media/java/android/media/tv/tuner/filter/MediaEvent.java @@ -18,12 +18,14 @@ package android.media.tv.tuner.filter; import android.annotation.BytesLong; import android.annotation.Nullable; +import android.annotation.SystemApi; /** * Filter event sent from {@link Filter} objects with media type. * * @hide */ +@SystemApi public class MediaEvent extends FilterEvent{ private final int mStreamId; private final boolean mIsPtsPresent; @@ -62,11 +64,11 @@ public class MediaEvent extends FilterEvent{ } /** - * Returns whether PTS is present. + * Returns whether PTS (Presentation Time Stamp) is present. * * @return {@code true} if PTS is present in PES header; {@code false} otherwise. */ - public boolean getIsPtsPresent() { + public boolean isPtsPresent() { return mIsPtsPresent; } @@ -109,7 +111,7 @@ public class MediaEvent extends FilterEvent{ * @return {@code true} if the data is in secure area, and isn't mappable; * {@code false} otherwise. */ - public boolean getIsSecureMemory() { + public boolean isSecureMemory() { return mIsSecureMemory; } @@ -134,7 +136,7 @@ public class MediaEvent extends FilterEvent{ * * @return {@code true} if the data is in private; {@code false} otherwise. */ - public boolean getIsPrivateData() { + public boolean isPrivateData() { return mIsPrivateData; } diff --git a/media/java/android/media/tv/tuner/filter/MmtpRecordEvent.java b/media/java/android/media/tv/tuner/filter/MmtpRecordEvent.java index f4cf83336137..093dc6ff7d64 100644 --- a/media/java/android/media/tv/tuner/filter/MmtpRecordEvent.java +++ b/media/java/android/media/tv/tuner/filter/MmtpRecordEvent.java @@ -16,19 +16,23 @@ package android.media.tv.tuner.filter; +import android.annotation.BytesLong; +import android.annotation.SystemApi; + /** * Filter event sent from {@link Filter} objects with MMTP type. * * @hide */ +@SystemApi public class MmtpRecordEvent extends FilterEvent { private final int mScHevcIndexMask; - private final long mByteNumber; + private final long mDataLength; // This constructor is used by JNI code only - private MmtpRecordEvent(int scHevcIndexMask, long byteNumber) { + private MmtpRecordEvent(int scHevcIndexMask, long dataLength) { mScHevcIndexMask = scHevcIndexMask; - mByteNumber = byteNumber; + mDataLength = dataLength; } /** @@ -39,9 +43,10 @@ public class MmtpRecordEvent extends FilterEvent { } /** - * Gets the byte number from beginning of the filter's output. + * Gets data size in bytes of filtered data. */ - public long getByteNumber() { - return mByteNumber; + @BytesLong + public long getDataLength() { + return mDataLength; } } diff --git a/media/java/android/media/tv/tuner/filter/PesEvent.java b/media/java/android/media/tv/tuner/filter/PesEvent.java index 081b7661c433..695e596c98b7 100644 --- a/media/java/android/media/tv/tuner/filter/PesEvent.java +++ b/media/java/android/media/tv/tuner/filter/PesEvent.java @@ -16,11 +16,14 @@ package android.media.tv.tuner.filter; +import android.annotation.SystemApi; + /** * Filter event sent from {@link Filter} objects with PES type. * * @hide */ +@SystemApi public class PesEvent extends FilterEvent { private final int mStreamId; private final int mDataLength; diff --git a/media/java/android/media/tv/tuner/filter/TemiEvent.java b/media/java/android/media/tv/tuner/filter/TemiEvent.java index b5bd49920715..9bee9280a8ac 100644 --- a/media/java/android/media/tv/tuner/filter/TemiEvent.java +++ b/media/java/android/media/tv/tuner/filter/TemiEvent.java @@ -17,12 +17,14 @@ package android.media.tv.tuner.filter; import android.annotation.NonNull; +import android.annotation.SystemApi; /** * Filter event sent from {@link Filter} objects for Timed External Media Information (TEMI) data. * * @hide */ +@SystemApi public class TemiEvent extends FilterEvent { private final long mPts; private final byte mDescrTag; @@ -44,14 +46,14 @@ public class TemiEvent extends FilterEvent { } /** - * Gets TEMI descriptor tag. + * Gets TEMI (Timed External Media Information) descriptor tag. */ public byte getDescriptorTag() { return mDescrTag; } /** - * Gets TEMI descriptor. + * Gets TEMI (Timed External Media Information) descriptor. */ @NonNull public byte[] getDescriptorData() { diff --git a/media/java/android/media/tv/tuner/filter/TsRecordEvent.java b/media/java/android/media/tv/tuner/filter/TsRecordEvent.java index 4dd843274227..7a14bb863700 100644 --- a/media/java/android/media/tv/tuner/filter/TsRecordEvent.java +++ b/media/java/android/media/tv/tuner/filter/TsRecordEvent.java @@ -16,43 +16,47 @@ package android.media.tv.tuner.filter; +import android.annotation.BytesLong; +import android.annotation.SystemApi; + /** * Filter event sent from {@link Filter} objects for TS record data. * * @hide */ +@SystemApi public class TsRecordEvent extends FilterEvent { private final int mPid; private final int mTsIndexMask; private final int mScIndexMask; - private final long mByteNumber; + private final long mDataLength; // This constructor is used by JNI code only - private TsRecordEvent(int pid, int tsIndexMask, int scIndexMask, long byteNumber) { + private TsRecordEvent(int pid, int tsIndexMask, int scIndexMask, long dataLength) { mPid = pid; mTsIndexMask = tsIndexMask; mScIndexMask = scIndexMask; - mByteNumber = byteNumber; + mDataLength = dataLength; } /** * Gets packet ID. */ - public int getTpid() { + public int getPacketId() { return mPid; } /** - * Gets TS index mask. + * Gets TS (transport stream) index mask. */ @RecordSettings.TsIndexMask public int getTsIndexMask() { return mTsIndexMask; } /** - * Gets SC index mask. + * Gets SC (Start Code) index mask. * * <p>The index type is SC or SC-HEVC, and is set when configuring the filter. */ @@ -62,9 +66,10 @@ public class TsRecordEvent extends FilterEvent { } /** - * Gets the byte number from beginning of the filter's output. + * Gets data size in bytes of filtered data. */ - public long getByteNumber() { - return mByteNumber; + @BytesLong + public long getDataLength() { + return mDataLength; } } |