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

Commit 5a92428a authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Add API setMultiFrameLinearBlock for BLOCK_MODEL" into main am:...

Merge "Merge "Add API setMultiFrameLinearBlock for BLOCK_MODEL" into main am: c70419af am: 01533d3f" into main
parents 8463a853 c49c513d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -22741,7 +22741,6 @@ package android.media {
  public final class MediaCodec.QueueRequest {
  public final class MediaCodec.QueueRequest {
    method public void queue();
    method public void queue();
    method @FlaggedApi("com.android.media.codec.flags.large_audio_frame") @NonNull public android.media.MediaCodec.QueueRequest setBufferInfos(@NonNull java.util.ArrayDeque<android.media.MediaCodec.BufferInfo>);
    method @NonNull public android.media.MediaCodec.QueueRequest setByteBufferParameter(@NonNull String, @NonNull java.nio.ByteBuffer);
    method @NonNull public android.media.MediaCodec.QueueRequest setByteBufferParameter(@NonNull String, @NonNull java.nio.ByteBuffer);
    method @NonNull public android.media.MediaCodec.QueueRequest setEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int, @NonNull android.media.MediaCodec.CryptoInfo);
    method @NonNull public android.media.MediaCodec.QueueRequest setEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int, @NonNull android.media.MediaCodec.CryptoInfo);
    method @NonNull public android.media.MediaCodec.QueueRequest setFlags(int);
    method @NonNull public android.media.MediaCodec.QueueRequest setFlags(int);
@@ -22751,6 +22750,7 @@ package android.media {
    method @NonNull public android.media.MediaCodec.QueueRequest setLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int);
    method @NonNull public android.media.MediaCodec.QueueRequest setLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int);
    method @NonNull public android.media.MediaCodec.QueueRequest setLongParameter(@NonNull String, long);
    method @NonNull public android.media.MediaCodec.QueueRequest setLongParameter(@NonNull String, long);
    method @FlaggedApi("com.android.media.codec.flags.large_audio_frame") @NonNull public android.media.MediaCodec.QueueRequest setMultiFrameEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, @NonNull java.util.ArrayDeque<android.media.MediaCodec.BufferInfo>, @NonNull java.util.ArrayDeque<android.media.MediaCodec.CryptoInfo>);
    method @FlaggedApi("com.android.media.codec.flags.large_audio_frame") @NonNull public android.media.MediaCodec.QueueRequest setMultiFrameEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, @NonNull java.util.ArrayDeque<android.media.MediaCodec.BufferInfo>, @NonNull java.util.ArrayDeque<android.media.MediaCodec.CryptoInfo>);
    method @FlaggedApi("com.android.media.codec.flags.large_audio_frame") @NonNull public android.media.MediaCodec.QueueRequest setMultiFrameLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, @NonNull java.util.ArrayDeque<android.media.MediaCodec.BufferInfo>);
    method @NonNull public android.media.MediaCodec.QueueRequest setPresentationTimeUs(long);
    method @NonNull public android.media.MediaCodec.QueueRequest setPresentationTimeUs(long);
    method @NonNull public android.media.MediaCodec.QueueRequest setStringParameter(@NonNull String, @NonNull String);
    method @NonNull public android.media.MediaCodec.QueueRequest setStringParameter(@NonNull String, @NonNull String);
  }
  }
+30 −20
Original line number Original line Diff line number Diff line
@@ -3556,6 +3556,36 @@ final public class MediaCodec {
            return this;
            return this;
        }
        }


        /**
         * Set a linear block that contain multiple non-encrypted access unit to this
         * queue request. Exactly one buffer must be set for a queue request before
         * calling {@link #queue}. Multiple access units if present must be laid out contiguously
         * and without gaps and in order. An IllegalArgumentException will be thrown
         * during {@link #queue} if access units are not laid out contiguously.
         *
         * @param block The linear block object
         * @param infos Represents {@link MediaCodec.BufferInfo} objects to mark
         *              individual access-unit boundaries and the timestamps associated with it.
         * @return this object
         * @throws IllegalStateException if a buffer is already set
         */
        @FlaggedApi(FLAG_LARGE_AUDIO_FRAME)
        public @NonNull QueueRequest setMultiFrameLinearBlock(
                @NonNull LinearBlock block,
                @NonNull ArrayDeque<BufferInfo> infos) {
            if (!isAccessible()) {
                throw new IllegalStateException("The request is stale");
            }
            if (mLinearBlock != null || mHardwareBuffer != null) {
                throw new IllegalStateException("Cannot set block twice");
            }
            mLinearBlock = block;
            mBufferInfos.clear();
            mBufferInfos.addAll(infos);
            mCryptoInfos.clear();
            return this;
        }

        /**
        /**
         * Set an encrypted linear block to this queue request. Exactly one buffer must be
         * Set an encrypted linear block to this queue request. Exactly one buffer must be
         * set for a queue request before calling {@link #queue}. It is possible
         * set for a queue request before calling {@link #queue}. It is possible
@@ -3690,26 +3720,6 @@ final public class MediaCodec {
            return this;
            return this;
        }
        }


        /**
         * Sets MediaCodec.BufferInfo objects describing the access units
         * contained in this queue request. Access units must be laid out
         * contiguously without gaps and in order.
         *
         * @param infos Represents {@link MediaCodec.BufferInfo} objects to mark
         *              individual access-unit boundaries and the timestamps associated with it.
         *              The buffer is expected to contain the data in a continuous manner.
         * @return this object
         */
        @FlaggedApi(FLAG_LARGE_AUDIO_FRAME)
        public @NonNull QueueRequest setBufferInfos(@NonNull ArrayDeque<BufferInfo> infos) {
            if (!isAccessible()) {
                throw new IllegalStateException("The request is stale");
            }
            mBufferInfos.clear();
            mBufferInfos.addAll(infos);
            return this;
        }

        /**
        /**
         * Add an integer parameter.
         * Add an integer parameter.
         * See {@link MediaFormat} for an exhaustive list of supported keys with
         * See {@link MediaFormat} for an exhaustive list of supported keys with