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

Commit 428c3879 authored by shubang's avatar shubang
Browse files

Complete filter event classes

Test: make;
Change-Id: I1022b874d8425dbb5ee79837ec345d7411e458ac
parent b6df40e6
Loading
Loading
Loading
Loading
+181 −0
Original line number Original line Diff line number Diff line
@@ -201,6 +201,187 @@ public final class TunerConstants {
     */
     */
    public static final int FILTER_STATUS_OVERFLOW = Constants.DemuxFilterStatus.OVERFLOW;
    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 */
    /** @hide */
    @IntDef({FRONTEND_SCAN_UNDEFINED, FRONTEND_SCAN_AUTO, FRONTEND_SCAN_BLIND})
    @IntDef({FRONTEND_SCAN_UNDEFINED, FRONTEND_SCAN_AUTO, FRONTEND_SCAN_BLIND})
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
+106 −0
Original line number Original line 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 Original line 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 Original line Diff line number Diff line
@@ -16,15 +16,65 @@


package android.media.tv.tuner.filter;
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
 * @hide
 */
 */
public class DownloadEvent extends FilterEvent {
public class DownloadEvent extends FilterEvent {
    private int mItemId;
    private final int mItemId;
    private int mMpuSequenceNumber;
    private final int mMpuSequenceNumber;
    private int mItemFragmentIndex;
    private final int mItemFragmentIndex;
    private int mLastItemFragmentIndex;
    private final int mLastItemFragmentIndex;
    private int mDataLength;
    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 Original line Diff line number Diff line
@@ -16,10 +16,25 @@


package android.media.tv.tuner.filter;
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
 * @hide
 */
 */
public class IpPayloadEvent extends FilterEvent {
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