Loading media/java/android/media/tv/tuner/TunerConstants.java +12 −76 Original line number Diff line number Diff line Loading @@ -129,93 +129,29 @@ public final class TunerConstants { */ public static final int FILTER_STATUS_OVERFLOW = Constants.DemuxFilterStatus.OVERFLOW; /** * Indexes can be tagged through TS (Transport Stream) header. * * @hide */ @IntDef(flag = true, value = {TS_INDEX_FIRST_PACKET, TS_INDEX_PAYLOAD_UNIT_START_INDICATOR, TS_INDEX_CHANGE_TO_NOT_SCRAMBLED, TS_INDEX_CHANGE_TO_EVEN_SCRAMBLED, TS_INDEX_CHANGE_TO_ODD_SCRAMBLED, TS_INDEX_DISCONTINUITY_INDICATOR, TS_INDEX_RANDOM_ACCESS_INDICATOR, TS_INDEX_PRIORITY_INDICATOR, TS_INDEX_PCR_FLAG, TS_INDEX_OPCR_FLAG, TS_INDEX_SPLICING_POINT_FLAG, TS_INDEX_PRIVATE_DATA, TS_INDEX_ADAPTATION_EXTENSION_FLAG}) /** @hide */ @Retention(RetentionPolicy.SOURCE) public @interface TsIndex {} @IntDef(prefix = "INDEX_TYPE_", value = {INDEX_TYPE_NONE, INDEX_TYPE_SC, INDEX_TYPE_SC_HEVC}) public @interface ScIndexType {} /** * TS index FIRST_PACKET. * Start Code Index is not used. * @hide */ public static final int TS_INDEX_FIRST_PACKET = Constants.DemuxTsIndex.FIRST_PACKET; public static final int INDEX_TYPE_NONE = Constants.DemuxRecordScIndexType.NONE; /** * TS index PAYLOAD_UNIT_START_INDICATOR. * Start Code index. * @hide */ public static final int TS_INDEX_PAYLOAD_UNIT_START_INDICATOR = Constants.DemuxTsIndex.PAYLOAD_UNIT_START_INDICATOR; public static final int INDEX_TYPE_SC = Constants.DemuxRecordScIndexType.SC; /** * TS index CHANGE_TO_NOT_SCRAMBLED. * Start Code index for HEVC. * @hide */ public static final int TS_INDEX_CHANGE_TO_NOT_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_NOT_SCRAMBLED; /** * TS index CHANGE_TO_EVEN_SCRAMBLED. * @hide */ public static final int TS_INDEX_CHANGE_TO_EVEN_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_EVEN_SCRAMBLED; /** * TS index CHANGE_TO_ODD_SCRAMBLED. * @hide */ public static final int TS_INDEX_CHANGE_TO_ODD_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_ODD_SCRAMBLED; /** * TS index DISCONTINUITY_INDICATOR. * @hide */ public static final int TS_INDEX_DISCONTINUITY_INDICATOR = Constants.DemuxTsIndex.DISCONTINUITY_INDICATOR; /** * TS index RANDOM_ACCESS_INDICATOR. * @hide */ public static final int TS_INDEX_RANDOM_ACCESS_INDICATOR = Constants.DemuxTsIndex.RANDOM_ACCESS_INDICATOR; /** * TS index PRIORITY_INDICATOR. * @hide */ public static final int TS_INDEX_PRIORITY_INDICATOR = Constants.DemuxTsIndex.PRIORITY_INDICATOR; /** * TS index PCR_FLAG. * @hide */ public static final int TS_INDEX_PCR_FLAG = Constants.DemuxTsIndex.PCR_FLAG; /** * TS index OPCR_FLAG. * @hide */ public static final int TS_INDEX_OPCR_FLAG = Constants.DemuxTsIndex.OPCR_FLAG; /** * TS index SPLICING_POINT_FLAG. * @hide */ public static final int TS_INDEX_SPLICING_POINT_FLAG = Constants.DemuxTsIndex.SPLICING_POINT_FLAG; /** * TS index PRIVATE_DATA. * @hide */ public static final int TS_INDEX_PRIVATE_DATA = Constants.DemuxTsIndex.PRIVATE_DATA; /** * TS index ADAPTATION_EXTENSION_FLAG. * @hide */ public static final int TS_INDEX_ADAPTATION_EXTENSION_FLAG = Constants.DemuxTsIndex.ADAPTATION_EXTENSION_FLAG; public static final int INDEX_TYPE_SC_HEVC = Constants.DemuxRecordScIndexType.SC_HEVC; /** * Indexes can be tagged by Start Code in PES (Packetized Elementary Stream) Loading media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java +106 −3 Original line number Diff line number Diff line Loading @@ -16,20 +16,123 @@ package android.media.tv.tuner.filter; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.hardware.tv.tuner.V1_0.Constants; import android.media.tv.tuner.TunerUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Filter configuration for a ALP filter. * @hide */ public class AlpFilterConfiguration extends FilterConfiguration { private int mPacketType; private int mLengthType; /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = "LENGTH_TYPE_", value = {LENGTH_TYPE_UNDEFINED, LENGTH_TYPE_WITHOUT_ADDITIONAL_HEADER, LENGTH_TYPE_WITH_ADDITIONAL_HEADER}) public @interface LengthType {} /** * Length type not defined. */ public static final int LENGTH_TYPE_UNDEFINED = Constants.DemuxAlpLengthType.UNDEFINED; /** * Length does NOT include additional header. */ public static final int LENGTH_TYPE_WITHOUT_ADDITIONAL_HEADER = Constants.DemuxAlpLengthType.WITHOUT_ADDITIONAL_HEADER; /** * Length includes additional header. */ public static final int LENGTH_TYPE_WITH_ADDITIONAL_HEADER = Constants.DemuxAlpLengthType.WITH_ADDITIONAL_HEADER; public AlpFilterConfiguration(Settings settings) { private final int mPacketType; private final int mLengthType; public AlpFilterConfiguration(Settings settings, int packetType, int lengthType) { super(settings); mPacketType = packetType; mLengthType = lengthType; } @Override public int getType() { return FilterConfiguration.FILTER_TYPE_ALP; } /** * Gets packet type. */ @FilterConfiguration.PacketType public int getPacketType() { return mPacketType; } /** * Gets length type. */ @LengthType public int getLengthType() { return mLengthType; } /** * Creates a builder for {@link AlpFilterConfiguration}. * * @param context the context of the caller. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder(@NonNull Context context) { TunerUtils.checkTunerPermission(context); return new Builder(); } /** * Builder for {@link AlpFilterConfiguration}. */ public static class Builder extends FilterConfiguration.Builder<Builder> { private int mPacketType; private int mLengthType; private Builder() { } /** * Sets packet type. */ @NonNull public Builder setPacketType(@FilterConfiguration.PacketType int packetType) { mPacketType = packetType; return this; } /** * Sets length type. */ @NonNull public Builder setLengthType(@LengthType int lengthType) { mLengthType = lengthType; return this; } /** * Builds a {@link AlpFilterConfiguration} object. */ @NonNull public AlpFilterConfiguration build() { return new AlpFilterConfiguration(mSettings, mPacketType, mLengthType); } @Override Builder self() { return this; } } } media/java/android/media/tv/tuner/filter/AvSettings.java +65 −2 Original line number Diff line number Diff line Loading @@ -16,21 +16,84 @@ package android.media.tv.tuner.filter; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.media.tv.tuner.TunerConstants; import android.media.tv.tuner.TunerUtils; import android.media.tv.tuner.filter.FilterConfiguration.FilterType; /** * Filter Settings for a Video and Audio. * * @hide */ public class AvSettings extends Settings { private boolean mIsPassthrough; private final boolean mIsPassthrough; private AvSettings(int mainType, boolean isAudio) { private AvSettings(int mainType, boolean isAudio, boolean isPassthrough) { super(TunerUtils.getFilterSubtype( mainType, isAudio ? TunerConstants.FILTER_SUBTYPE_AUDIO : TunerConstants.FILTER_SUBTYPE_VIDEO)); mIsPassthrough = isPassthrough; } /** * Checks whether it's passthrough. */ public boolean isPassthrough() { return mIsPassthrough; } /** * Creates a builder for {@link AvSettings}. * * @param context the context of the caller. * @param mainType the filter main type. * @param isAudio {@code true} if it's audio settings; {@code false} if it's video settings. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder( @NonNull Context context, @FilterType int mainType, boolean isAudio) { TunerUtils.checkTunerPermission(context); return new Builder(mainType, isAudio); } /** * Builder for {@link AvSettings}. */ public static class Builder extends Settings.Builder<Builder> { private final boolean mIsAudio; private boolean mIsPassthrough; private Builder(int mainType, boolean isAudio) { super(mainType); mIsAudio = isAudio; } /** * Sets whether it's passthrough. */ @NonNull public Builder setPassthrough(boolean isPassthrough) { mIsPassthrough = isPassthrough; return this; } /** * Builds a {@link AvSettings} object. */ @NonNull public AvSettings build() { return new AvSettings(mMainType, mIsAudio, mIsPassthrough); } @Override Builder self() { return this; } } } media/java/android/media/tv/tuner/filter/DownloadSettings.java +60 −2 Original line number Diff line number Diff line Loading @@ -16,17 +16,75 @@ package android.media.tv.tuner.filter; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.media.tv.tuner.TunerConstants; import android.media.tv.tuner.TunerUtils; import android.media.tv.tuner.filter.FilterConfiguration.FilterType; /** * Filter Settings for a Download. * @hide */ public class DownloadSettings extends Settings { private int mDownloadId; private final int mDownloadId; public DownloadSettings(int mainType) { private DownloadSettings(int mainType, int downloadId) { super(TunerUtils.getFilterSubtype(mainType, TunerConstants.FILTER_SUBTYPE_DOWNLOAD)); mDownloadId = downloadId; } /** * Gets download ID. */ public int getDownloadId() { return mDownloadId; } /** * Creates a builder for {@link DownloadSettings}. * * @param context the context of the caller. * @param mainType the filter main type. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder(@NonNull Context context, @FilterType int mainType) { TunerUtils.checkTunerPermission(context); return new Builder(mainType); } /** * Builder for {@link DownloadSettings}. */ public static class Builder extends Settings.Builder<Builder> { private int mDownloadId; private Builder(int mainType) { super(mainType); } /** * Sets download ID. */ @NonNull public Builder setDownloadId(int downloadId) { mDownloadId = downloadId; return this; } /** * Builds a {@link DownloadSettings} object. */ @NonNull public DownloadSettings build() { return new DownloadSettings(mMainType, mDownloadId); } @Override Builder self() { return this; } } } media/java/android/media/tv/tuner/filter/FilterConfiguration.java +49 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ import java.lang.annotation.RetentionPolicy; public abstract class FilterConfiguration { /** @hide */ @IntDef({FILTER_TYPE_TS, FILTER_TYPE_MMTP, FILTER_TYPE_IP, FILTER_TYPE_TLV, FILTER_TYPE_ALP}) @IntDef(prefix = "FILTER_TYPE_", value = {FILTER_TYPE_TS, FILTER_TYPE_MMTP, FILTER_TYPE_IP, FILTER_TYPE_TLV, FILTER_TYPE_ALP}) @Retention(RetentionPolicy.SOURCE) public @interface FilterType {} Loading @@ -58,6 +59,30 @@ public abstract class FilterConfiguration { */ public static final int FILTER_TYPE_ALP = Constants.DemuxFilterMainType.ALP; /** @hide */ @IntDef(prefix = "PACKET_TYPE_", value = {PACKET_TYPE_IPV4, PACKET_TYPE_COMPRESSED, PACKET_TYPE_SIGNALING}) @Retention(RetentionPolicy.SOURCE) public @interface PacketType {} /** * IP v4 packet type. * @hide */ public static final int PACKET_TYPE_IPV4 = 0; /** * Compressed packet type. * @hide */ public static final int PACKET_TYPE_COMPRESSED = 2; /** * Signaling packet type. * @hide */ public static final int PACKET_TYPE_SIGNALING = 4; @Nullable /* package */ final Settings mSettings; Loading @@ -77,4 +102,27 @@ public abstract class FilterConfiguration { public Settings getSettings() { return mSettings; } /** * Builder for {@link FilterConfiguration}. * * @param <T> The subclass to be built. * @hide */ public abstract static class Builder<T extends Builder<T>> { /* package */ Settings mSettings; /* package */ Builder() { } /** * Sets filter settings. */ @Nullable public T setFrequency(Settings settings) { mSettings = settings; return self(); } /* package */ abstract T self(); } } Loading
media/java/android/media/tv/tuner/TunerConstants.java +12 −76 Original line number Diff line number Diff line Loading @@ -129,93 +129,29 @@ public final class TunerConstants { */ public static final int FILTER_STATUS_OVERFLOW = Constants.DemuxFilterStatus.OVERFLOW; /** * Indexes can be tagged through TS (Transport Stream) header. * * @hide */ @IntDef(flag = true, value = {TS_INDEX_FIRST_PACKET, TS_INDEX_PAYLOAD_UNIT_START_INDICATOR, TS_INDEX_CHANGE_TO_NOT_SCRAMBLED, TS_INDEX_CHANGE_TO_EVEN_SCRAMBLED, TS_INDEX_CHANGE_TO_ODD_SCRAMBLED, TS_INDEX_DISCONTINUITY_INDICATOR, TS_INDEX_RANDOM_ACCESS_INDICATOR, TS_INDEX_PRIORITY_INDICATOR, TS_INDEX_PCR_FLAG, TS_INDEX_OPCR_FLAG, TS_INDEX_SPLICING_POINT_FLAG, TS_INDEX_PRIVATE_DATA, TS_INDEX_ADAPTATION_EXTENSION_FLAG}) /** @hide */ @Retention(RetentionPolicy.SOURCE) public @interface TsIndex {} @IntDef(prefix = "INDEX_TYPE_", value = {INDEX_TYPE_NONE, INDEX_TYPE_SC, INDEX_TYPE_SC_HEVC}) public @interface ScIndexType {} /** * TS index FIRST_PACKET. * Start Code Index is not used. * @hide */ public static final int TS_INDEX_FIRST_PACKET = Constants.DemuxTsIndex.FIRST_PACKET; public static final int INDEX_TYPE_NONE = Constants.DemuxRecordScIndexType.NONE; /** * TS index PAYLOAD_UNIT_START_INDICATOR. * Start Code index. * @hide */ public static final int TS_INDEX_PAYLOAD_UNIT_START_INDICATOR = Constants.DemuxTsIndex.PAYLOAD_UNIT_START_INDICATOR; public static final int INDEX_TYPE_SC = Constants.DemuxRecordScIndexType.SC; /** * TS index CHANGE_TO_NOT_SCRAMBLED. * Start Code index for HEVC. * @hide */ public static final int TS_INDEX_CHANGE_TO_NOT_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_NOT_SCRAMBLED; /** * TS index CHANGE_TO_EVEN_SCRAMBLED. * @hide */ public static final int TS_INDEX_CHANGE_TO_EVEN_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_EVEN_SCRAMBLED; /** * TS index CHANGE_TO_ODD_SCRAMBLED. * @hide */ public static final int TS_INDEX_CHANGE_TO_ODD_SCRAMBLED = Constants.DemuxTsIndex.CHANGE_TO_ODD_SCRAMBLED; /** * TS index DISCONTINUITY_INDICATOR. * @hide */ public static final int TS_INDEX_DISCONTINUITY_INDICATOR = Constants.DemuxTsIndex.DISCONTINUITY_INDICATOR; /** * TS index RANDOM_ACCESS_INDICATOR. * @hide */ public static final int TS_INDEX_RANDOM_ACCESS_INDICATOR = Constants.DemuxTsIndex.RANDOM_ACCESS_INDICATOR; /** * TS index PRIORITY_INDICATOR. * @hide */ public static final int TS_INDEX_PRIORITY_INDICATOR = Constants.DemuxTsIndex.PRIORITY_INDICATOR; /** * TS index PCR_FLAG. * @hide */ public static final int TS_INDEX_PCR_FLAG = Constants.DemuxTsIndex.PCR_FLAG; /** * TS index OPCR_FLAG. * @hide */ public static final int TS_INDEX_OPCR_FLAG = Constants.DemuxTsIndex.OPCR_FLAG; /** * TS index SPLICING_POINT_FLAG. * @hide */ public static final int TS_INDEX_SPLICING_POINT_FLAG = Constants.DemuxTsIndex.SPLICING_POINT_FLAG; /** * TS index PRIVATE_DATA. * @hide */ public static final int TS_INDEX_PRIVATE_DATA = Constants.DemuxTsIndex.PRIVATE_DATA; /** * TS index ADAPTATION_EXTENSION_FLAG. * @hide */ public static final int TS_INDEX_ADAPTATION_EXTENSION_FLAG = Constants.DemuxTsIndex.ADAPTATION_EXTENSION_FLAG; public static final int INDEX_TYPE_SC_HEVC = Constants.DemuxRecordScIndexType.SC_HEVC; /** * Indexes can be tagged by Start Code in PES (Packetized Elementary Stream) Loading
media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java +106 −3 Original line number Diff line number Diff line Loading @@ -16,20 +16,123 @@ package android.media.tv.tuner.filter; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.hardware.tv.tuner.V1_0.Constants; import android.media.tv.tuner.TunerUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * Filter configuration for a ALP filter. * @hide */ public class AlpFilterConfiguration extends FilterConfiguration { private int mPacketType; private int mLengthType; /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = "LENGTH_TYPE_", value = {LENGTH_TYPE_UNDEFINED, LENGTH_TYPE_WITHOUT_ADDITIONAL_HEADER, LENGTH_TYPE_WITH_ADDITIONAL_HEADER}) public @interface LengthType {} /** * Length type not defined. */ public static final int LENGTH_TYPE_UNDEFINED = Constants.DemuxAlpLengthType.UNDEFINED; /** * Length does NOT include additional header. */ public static final int LENGTH_TYPE_WITHOUT_ADDITIONAL_HEADER = Constants.DemuxAlpLengthType.WITHOUT_ADDITIONAL_HEADER; /** * Length includes additional header. */ public static final int LENGTH_TYPE_WITH_ADDITIONAL_HEADER = Constants.DemuxAlpLengthType.WITH_ADDITIONAL_HEADER; public AlpFilterConfiguration(Settings settings) { private final int mPacketType; private final int mLengthType; public AlpFilterConfiguration(Settings settings, int packetType, int lengthType) { super(settings); mPacketType = packetType; mLengthType = lengthType; } @Override public int getType() { return FilterConfiguration.FILTER_TYPE_ALP; } /** * Gets packet type. */ @FilterConfiguration.PacketType public int getPacketType() { return mPacketType; } /** * Gets length type. */ @LengthType public int getLengthType() { return mLengthType; } /** * Creates a builder for {@link AlpFilterConfiguration}. * * @param context the context of the caller. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder(@NonNull Context context) { TunerUtils.checkTunerPermission(context); return new Builder(); } /** * Builder for {@link AlpFilterConfiguration}. */ public static class Builder extends FilterConfiguration.Builder<Builder> { private int mPacketType; private int mLengthType; private Builder() { } /** * Sets packet type. */ @NonNull public Builder setPacketType(@FilterConfiguration.PacketType int packetType) { mPacketType = packetType; return this; } /** * Sets length type. */ @NonNull public Builder setLengthType(@LengthType int lengthType) { mLengthType = lengthType; return this; } /** * Builds a {@link AlpFilterConfiguration} object. */ @NonNull public AlpFilterConfiguration build() { return new AlpFilterConfiguration(mSettings, mPacketType, mLengthType); } @Override Builder self() { return this; } } }
media/java/android/media/tv/tuner/filter/AvSettings.java +65 −2 Original line number Diff line number Diff line Loading @@ -16,21 +16,84 @@ package android.media.tv.tuner.filter; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.media.tv.tuner.TunerConstants; import android.media.tv.tuner.TunerUtils; import android.media.tv.tuner.filter.FilterConfiguration.FilterType; /** * Filter Settings for a Video and Audio. * * @hide */ public class AvSettings extends Settings { private boolean mIsPassthrough; private final boolean mIsPassthrough; private AvSettings(int mainType, boolean isAudio) { private AvSettings(int mainType, boolean isAudio, boolean isPassthrough) { super(TunerUtils.getFilterSubtype( mainType, isAudio ? TunerConstants.FILTER_SUBTYPE_AUDIO : TunerConstants.FILTER_SUBTYPE_VIDEO)); mIsPassthrough = isPassthrough; } /** * Checks whether it's passthrough. */ public boolean isPassthrough() { return mIsPassthrough; } /** * Creates a builder for {@link AvSettings}. * * @param context the context of the caller. * @param mainType the filter main type. * @param isAudio {@code true} if it's audio settings; {@code false} if it's video settings. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder( @NonNull Context context, @FilterType int mainType, boolean isAudio) { TunerUtils.checkTunerPermission(context); return new Builder(mainType, isAudio); } /** * Builder for {@link AvSettings}. */ public static class Builder extends Settings.Builder<Builder> { private final boolean mIsAudio; private boolean mIsPassthrough; private Builder(int mainType, boolean isAudio) { super(mainType); mIsAudio = isAudio; } /** * Sets whether it's passthrough. */ @NonNull public Builder setPassthrough(boolean isPassthrough) { mIsPassthrough = isPassthrough; return this; } /** * Builds a {@link AvSettings} object. */ @NonNull public AvSettings build() { return new AvSettings(mMainType, mIsAudio, mIsPassthrough); } @Override Builder self() { return this; } } }
media/java/android/media/tv/tuner/filter/DownloadSettings.java +60 −2 Original line number Diff line number Diff line Loading @@ -16,17 +16,75 @@ package android.media.tv.tuner.filter; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.content.Context; import android.media.tv.tuner.TunerConstants; import android.media.tv.tuner.TunerUtils; import android.media.tv.tuner.filter.FilterConfiguration.FilterType; /** * Filter Settings for a Download. * @hide */ public class DownloadSettings extends Settings { private int mDownloadId; private final int mDownloadId; public DownloadSettings(int mainType) { private DownloadSettings(int mainType, int downloadId) { super(TunerUtils.getFilterSubtype(mainType, TunerConstants.FILTER_SUBTYPE_DOWNLOAD)); mDownloadId = downloadId; } /** * Gets download ID. */ public int getDownloadId() { return mDownloadId; } /** * Creates a builder for {@link DownloadSettings}. * * @param context the context of the caller. * @param mainType the filter main type. */ @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) @NonNull public static Builder builder(@NonNull Context context, @FilterType int mainType) { TunerUtils.checkTunerPermission(context); return new Builder(mainType); } /** * Builder for {@link DownloadSettings}. */ public static class Builder extends Settings.Builder<Builder> { private int mDownloadId; private Builder(int mainType) { super(mainType); } /** * Sets download ID. */ @NonNull public Builder setDownloadId(int downloadId) { mDownloadId = downloadId; return this; } /** * Builds a {@link DownloadSettings} object. */ @NonNull public DownloadSettings build() { return new DownloadSettings(mMainType, mDownloadId); } @Override Builder self() { return this; } } }
media/java/android/media/tv/tuner/filter/FilterConfiguration.java +49 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ import java.lang.annotation.RetentionPolicy; public abstract class FilterConfiguration { /** @hide */ @IntDef({FILTER_TYPE_TS, FILTER_TYPE_MMTP, FILTER_TYPE_IP, FILTER_TYPE_TLV, FILTER_TYPE_ALP}) @IntDef(prefix = "FILTER_TYPE_", value = {FILTER_TYPE_TS, FILTER_TYPE_MMTP, FILTER_TYPE_IP, FILTER_TYPE_TLV, FILTER_TYPE_ALP}) @Retention(RetentionPolicy.SOURCE) public @interface FilterType {} Loading @@ -58,6 +59,30 @@ public abstract class FilterConfiguration { */ public static final int FILTER_TYPE_ALP = Constants.DemuxFilterMainType.ALP; /** @hide */ @IntDef(prefix = "PACKET_TYPE_", value = {PACKET_TYPE_IPV4, PACKET_TYPE_COMPRESSED, PACKET_TYPE_SIGNALING}) @Retention(RetentionPolicy.SOURCE) public @interface PacketType {} /** * IP v4 packet type. * @hide */ public static final int PACKET_TYPE_IPV4 = 0; /** * Compressed packet type. * @hide */ public static final int PACKET_TYPE_COMPRESSED = 2; /** * Signaling packet type. * @hide */ public static final int PACKET_TYPE_SIGNALING = 4; @Nullable /* package */ final Settings mSettings; Loading @@ -77,4 +102,27 @@ public abstract class FilterConfiguration { public Settings getSettings() { return mSettings; } /** * Builder for {@link FilterConfiguration}. * * @param <T> The subclass to be built. * @hide */ public abstract static class Builder<T extends Builder<T>> { /* package */ Settings mSettings; /* package */ Builder() { } /** * Sets filter settings. */ @Nullable public T setFrequency(Settings settings) { mSettings = settings; return self(); } /* package */ abstract T self(); } }