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. |