|
|
@@ -40,10 +40,13 @@
|
|
|
#define free rt_free
|
|
|
|
|
|
#define BLOCK_HEADER_SIZE 4
|
|
|
-#define COMPRESS_BUFFER_PADDING 400
|
|
|
+
|
|
|
#define COMPRESS_BUFFER_SIZE 4096
|
|
|
#define DCOMPRESS_BUFFER_SIZE 4096
|
|
|
|
|
|
+/* Buffer padding for destination buffer, least size + 400 bytes large because incompressible data may increase in size. */
|
|
|
+#define BUFFER_PADDING QLZ_BUFFER_PADDING
|
|
|
+
|
|
|
#if QLZ_STREAMING_BUFFER != 0
|
|
|
#error Define QLZ_STREAMING_BUFFER to a zero value for this demo
|
|
|
#endif
|
|
|
@@ -61,7 +64,7 @@ static int quicklz_compress_file(int fd_in, int fd_out)
|
|
|
file_size = lseek(fd_in, 0, SEEK_END);
|
|
|
lseek(fd_in, 0, SEEK_SET);
|
|
|
|
|
|
- cmprs_buffer = (rt_uint8_t *) malloc(COMPRESS_BUFFER_SIZE + COMPRESS_BUFFER_PADDING);
|
|
|
+ cmprs_buffer = (rt_uint8_t *) malloc(COMPRESS_BUFFER_SIZE + BUFFER_PADDING);
|
|
|
buffer = (rt_uint8_t *) malloc(COMPRESS_BUFFER_SIZE);
|
|
|
if (!cmprs_buffer || !buffer)
|
|
|
{
|
|
|
@@ -93,7 +96,7 @@ static int quicklz_compress_file(int fd_in, int fd_out)
|
|
|
}
|
|
|
|
|
|
memset(buffer, 0x00, COMPRESS_BUFFER_SIZE);
|
|
|
- memset(cmprs_buffer, 0x00, COMPRESS_BUFFER_SIZE + COMPRESS_BUFFER_PADDING);
|
|
|
+ memset(cmprs_buffer, 0x00, COMPRESS_BUFFER_SIZE + BUFFER_PADDING);
|
|
|
|
|
|
read(fd_in, buffer, block_size);
|
|
|
|
|
|
@@ -157,7 +160,7 @@ static int quicklz_decompress_file(int fd_in, int fd_out)
|
|
|
}
|
|
|
|
|
|
dcmprs_buffer = (rt_uint8_t *) malloc(DCOMPRESS_BUFFER_SIZE);
|
|
|
- buffer = (rt_uint8_t *) malloc(DCOMPRESS_BUFFER_SIZE + COMPRESS_BUFFER_PADDING);
|
|
|
+ buffer = (rt_uint8_t *) malloc(DCOMPRESS_BUFFER_SIZE + BUFFER_PADDING);
|
|
|
if (!dcmprs_buffer || !buffer)
|
|
|
{
|
|
|
rt_kprintf("[qlz] No memory for dcmprs_buffer or buffer!\n");
|
|
|
@@ -181,7 +184,7 @@ static int quicklz_decompress_file(int fd_in, int fd_out)
|
|
|
read(fd_in, buffer_hdr, BLOCK_HEADER_SIZE);
|
|
|
block_size = buffer_hdr[0] * (1 << 24) + buffer_hdr[1] * (1 << 16) + buffer_hdr[2] * (1 << 8) + buffer_hdr[3];
|
|
|
|
|
|
- memset(buffer, 0x00, COMPRESS_BUFFER_SIZE + COMPRESS_BUFFER_PADDING);
|
|
|
+ memset(buffer, 0x00, COMPRESS_BUFFER_SIZE + BUFFER_PADDING);
|
|
|
memset(dcmprs_buffer, 0x00, DCOMPRESS_BUFFER_SIZE);
|
|
|
|
|
|
read(fd_in, buffer, block_size);
|