![JAR search and dependency download from the Maven repository](/logo.png)
com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitReaderBuffer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of isoparser Show documentation
Show all versions of isoparser Show documentation
A generic parser and writer for all ISO 14496 based files (MP4, Quicktime, DCF, PDCF, ...)
package com.googlecode.mp4parser.boxes.mp4.objectdescriptors;
import java.nio.ByteBuffer;
public class BitReaderBuffer {
int initialPos;
int position;
private ByteBuffer buffer;
public BitReaderBuffer(ByteBuffer buffer) {
this.buffer = buffer;
initialPos = buffer.position();
}
public boolean readBool() {
return readBits(1) == 1;
}
public int readBits(int i) {
byte b = buffer.get(initialPos + position / 8);
int v = b < 0 ? b + 256 : b;
int left = 8 - position % 8;
int rc;
if (i <= left) {
rc = (v << (position % 8) & 0xFF) >> ((position % 8) + (left - i));
position += i;
} else {
int now = left;
int then = i - left;
rc = readBits(now);
rc = rc << then;
rc += readBits(then);
}
buffer.position(initialPos + (int) Math.ceil((double) position / 8));
return rc;
}
public int getPosition() {
return position;
}
public int byteSync() {
int left = 8 - position % 8;
if (left == 8) {
left = 0;
}
readBits(left);
return left;
}
public int remainingBits() {
return buffer.limit() * 8 - position;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy