@Override public boolean isThisType(RandomAccessInputStream stream) throws IOException { final int blockLen = 40; if (!FormatTools.validStream(stream, blockLen, false)) return false; boolean validStart = (stream.readShort() & 0xffff) == 0xff4f; if (!validStart) { stream.skipBytes(2); validStart = stream.readInt() == JPEG2000BoxType.SIGNATURE.getCode(); if (validStart) { stream.skipBytes(12); validStart = !stream.readString(4).equals("jpx "); } } stream.seek(stream.length() - 2); boolean validEnd = (stream.readShort() & 0xffff) == 0xffd9; return validStart && validEnd; }
length = in.readInt(); boxCode = in.readInt(); boxType = JPEG2000BoxType.get(boxCode); if (boxType == JPEG2000BoxType.SIGNATURE_WRONG_ENDIANNESS) { LOGGER.trace("Swapping endianness during box parsing."); LOGGER.trace("Found JPEG 2000 '{}' box at {}", boxType.getName(), pos); switch (boxType) { case CONTIGUOUS_CODESTREAM: {
length = in.readInt(); boxCode = in.readInt(); boxType = JPEG2000BoxType.get(boxCode); if (boxType == JPEG2000BoxType.SIGNATURE_WRONG_ENDIANNESS) { LOGGER.trace("Swapping endianness during box parsing."); LOGGER.trace("Found JPEG 2000 '{}' box at {}", boxType.getName(), pos); switch (boxType) { case CONTIGUOUS_CODESTREAM: {
@Override public boolean isThisType(RandomAccessInputStream stream) throws IOException { final int blockLen = 8; if (!FormatTools.validStream(stream, blockLen, false)) return false; boolean validStart = (stream.readShort() & 0xffff) == 0xff4f; if (!validStart) { stream.skipBytes(2); validStart = stream.readInt() == JPEG2000BoxType.SIGNATURE.getCode(); } stream.seek(stream.length() - 2); boolean validEnd = (stream.readShort() & 0xffff) == 0xffd9; return validStart && validEnd; }
@Override public boolean isThisType(RandomAccessInputStream stream) throws IOException { final int blockLen = 8; if (!FormatTools.validStream(stream, blockLen, false)) return false; boolean validStart = (stream.readShort() & 0xffff) == 0xff4f; if (!validStart) { stream.skipBytes(2); validStart = stream.readInt() == JPEG2000BoxType.SIGNATURE.getCode(); } stream.seek(stream.length() - 2); boolean validEnd = (stream.readShort() & 0xffff) == 0xffd9; return validStart && validEnd; }
@Override public boolean isThisType(RandomAccessInputStream stream) throws IOException { final int blockLen = 40; if (!FormatTools.validStream(stream, blockLen, false)) return false; boolean validStart = (stream.readShort() & 0xffff) == 0xff4f; if (!validStart) { stream.skipBytes(2); validStart = stream.readInt() == JPEG2000BoxType.SIGNATURE.getCode(); if (validStart) { stream.skipBytes(12); validStart = !stream.readString(4).equals("jpx "); } } stream.seek(stream.length() - 2); boolean validEnd = (stream.readShort() & 0xffff) == 0xffd9; return validStart && validEnd; }