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

Commit 46d35250 authored by Wei Jia's avatar Wei Jia Committed by Android (Google) Code Review
Browse files

Merge "CodecCapabilities: add low latency decoding feature"

parents 74718452 3ff88e38
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -24356,6 +24356,7 @@ package android.media {
    field public static final int INFO_OUTPUT_FORMAT_CHANGED = -2; // 0xfffffffe
    field public static final int INFO_TRY_AGAIN_LATER = -1; // 0xffffffff
    field public static final String PARAMETER_KEY_HDR10_PLUS_INFO = "hdr10-plus-info";
    field public static final String PARAMETER_KEY_LOW_LATENCY = "low-latency";
    field public static final String PARAMETER_KEY_OFFSET_TIME = "time-offset-us";
    field public static final String PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync";
    field public static final String PARAMETER_KEY_SUSPEND = "drop-input-frames";
@@ -24529,6 +24530,7 @@ package android.media {
    field public static final String FEATURE_DynamicTimestamp = "dynamic-timestamp";
    field public static final String FEATURE_FrameParsing = "frame-parsing";
    field public static final String FEATURE_IntraRefresh = "intra-refresh";
    field public static final String FEATURE_LowLatency = "low-latency";
    field public static final String FEATURE_MultipleFrames = "multiple-frames";
    field public static final String FEATURE_PartialFrame = "partial-frame";
    field public static final String FEATURE_SecurePlayback = "secure-playback";
@@ -25239,6 +25241,7 @@ package android.media {
    field public static final String KEY_LANGUAGE = "language";
    field public static final String KEY_LATENCY = "latency";
    field public static final String KEY_LEVEL = "level";
    field public static final String KEY_LOW_LATENCY = "low-latency";
    field public static final String KEY_MAX_B_FRAMES = "max-bframes";
    field public static final String KEY_MAX_FPS_TO_ENCODER = "max-fps-to-encoder";
    field public static final String KEY_MAX_HEIGHT = "max-height";
+13 −0
Original line number Diff line number Diff line
@@ -3512,6 +3512,19 @@ final public class MediaCodec {
     */
    public static final String PARAMETER_KEY_HDR10_PLUS_INFO = MediaFormat.KEY_HDR10_PLUS_INFO;

    /**
     * Enable/disable low latency decoding mode.
     * When enabled, the decoder doesn't hold input and output data more than
     * required by the codec standards.
     * The value is an Integer object containing the value 1 to enable
     * or the value 0 to disable.
     *
     * @see #setParameters(Bundle)
     * @see MediaFormat#KEY_LOW_LATENCY
     */
    public static final String PARAMETER_KEY_LOW_LATENCY =
            MediaFormat.KEY_LOW_LATENCY;

    /**
     * Communicate additional parameter changes to the component instance.
     * <b>Note:</b> Some of these parameter changes may silently fail to apply.
+9 −0
Original line number Diff line number Diff line
@@ -558,6 +558,14 @@ public final class MediaCodecInfo {
         */
        public static final String FEATURE_IntraRefresh = "intra-refresh";

        /**
         * <b>decoder only</b>: codec supports low latency decoding.
         * If supported, clients can enable the low latency mode for the decoder.
         * When the mode is enabled, the decoder doesn't hold input and output data more than
         * required by the codec standards.
         */
        public static final String FEATURE_LowLatency = "low-latency";

        /**
         * Query codec feature capabilities.
         * <p>
@@ -587,6 +595,7 @@ public final class MediaCodecInfo {
            new Feature(FEATURE_FrameParsing,     (1 << 4), false),
            new Feature(FEATURE_MultipleFrames,   (1 << 5), false),
            new Feature(FEATURE_DynamicTimestamp, (1 << 6), false),
            new Feature(FEATURE_LowLatency,       (1 << 7), true),
        };

        private static final Feature[] encoderFeatures = {
+9 −0
Original line number Diff line number Diff line
@@ -210,6 +210,15 @@ public final class MediaFormat {
     */
    public static final String KEY_MIME = "mime";

    /**
     * An optional key describing the low latency decoding mode. This is an optional parameter
     * that applies only to decoders. If enabled, the decoder doesn't hold input and output
     * data more than required by the codec standards.
     * The associated value is an integer (0 or 1): 1 when low-latency decoding is enabled,
     * 0 otherwise. The default value is 0.
     */
    public static final String KEY_LOW_LATENCY = "low-latency";

    /**
     * A key describing the language of the content, using either ISO 639-1
     * or 639-2/T codes.  The associated value is a string.