Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6151a691 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Complete filter event classes"

parents 0e8e01ef 428c3879
Loading
Loading
Loading
Loading
+181 −0
Original line number Diff line number Diff line
@@ -134,6 +134,187 @@ 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})
    @Retention(RetentionPolicy.SOURCE)
    public @interface TsIndex {}

    /**
     * TS index FIRST_PACKET.
     * @hide
     */
    public static final int TS_INDEX_FIRST_PACKET = Constants.DemuxTsIndex.FIRST_PACKET;
    /**
     * TS index PAYLOAD_UNIT_START_INDICATOR.
     * @hide
     */
    public static final int TS_INDEX_PAYLOAD_UNIT_START_INDICATOR =
            Constants.DemuxTsIndex.PAYLOAD_UNIT_START_INDICATOR;
    /**
     * TS index CHANGE_TO_NOT_SCRAMBLED.
     * @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;

    /**
     * Indexes can be tagged by Start Code in PES (Packetized Elementary Stream)
     * according to ISO/IEC 13818-1.
     * @hide
     */
    @IntDef(flag = true, value = {SC_INDEX_I_FRAME, SC_INDEX_P_FRAME, SC_INDEX_B_FRAME,
            SC_INDEX_SEQUENCE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface ScIndex {}

    /**
     * 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;


    /**
     * Indexes can be tagged by NAL unit group in HEVC according to ISO/IEC 23008-2.
     *
     * @hide
     */
    @IntDef(flag = true,
            value = {SC_HEVC_INDEX_SPS, SC_HEVC_INDEX_AUD, SC_HEVC_INDEX_SLICE_CE_BLA_W_LP,
            SC_HEVC_INDEX_SLICE_BLA_W_RADL, SC_HEVC_INDEX_SLICE_BLA_N_LP,
            SC_HEVC_INDEX_SLICE_IDR_W_RADL, SC_HEVC_INDEX_SLICE_IDR_N_LP,
            SC_HEVC_INDEX_SLICE_TRAIL_CRA})
    @Retention(RetentionPolicy.SOURCE)
    public @interface ScHevcIndex {}

    /**
     * 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;


    /** @hide */
    @IntDef({FRONTEND_SCAN_UNDEFINED, FRONTEND_SCAN_AUTO, FRONTEND_SCAN_BLIND})
    @Retention(RetentionPolicy.SOURCE)
+106 −0
Original line number Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.media.tv.tuner.filter;

/**
 * Meta data from AD (Audio Descriptor) according to ETSI TS 101 154 V2.1.1.
 *
 * @hide
 */
public class AudioDescriptor {
    private final byte mAdFade;
    private final byte mAdPan;
    private final char mVersionTextTag;
    private final byte mAdGainCenter;
    private final byte mAdGainFront;
    private final byte mAdGainSurround;

    // This constructor is used by JNI code only
    private AudioDescriptor(byte adFade, byte adPan, char versionTextTag, byte adGainCenter,
            byte adGainFront, byte adGainSurround) {
        mAdFade = adFade;
        mAdPan = adPan;
        mVersionTextTag = versionTextTag;
        mAdGainCenter = adGainCenter;
        mAdGainFront = adGainFront;
        mAdGainSurround = adGainSurround;
    }

    /**
     * Gets AD fade byte.
     *
     * <p>Takes values between 0x00 (representing no fade of the main programme sound) and 0xFF
     * (representing a full fade). Over the range 0x00 to 0xFE one lsb represents a step in
     * attenuation of the programme sound of 0.3 dB giving a range of 76.2 dB. The fade value of
     * 0xFF represents no programme sound at all (i.e. mute).
     */
    public byte getAdFade() {
        return mAdFade;
    }

    /**
     * Gets AD pan byte.
     *
     * <p>Takes values between 0x00 representing a central forward presentation of the audio
     * description and 0xFF, each increment representing a 360/256 degree step clockwise looking
     * down on the listener (i.e. just over 1.4 degrees).
     */
    public byte getAdPan() {
        return mAdPan;
    }

    /**
     * Gets AD version tag. A single ASCII character version indicates the version.
     *
     * <p>A single ASCII character version designator (here "1" indicates revision 1).
     */
    public char getVersionTextTag() {
        return mVersionTextTag;
    }

    /**
     * Gets AD gain byte center in dB.
     *
     * <p>Represents a signed value in dB. Takes values between 0x7F (representing +76.2 dB boost of
     * the main programme center) and 0x80 (representing a full fade). Over the range 0x00 to 0x7F
     * one lsb represents a step in boost of the programme center of 0.6 dB giving a maximum boost
     * of +76.2 dB. Over the range 0x81 to 0x00 one lsb represents a step in attenuation of the
     * programme center of 0.6 dB giving a maximum attenuation of -76.2 dB. The gain value of 0x80
     * represents no main center level at all (i.e. mute).
     */
    public byte getAdGainCenter() {
        return mAdGainCenter;
    }

    /**
     * Gets AD gain byte front in dB.
     *
     * <p>Same as {@link #getAdGainCenter()}, but applied to left and right front channel.
     */
    public byte getAdGainFront() {
        return mAdGainFront;
    }

    /**
     * Gets AD gain byte surround in dB.
     *
     * <p>Same as {@link #getAdGainCenter()}, but applied to all surround channels
     */
    public byte getAdGainSurround() {
        return mAdGainSurround;
    }
}
+0 −31
Original line number Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.media.tv.tuner.filter;

/**
 * Extra Meta Data from AD (Audio Descriptor) according to
 * ETSI TS 101 154 V2.1.1.
 * @hide
 */
public class AudioExtraMetaData {
    private byte mAdFade;
    private byte mAdPan;
    private byte mVersionTextTag;
    private byte mAdGainCenter;
    private byte mAdGainFront;
    private byte mAdGainSurround;
}
+56 −6
Original line number Diff line number Diff line
@@ -16,15 +16,65 @@

package android.media.tv.tuner.filter;

import android.media.tv.tuner.Tuner.Filter;

/**
 * Download event.
 * Filter event sent from {@link Filter} objects with download type.
 *
 * @hide
 */
public class DownloadEvent extends FilterEvent {
    private int mItemId;
    private int mMpuSequenceNumber;
    private int mItemFragmentIndex;
    private int mLastItemFragmentIndex;
    private int mDataLength;
    private final int mItemId;
    private final int mMpuSequenceNumber;
    private final int mItemFragmentIndex;
    private final int mLastItemFragmentIndex;
    private final int mDataLength;

    // This constructor is used by JNI code only
    private DownloadEvent(int itemId, int mpuSequenceNumber, int itemFragmentIndex,
            int lastItemFragmentIndex, int dataLength) {
        mItemId = itemId;
        mMpuSequenceNumber = mpuSequenceNumber;
        mItemFragmentIndex = itemFragmentIndex;
        mLastItemFragmentIndex = lastItemFragmentIndex;
        mDataLength = dataLength;
    }

    /**
     * Gets item ID.
     */
    public int getItemId() {
        return mItemId;
    }

    /**
     * Gets MPU sequence number of filtered data.
     */
    public int getMpuSequenceNumber() {
        return mMpuSequenceNumber;
    }

    /**
     * Gets current index of the current item.
     *
     * An item can be stored in different fragments.
     */
    public int getItemFragmentIndex() {
        return mItemFragmentIndex;
    }

    /**
     * Gets last index of the current item.
     */
    public int getLastItemFragmentIndex() {
        return mLastItemFragmentIndex;
    }

    /**
     * Gets data size in bytes of filtered data.
     */
    public int getDataLength() {
        return mDataLength;
    }
}
+17 −2
Original line number Diff line number Diff line
@@ -16,10 +16,25 @@

package android.media.tv.tuner.filter;

import android.media.tv.tuner.Tuner.Filter;

/**
 * IP payload event.
 * Filter event sent from {@link Filter} objects with IP payload type.
 *
 * @hide
 */
public class IpPayloadEvent extends FilterEvent {
    private int mDataLength;
    private final int mDataLength;

    // This constructor is used by JNI code only
    private IpPayloadEvent(int dataLength) {
        mDataLength = dataLength;
    }

    /**
     * Gets data size in bytes of filtered data.
     */
    public int getDataLength() {
        return mDataLength;
    }
}
Loading