Package com.google.android.exoplayer2.util

## Class ParsableNalUnitBitArray

- java.lang.Object
- - com.google.android.exoplayer2.util.ParsableNalUnitBitArray

-     public final class ParsableNalUnitBitArray
      extends Object

  Wraps a byte array, providing methods that allow it to be read as a NAL unit bitstream.

  Whenever the byte sequence [0, 0, 3] appears in the wrapped byte array, it is treated as [0, 0] for all reading/skipping operations, which makes the bitstream appear to be unescaped.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ParsableNalUnitBitArray​(byte[] data, int offset, int limit)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canReadBits​(int numBits)` | Returns whether it's possible to read `n` bits starting from the current offset.
    `boolean` | `canReadExpGolombCodedNum()` | Returns whether it is possible to read an Exp-Golomb-coded integer starting from the current offset.
    `boolean` | `readBit()` | Reads a single bit.
    `int` | `readBits​(int numBits)` | Reads up to 32 bits.
    `int` | `readSignedExpGolombCodedInt()` | Reads an signed Exp-Golomb-coded format integer.
    `int` | `readUnsignedExpGolombCodedInt()` | Reads an unsigned Exp-Golomb-coded format integer.
    `void` | `reset​(byte[] data, int offset, int limit)` | Resets the wrapped data, limit and offset.
    `void` | `skipBit()` | Skips a single bit.
    `void` | `skipBits​(int numBits)` | Skips bits and moves current reading position forward.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ParsableNalUnitBitArray

          public ParsableNalUnitBitArray​(byte[] data,
                                         int offset,
                                         int limit)

      Parameters:
        `data` - The data to wrap.
        `offset` - The byte offset in `data` to start reading from.
        `limit` - The byte offset of the end of the bitstream in `data`.

  - ### Method Detail

    - #### reset

          public void reset​(byte[] data,
                            int offset,
                            int limit)

      Resets the wrapped data, limit and offset.
      Parameters:
        `data` - The data to wrap.
        `offset` - The byte offset in `data` to start reading from.
        `limit` - The byte offset of the end of the bitstream in `data`.

    - #### skipBit

          public void skipBit()

      Skips a single bit.

    - #### skipBits

          public void skipBits​(int numBits)

      Skips bits and moves current reading position forward.
      Parameters:
        `numBits` - The number of bits to skip.

    - #### canReadBits

          public boolean canReadBits​(int numBits)

      Returns whether it's possible to read `n` bits starting from the current offset. The offset is not modified.
      Parameters:
        `numBits` - The number of bits.
      Returns:
        Whether it is possible to read `n` bits.

    - #### readBit

          public boolean readBit()

      Reads a single bit.
      Returns:
        Whether the bit is set.

    - #### readBits

          public int readBits​(int numBits)

      Reads up to 32 bits.
      Parameters:
        `numBits` - The number of bits to read.
      Returns:
        An integer whose bottom n bits hold the read data.

    - #### canReadExpGolombCodedNum

          public boolean canReadExpGolombCodedNum()

      Returns whether it is possible to read an Exp-Golomb-coded integer starting from the current offset. The offset is not modified.
      Returns:
        Whether it is possible to read an Exp-Golomb-coded integer.

    - #### readUnsignedExpGolombCodedInt

          public int readUnsignedExpGolombCodedInt()

      Reads an unsigned Exp-Golomb-coded format integer.
      Returns:
        The value of the parsed Exp-Golomb-coded integer.

    - #### readSignedExpGolombCodedInt

          public int readSignedExpGolombCodedInt()

      Reads an signed Exp-Golomb-coded format integer.
      Returns:
        The value of the parsed Exp-Golomb-coded integer.