Merge "Final cleanup: Add missing fields in SectionSettings and DemuxCaps"
This commit is contained in:
committed by
Android (Google) Code Review
commit
2d74e7f844
@@ -4720,6 +4720,7 @@ package android.media.tv.tuner {
|
||||
method public long getSectionFilterLength();
|
||||
method public int getTsFilterCount();
|
||||
method public int getVideoFilterCount();
|
||||
method public boolean isTimeFilterSupported();
|
||||
}
|
||||
|
||||
public class Descrambler implements java.lang.AutoCloseable {
|
||||
@@ -4765,7 +4766,7 @@ package android.media.tv.tuner {
|
||||
public class Tuner implements java.lang.AutoCloseable {
|
||||
ctor @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public Tuner(@NonNull android.content.Context, @NonNull String, int, @Nullable android.media.tv.tuner.Tuner.OnResourceLostListener);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void clearOnTuneEventListener();
|
||||
method public void close();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void close();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int connectCiCam(int);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int disconnectCiCam();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int getAvSyncHwId(@NonNull android.media.tv.tuner.filter.Filter);
|
||||
@@ -4783,10 +4784,11 @@ package android.media.tv.tuner {
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setLna(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void setOnTuneEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.OnTuneEventListener);
|
||||
method public void shareFrontendFromTuner(@NonNull android.media.tv.tuner.Tuner);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void shareFrontendFromTuner(@NonNull android.media.tv.tuner.Tuner);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int stopScan();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int stopTune();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int tune(@NonNull android.media.tv.tuner.frontend.FrontendSettings);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void updateResourcePriority(int, int);
|
||||
}
|
||||
|
||||
public static interface Tuner.OnResourceLostListener {
|
||||
@@ -5106,7 +5108,16 @@ package android.media.tv.tuner.filter {
|
||||
method public int getVersion();
|
||||
}
|
||||
|
||||
public class SectionSettings extends android.media.tv.tuner.filter.Settings {
|
||||
public abstract class SectionSettings extends android.media.tv.tuner.filter.Settings {
|
||||
method public boolean isCrcEnabled();
|
||||
method public boolean isRaw();
|
||||
method public boolean isRepeat();
|
||||
}
|
||||
|
||||
public abstract static class SectionSettings.Builder<T extends android.media.tv.tuner.filter.SectionSettings.Builder<T>> extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.SectionSettings.Builder<T>> {
|
||||
method @NonNull public T setCrcEnabled(boolean);
|
||||
method @NonNull public T setRaw(boolean);
|
||||
method @NonNull public T setRepeat(boolean);
|
||||
}
|
||||
|
||||
public class SectionSettingsWithSectionBits extends android.media.tv.tuner.filter.SectionSettings {
|
||||
@@ -5116,7 +5127,7 @@ package android.media.tv.tuner.filter {
|
||||
method @NonNull public byte[] getMode();
|
||||
}
|
||||
|
||||
public static class SectionSettingsWithSectionBits.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder> {
|
||||
public static class SectionSettingsWithSectionBits.Builder extends android.media.tv.tuner.filter.SectionSettings.Builder<android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder> {
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithSectionBits build();
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder setFilter(@NonNull byte[]);
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder setMask(@NonNull byte[]);
|
||||
@@ -5129,7 +5140,7 @@ package android.media.tv.tuner.filter {
|
||||
method public int getVersion();
|
||||
}
|
||||
|
||||
public static class SectionSettingsWithTableInfo.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder> {
|
||||
public static class SectionSettingsWithTableInfo.Builder extends android.media.tv.tuner.filter.SectionSettings.Builder<android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder> {
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithTableInfo build();
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder setTableId(int);
|
||||
method @NonNull public android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder setVersion(int);
|
||||
@@ -5167,7 +5178,7 @@ package android.media.tv.tuner.filter {
|
||||
|
||||
public static class TlvFilterConfiguration.Builder extends android.media.tv.tuner.filter.FilterConfiguration.Builder<android.media.tv.tuner.filter.TlvFilterConfiguration.Builder> {
|
||||
method @NonNull public android.media.tv.tuner.filter.TlvFilterConfiguration build();
|
||||
method @NonNull public android.media.tv.tuner.filter.TlvFilterConfiguration.Builder setIsCompressedIpPacket(boolean);
|
||||
method @NonNull public android.media.tv.tuner.filter.TlvFilterConfiguration.Builder setCompressedIpPacket(boolean);
|
||||
method @NonNull public android.media.tv.tuner.filter.TlvFilterConfiguration.Builder setPacketType(int);
|
||||
method @NonNull public android.media.tv.tuner.filter.TlvFilterConfiguration.Builder setPassthrough(boolean);
|
||||
}
|
||||
|
||||
@@ -58,11 +58,13 @@ public class DemuxCapabilities {
|
||||
private final long mSectionFilterLength;
|
||||
private final int mFilterCaps;
|
||||
private final int[] mLinkCaps;
|
||||
private final boolean mSupportTimeFilter;
|
||||
|
||||
// Used by JNI
|
||||
private DemuxCapabilities(int demuxCount, int recordCount, int playbackCount, int tsFilterCount,
|
||||
int sectionFilterCount, int audioFilterCount, int videoFilterCount, int pesFilterCount,
|
||||
int pcrFilterCount, long sectionFilterLength, int filterCaps, int[] linkCaps) {
|
||||
int pcrFilterCount, long sectionFilterLength, int filterCaps, int[] linkCaps,
|
||||
boolean timeFilter) {
|
||||
mDemuxCount = demuxCount;
|
||||
mRecordCount = recordCount;
|
||||
mPlaybackCount = playbackCount;
|
||||
@@ -75,6 +77,7 @@ public class DemuxCapabilities {
|
||||
mSectionFilterLength = sectionFilterLength;
|
||||
mFilterCaps = filterCaps;
|
||||
mLinkCaps = linkCaps;
|
||||
mSupportTimeFilter = timeFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,4 +164,10 @@ public class DemuxCapabilities {
|
||||
public int[] getLinkCapabilities() {
|
||||
return mLinkCaps;
|
||||
}
|
||||
/**
|
||||
* Is {@link android.media.tv.tuner.filter.TimeFilter} supported.
|
||||
*/
|
||||
public boolean isTimeFilterSupported() {
|
||||
return mSupportTimeFilter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,16 +105,33 @@ public class Tuner implements AutoCloseable {
|
||||
*
|
||||
* @param tuner the Tuner instance to share frontend resource with.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
|
||||
public void shareFrontendFromTuner(@NonNull Tuner tuner) {
|
||||
// TODO: implementation.
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates client priority with an arbitrary value along with a nice value.
|
||||
*
|
||||
* <p>Tuner resource manager (TRM) uses the client priority value to decide whether it is able
|
||||
* to reclaim insufficient resources from another client.
|
||||
* <p>The nice value represents how much the client intends to give up the resource when an
|
||||
* insufficient resource situation happens.
|
||||
*
|
||||
* @param priority the new priority.
|
||||
* @param niceValue the nice value.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
|
||||
public void updateResourcePriority(int priority, int niceValue) {
|
||||
// TODO: implementation.
|
||||
}
|
||||
|
||||
private long mNativeContext; // used by native jMediaTuner
|
||||
|
||||
/**
|
||||
* Releases the Tuner instance.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
|
||||
@Override
|
||||
public void close() {
|
||||
// TODO: implementation.
|
||||
|
||||
@@ -123,6 +123,20 @@ public class MediaEvent extends FilterEvent{
|
||||
return mDataId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reserves the ID which is used by HAL to provide additional information for AV data.
|
||||
*
|
||||
* <p>The corresponding data is used and released by {@link android.media.AudioTrack}.
|
||||
* <p>The data is also released when the {@link Filter} instance is closed.
|
||||
*
|
||||
* @return the reserved AV data ID.
|
||||
* @hide
|
||||
*/
|
||||
public long reserveAvDataId() {
|
||||
// TODO: implement
|
||||
return mDataId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets MPU sequence number of filtered data.
|
||||
*/
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.media.tv.tuner.filter;
|
||||
|
||||
import android.annotation.BytesLong;
|
||||
import android.annotation.SystemApi;
|
||||
import android.media.tv.tuner.filter.RecordSettings.ScHevcIndex;
|
||||
|
||||
/**
|
||||
* Filter event sent from {@link Filter} objects with MMTP type.
|
||||
@@ -38,6 +39,7 @@ public class MmtpRecordEvent extends FilterEvent {
|
||||
/**
|
||||
* Gets indexes which can be tagged by NAL unit group in HEVC according to ISO/IEC 23008-2.
|
||||
*/
|
||||
@ScHevcIndex
|
||||
public int getScHevcIndexMask() {
|
||||
return mScHevcIndexMask;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.media.tv.tuner.filter;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.SystemApi;
|
||||
import android.media.tv.tuner.TunerUtils;
|
||||
|
||||
@@ -25,9 +26,81 @@ import android.media.tv.tuner.TunerUtils;
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public class SectionSettings extends Settings {
|
||||
public abstract class SectionSettings extends Settings {
|
||||
final boolean mCrcEnabled;
|
||||
final boolean mIsRepeat;
|
||||
final boolean mIsRaw;
|
||||
|
||||
SectionSettings(int mainType) {
|
||||
SectionSettings(int mainType, boolean crcEnabled, boolean isRepeat, boolean isRaw) {
|
||||
super(TunerUtils.getFilterSubtype(mainType, Filter.SUBTYPE_SECTION));
|
||||
mCrcEnabled = crcEnabled;
|
||||
mIsRepeat = isRepeat;
|
||||
mIsRaw = isRaw;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the filter enables CRC (Cyclic redundancy check) and discards data which
|
||||
* doesn't pass the check.
|
||||
*/
|
||||
public boolean isCrcEnabled() {
|
||||
return mCrcEnabled;
|
||||
}
|
||||
/**
|
||||
* Returns whether the filter repeats the data with the same version.
|
||||
*/
|
||||
public boolean isRepeat() {
|
||||
return mIsRepeat;
|
||||
}
|
||||
/**
|
||||
* Returns whether the filter sends {@link FilterCallback#onFilterStatusChanged} instead of
|
||||
* {@link FilterCallback#onFilterEvent}.
|
||||
*/
|
||||
public boolean isRaw() {
|
||||
return mIsRaw;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builder for {@link SectionSettings}.
|
||||
*
|
||||
* @param <T> The subclass to be built.
|
||||
*/
|
||||
public abstract static class Builder<T extends Builder<T>>
|
||||
extends Settings.Builder<Builder<T>> {
|
||||
boolean mCrcEnabled;
|
||||
boolean mIsRepeat;
|
||||
boolean mIsRaw;
|
||||
|
||||
Builder(int mainType) {
|
||||
super(mainType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the filter enables CRC (Cyclic redundancy check) and discards data which
|
||||
* doesn't pass the check.
|
||||
*/
|
||||
@NonNull
|
||||
public T setCrcEnabled(boolean crcEnabled) {
|
||||
mCrcEnabled = crcEnabled;
|
||||
return self();
|
||||
}
|
||||
/**
|
||||
* Sets whether the filter repeats the data with the same version.
|
||||
*/
|
||||
@NonNull
|
||||
public T setRepeat(boolean isRepeat) {
|
||||
mIsRepeat = isRepeat;
|
||||
return self();
|
||||
}
|
||||
/**
|
||||
* Sets whether the filter send onFilterStatus instead of
|
||||
* {@link FilterCallback#onFilterEvent}.
|
||||
*/
|
||||
@NonNull
|
||||
public T setRaw(boolean isRaw) {
|
||||
mIsRaw = isRaw;
|
||||
return self();
|
||||
}
|
||||
|
||||
/* package */ abstract T self();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,9 @@ public class SectionSettingsWithSectionBits extends SectionSettings {
|
||||
private final byte[] mMode;
|
||||
|
||||
|
||||
private SectionSettingsWithSectionBits(int mainType, byte[] filter, byte[] mask, byte[] mode) {
|
||||
super(mainType);
|
||||
private SectionSettingsWithSectionBits(int mainType, boolean isCheckCrc, boolean isRepeat,
|
||||
boolean isRaw, byte[] filter, byte[] mask, byte[] mode) {
|
||||
super(mainType, isCheckCrc, isRepeat, isRaw);
|
||||
mFilter = filter;
|
||||
mMask = mask;
|
||||
mMode = mode;
|
||||
@@ -86,7 +87,7 @@ public class SectionSettingsWithSectionBits extends SectionSettings {
|
||||
/**
|
||||
* Builder for {@link SectionSettingsWithSectionBits}.
|
||||
*/
|
||||
public static class Builder extends Settings.Builder<Builder> {
|
||||
public static class Builder extends SectionSettings.Builder<Builder> {
|
||||
private byte[] mFilter;
|
||||
private byte[] mMask;
|
||||
private byte[] mMode;
|
||||
@@ -125,7 +126,8 @@ public class SectionSettingsWithSectionBits extends SectionSettings {
|
||||
*/
|
||||
@NonNull
|
||||
public SectionSettingsWithSectionBits build() {
|
||||
return new SectionSettingsWithSectionBits(mMainType, mFilter, mMask, mMode);
|
||||
return new SectionSettingsWithSectionBits(
|
||||
mMainType, mCrcEnabled, mIsRepeat, mIsRaw, mFilter, mMask, mMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -32,8 +32,9 @@ public class SectionSettingsWithTableInfo extends SectionSettings {
|
||||
private final int mTableId;
|
||||
private final int mVersion;
|
||||
|
||||
private SectionSettingsWithTableInfo(int mainType, int tableId, int version) {
|
||||
super(mainType);
|
||||
private SectionSettingsWithTableInfo(int mainType, boolean isCheckCrc, boolean isRepeat,
|
||||
boolean isRaw, int tableId, int version) {
|
||||
super(mainType, isCheckCrc, isRepeat, isRaw);
|
||||
mTableId = tableId;
|
||||
mVersion = version;
|
||||
}
|
||||
@@ -67,7 +68,7 @@ public class SectionSettingsWithTableInfo extends SectionSettings {
|
||||
/**
|
||||
* Builder for {@link SectionSettingsWithTableInfo}.
|
||||
*/
|
||||
public static class Builder extends Settings.Builder<Builder> {
|
||||
public static class Builder extends SectionSettings.Builder<Builder> {
|
||||
private int mTableId;
|
||||
private int mVersion;
|
||||
|
||||
@@ -97,7 +98,8 @@ public class SectionSettingsWithTableInfo extends SectionSettings {
|
||||
*/
|
||||
@NonNull
|
||||
public SectionSettingsWithTableInfo build() {
|
||||
return new SectionSettingsWithTableInfo(mMainType, mTableId, mVersion);
|
||||
return new SectionSettingsWithTableInfo(
|
||||
mMainType, mCrcEnabled, mIsRepeat, mIsRaw, mTableId, mVersion);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -106,7 +106,7 @@ public class TlvFilterConfiguration extends FilterConfiguration {
|
||||
* Sets whether the data is compressed IP packet.
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setIsCompressedIpPacket(boolean isCompressedIpPacket) {
|
||||
public Builder setCompressedIpPacket(boolean isCompressedIpPacket) {
|
||||
mIsCompressedIpPacket = isCompressedIpPacket;
|
||||
return this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user