Class DecoderInputBuffer

    • Field Detail

      • BUFFER_REPLACEMENT_MODE_DISABLED

        public static final int BUFFER_REPLACEMENT_MODE_DISABLED
        Disallows buffer replacement.
        See Also:
        Constant Field Values
      • data

        @Nullable
        public ByteBuffer data
        The buffer's data, or null if no data has been set.
      • waitingForKeys

        public boolean waitingForKeys
        Whether the last attempt to read a sample into this buffer failed due to not yet having the DRM keys associated with the next sample.
      • timeUs

        public long timeUs
        The time at which the sample should be presented.
      • supplementalData

        @Nullable
        public ByteBuffer supplementalData
        Supplemental data related to the buffer, if Buffer.hasSupplementalData() returns true. If present, the buffer is populated with supplemental data from position 0 to its limit.
    • Constructor Detail

      • DecoderInputBuffer

        public DecoderInputBuffer​(@BufferReplacementMode
                                  int bufferReplacementMode,
                                  int paddingSize)
        Creates a new instance.
        Parameters:
        bufferReplacementMode - The DecoderInputBuffer.BufferReplacementMode replacement mode.
        paddingSize - If non-zero, ensureSpaceForWrite(int) will ensure that the buffer is this number of bytes larger than the requested length. This can be useful for decoders that consume data in fixed size blocks, for efficiency. Setting the padding size to the decoder's fixed read size is necessary to prevent such a decoder from trying to read beyond the end of the buffer.
    • Method Detail

      • newNoDataInstance

        public static DecoderInputBuffer newNoDataInstance()
        Returns a new instance that's not able to hold any data.
      • resetSupplementalData

        @EnsuresNonNull("supplementalData")
        public void resetSupplementalData​(int length)
        Clears supplementalData and ensures that it's large enough to accommodate length bytes.
        Parameters:
        length - The length of the supplemental data that must be accommodated, in bytes.
      • ensureSpaceForWrite

        @EnsuresNonNull("data")
        public void ensureSpaceForWrite​(int length)
        Ensures that data is large enough to accommodate a write of a given length at its current position.

        If the capacity of data is sufficient this method does nothing. If the capacity is insufficient then an attempt is made to replace data with a new ByteBuffer whose capacity is sufficient. Data up to the current position is copied to the new buffer.

        Parameters:
        length - The length of the write that must be accommodated, in bytes.
        Throws:
        DecoderInputBuffer.InsufficientCapacityException - If there is insufficient capacity to accommodate the write and bufferReplacementMode is BUFFER_REPLACEMENT_MODE_DISABLED.
      • clear

        public void clear()
        Description copied from class: Buffer
        Clears the buffer.
        Overrides:
        clear in class Buffer