51 #include <config_auto.h>
54 #include "allheaders.h"
63 static const l_int32 ZLIB_COMPRESSION_LEVEL = 6;
97 l_int32 status, success;
100 l_uint8 *bufferin, *bufferout;
105 return (l_uint8 *)ERROR_PTR(
"datain not defined", __func__, NULL);
108 bufferin = (l_uint8 *)LEPT_CALLOC(
L_BUF_SIZE,
sizeof(l_uint8));
109 bufferout = (l_uint8 *)LEPT_CALLOC(
L_BUF_SIZE,
sizeof(l_uint8));
116 if (!bufferin || !bufferout || !bbin || !bbout) {
117 L_ERROR(
"calloc fail for buffer\n", __func__);
122 z.zalloc = (alloc_func)0;
123 z.zfree = (free_func)0;
124 z.opaque = (voidpf)0;
125 z.next_in = bufferin;
127 z.next_out = bufferout;
130 status = deflateInit(&z, ZLIB_COMPRESSION_LEVEL);
131 if (status != Z_OK) {
132 L_ERROR(
"deflateInit failed\n", __func__);
138 if (z.avail_in == 0) {
139 z.next_in = bufferin;
142 lept_stderr(
" wrote %zu bytes to bufferin\n", nbytes);
146 flush = (bbin->
n) ? Z_SYNC_FLUSH : Z_FINISH;
147 status = deflate(&z, flush);
149 lept_stderr(
" status is %d, bytesleft = %u, totalout = %zu\n",
150 status, z.avail_out, z.total_out);
156 lept_stderr(
" read %zu bytes from bufferout\n", nbytes);
159 z.next_out = bufferout;
161 }
while (flush != Z_FINISH);
174 LEPT_FREE(bufferout);
198 l_uint8 *bufferin, *bufferout;
199 l_int32 status, success;
205 return (l_uint8 *)ERROR_PTR(
"datain not defined", __func__, NULL);
208 bufferin = (l_uint8 *)LEPT_CALLOC(
L_BUF_SIZE,
sizeof(l_uint8));
209 bufferout = (l_uint8 *)LEPT_CALLOC(
L_BUF_SIZE,
sizeof(l_uint8));
216 if (!bufferin || !bufferout || !bbin || !bbout) {
217 L_ERROR(
"calloc fail for buffer\n", __func__);
222 z.zalloc = (alloc_func)0;
223 z.zfree = (free_func)0;
224 z.next_in = bufferin;
226 z.next_out = bufferout;
229 status = inflateInit(&z);
230 if (status != Z_OK) {
231 L_ERROR(
"inflateInit fail for buffer\n", __func__);
237 if (z.avail_in == 0) {
238 z.next_in = bufferin;
241 lept_stderr(
" wrote %d bytes to bufferin\n", nbytes);
247 status = inflate(&z, Z_SYNC_FLUSH);
249 lept_stderr(
" status is %d, bytesleft = %d, totalout = %d\n",
250 status, z.avail_out, z.total_out);
256 lept_stderr(
" read %d bytes from bufferout\n", nbytes);
259 z.next_out = bufferout;
274 LEPT_FREE(bufferout);
l_ok bbufferWrite(L_BBUFFER *bb, l_uint8 *dest, size_t nbytes, size_t *pnout)
bbufferWrite()
l_ok bbufferRead(L_BBUFFER *bb, l_uint8 *src, l_int32 nbytes)
bbufferRead()
L_BBUFFER * bbufferCreate(const l_uint8 *indata, l_int32 nalloc)
bbufferCreate()
l_uint8 * bbufferDestroyAndSaveData(L_BBUFFER **pbb, size_t *pnbytes)
bbufferDestroyAndSaveData()
void bbufferDestroy(L_BBUFFER **pbb)
bbufferDestroy()
void lept_stderr(const char *fmt,...)
lept_stderr()
l_uint8 * zlibUncompress(const l_uint8 *datain, size_t nin, size_t *pnout)
zlibUncompress()
l_uint8 * zlibCompress(const l_uint8 *datain, size_t nin, size_t *pnout)
zlibCompress()