36 lines
949 B
Java
36 lines
949 B
Java
/*
|
|
* LZMA2Decoder
|
|
*
|
|
* Author: Lasse Collin <lasse.collin@tukaani.org>
|
|
*
|
|
* This file has been put into the public domain.
|
|
* You can do whatever you want with this file.
|
|
*/
|
|
package org.tukaani.xz;
|
|
|
|
import java.io.InputStream;
|
|
|
|
class LZMA2Decoder extends LZMA2Coder implements FilterDecoder {
|
|
|
|
private int dictSize;
|
|
|
|
LZMA2Decoder(byte[] props) throws UnsupportedOptionsException {
|
|
// Up to 1.5 GiB dictionary is supported. The bigger ones
|
|
// are too big for int.
|
|
if (props.length != 1 || (props[0] & 0xFF) > 37)
|
|
throw new UnsupportedOptionsException(
|
|
"Unsupported LZMA2 properties");
|
|
|
|
dictSize = 2 | (props[0] & 1);
|
|
dictSize <<= (props[0] >>> 1) + 11;
|
|
}
|
|
|
|
public int getMemoryUsage() {
|
|
return LZMA2InputStream.getMemoryUsage(dictSize);
|
|
}
|
|
|
|
public InputStream getInputStream(InputStream in) {
|
|
return new LZMA2InputStream(in, dictSize);
|
|
}
|
|
}
|