code: public int decompress(ByteBuffer src, int srcOff, ByteBuffer dest, int destOff) {
      final int destLen = getDecompressedLength(src, srcOff);
      return decompressor.decompress(src, srcOff + 4, dest, destOff, destLen) + 4;
    }
docs: Decompresses <code>src[srcOff:]</code> into <code>dest[destOff:]</code>
  and returns the number of bytes read from <code>src</code>.
  The positions and limits of the {@link ByteBuffer}s remain unchanged.
  
  @param src the compressed data
  @param srcOff the start offset in src
  @param dest the destination buffer to store the decompressed data
  @param destOff the start offset in dest
  @return the number of bytes read to restore the original input