diff options
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/.svn/text-base/BitWriterBuffer.java.svn-base')
-rw-r--r-- | isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/.svn/text-base/BitWriterBuffer.java.svn-base | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/.svn/text-base/BitWriterBuffer.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/.svn/text-base/BitWriterBuffer.java.svn-base deleted file mode 100644 index e6ea67f..0000000 --- a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/.svn/text-base/BitWriterBuffer.java.svn-base +++ /dev/null @@ -1,36 +0,0 @@ -package com.googlecode.mp4parser.boxes.mp4.objectdescriptors; - -import java.nio.ByteBuffer; - -public class BitWriterBuffer { - - private ByteBuffer buffer; - int initialPos; - int position = 0; - - public BitWriterBuffer(ByteBuffer buffer) { - this.buffer = buffer; - this.initialPos = buffer.position(); - } - - public void writeBits(int i, int numBits) { - assert i <= ((1 << numBits)-1): String.format("Trying to write a value bigger (%s) than the number bits (%s) allows. " + - "Please mask the value before writing it and make your code is really working as intended.", i, (1<<numBits)-1); - - int left = 8 - position % 8; - if (numBits <= left) { - int current = (buffer.get(initialPos + position / 8)); - current = current < 0 ? current + 256 : current; - current += i << (left - numBits); - buffer.put(initialPos + position / 8, (byte) (current > 127 ? current - 256 : current)); - position += numBits; - } else { - int bitsSecondWrite = numBits - left; - writeBits(i >> bitsSecondWrite, left); - writeBits(i & (1 << bitsSecondWrite) - 1, bitsSecondWrite); - } - buffer.position(initialPos + position / 8 + ((position % 8 > 0) ? 1 : 0)); - } - - -} |