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

Commit c70419af authored by Arun Johnson's avatar Arun Johnson Committed by Gerrit Code Review
Browse files

Merge "Add API setMultiFrameLinearBlock for BLOCK_MODEL" into main

parents 7adef106 5ce028be
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -22744,7 +22744,6 @@ package android.media {
  public final class MediaCodec.QueueRequest {
    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 setEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int, @NonNull android.media.MediaCodec.CryptoInfo);
    method @NonNull public android.media.MediaCodec.QueueRequest setFlags(int);
@@ -22754,6 +22753,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 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 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 setStringParameter(@NonNull String, @NonNull String);
  }
+30 −20
Original line number Diff line number Diff line
@@ -3556,6 +3556,36 @@ final public class MediaCodec {
            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 for a queue request before calling {@link #queue}. It is possible
@@ -3688,26 +3718,6 @@ final public class MediaCodec {
            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.
         * See {@link MediaFormat} for an exhaustive list of supported keys with