summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base')
-rw-r--r--isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base147
1 files changed, 0 insertions, 147 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base
deleted file mode 100644
index 6d9e86e..0000000
--- a/isoparser/src/main/java/com/coremedia/iso/.svn/text-base/IsoTypeReader.java.svn-base
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright 2012 Sebastian Annies, Hamburg
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.coremedia.iso;
-
-import java.io.ByteArrayOutputStream;
-import java.nio.ByteBuffer;
-
-public final class IsoTypeReader {
-
-
- public static long readUInt32BE(ByteBuffer bb) {
- long ch1 = readUInt8(bb);
- long ch2 = readUInt8(bb);
- long ch3 = readUInt8(bb);
- long ch4 = readUInt8(bb);
- return ((ch4 << 24) + (ch3 << 16) + (ch2 << 8) + (ch1 << 0));
-
- }
-
-
- public static long readUInt32(ByteBuffer bb) {
- long i = bb.getInt();
- if (i < 0) {
- i += 1l<<32;
- }
- return i;
- }
-
- public static int readUInt24(ByteBuffer bb) {
- int result = 0;
- result += readUInt16(bb) << 8;
- result += byte2int(bb.get());
- return result;
- }
-
-
- public static int readUInt16(ByteBuffer bb) {
- int result = 0;
- result += byte2int(bb.get()) << 8;
- result += byte2int(bb.get());
- return result;
- }
-
- public static int readUInt16BE(ByteBuffer bb) {
- int result = 0;
- result += byte2int(bb.get());
- result += byte2int(bb.get()) << 8;
- return result;
- }
-
- public static int readUInt8(ByteBuffer bb) {
- return byte2int(bb.get());
- }
-
- public static int byte2int(byte b) {
- return b < 0 ? b + 256 : b;
- }
-
-
- /**
- * Reads a zero terminated UTF-8 string.
- *
- * @param byteBuffer the data source
- * @return the string readByte
- * @throws Error in case of an error in the underlying stream
- */
- public static String readString(ByteBuffer byteBuffer) {
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- int read;
- while ((read = byteBuffer.get()) != 0) {
- out.write(read);
- }
- return Utf8.convert(out.toByteArray());
- }
-
- public static String readString(ByteBuffer byteBuffer, int length) {
- byte[] buffer = new byte[length];
- byteBuffer.get(buffer);
- return Utf8.convert(buffer);
-
- }
-
- public static long readUInt64(ByteBuffer byteBuffer) {
- long result = 0;
- // thanks to Erik Nicolas for finding a bug! Cast to long is definitivly needed
- result += readUInt32(byteBuffer) << 32;
- if (result < 0) {
- throw new RuntimeException("I don't know how to deal with UInt64! long is not sufficient and I don't want to use BigInt");
- }
- result += readUInt32(byteBuffer);
-
- return result;
- }
-
- public static double readFixedPoint1616(ByteBuffer bb) {
- byte[] bytes = new byte[4];
- bb.get(bytes);
-
- int result = 0;
- result |= ((bytes[0] << 24) & 0xFF000000);
- result |= ((bytes[1] << 16) & 0xFF0000);
- result |= ((bytes[2] << 8) & 0xFF00);
- result |= ((bytes[3]) & 0xFF);
- return ((double) result) / 65536;
-
- }
-
- public static float readFixedPoint88(ByteBuffer bb) {
- byte[] bytes = new byte[2];
- bb.get(bytes);
- short result = 0;
- result |= ((bytes[0] << 8) & 0xFF00);
- result |= ((bytes[1]) & 0xFF);
- return ((float) result) / 256;
- }
-
- public static String readIso639(ByteBuffer bb) {
- int bits = readUInt16(bb);
- StringBuilder result = new StringBuilder();
- for (int i = 0; i < 3; i++) {
- int c = (bits >> (2 - i) * 5) & 0x1f;
- result.append((char) (c + 0x60));
- }
- return result.toString();
- }
-
- public static String read4cc(ByteBuffer bb) {
- byte[] b = new byte[4];
- bb.get(b);
- return IsoFile.bytesToFourCC(b);
- }
-
-}