ParsableNalUnitBitArray
@UnstableApi
public final class ParsableNalUnitBitArray
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.
Summary
Public constructors |
|---|
ParsableNalUnitBitArray(byte[] data, int offset, int limit) |
Public methods |
|
|---|---|
void |
Skips bits until at a byte alignment; if already byte aligned, then simply returns. |
boolean |
canReadBits(int numBits)Returns whether it's possible to read |
boolean |
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 |
Reads an signed Exp-Golomb-coded format integer. |
int |
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. |
Public constructors
ParsableNalUnitBitArray
public ParsableNalUnitBitArray(byte[] data, int offset, int limit)
| Parameters | |
|---|---|
byte[] data |
The data to wrap. |
int offset |
The byte offset in |
int limit |
The byte offset of the end of the bitstream in |
Public methods
byteAlign
public void byteAlign()
Skips bits until at a byte alignment; if already byte aligned, then simply returns.
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 | |
|---|---|
int numBits |
The number of bits. |
| Returns | |
|---|---|
boolean |
Whether it is possible to read |
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 | |
|---|---|
boolean |
Whether it is possible to read an Exp-Golomb-coded integer. |
readBits
public int readBits(int numBits)
Reads up to 32 bits.
| Parameters | |
|---|---|
int numBits |
The number of bits to read. |
| Returns | |
|---|---|
int |
An integer whose bottom n bits hold the read data. |
readSignedExpGolombCodedInt
public int readSignedExpGolombCodedInt()
Reads an signed Exp-Golomb-coded format integer.
| Returns | |
|---|---|
int |
The value of the parsed Exp-Golomb-coded integer. |
readUnsignedExpGolombCodedInt
public int readUnsignedExpGolombCodedInt()
Reads an unsigned Exp-Golomb-coded format integer.
| Returns | |
|---|---|
int |
The value of the parsed Exp-Golomb-coded integer. |
reset
public void reset(byte[] data, int offset, int limit)
Resets the wrapped data, limit and offset.
| Parameters | |
|---|---|
byte[] data |
The data to wrap. |
int offset |
The byte offset in |
int limit |
The byte offset of the end of the bitstream in |
skipBits
public void skipBits(int numBits)
Skips bits and moves current reading position forward.
| Parameters | |
|---|---|
int numBits |
The number of bits to skip. |