97l_int32 status, success;
100l_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));
112 bbin = bbufferCreate(datain, nin);
113 bbout = bbufferCreate(NULL, 0);
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;
140 bbufferWrite(bbin, bufferin,
L_BUF_SIZE, &nbytes);
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);
154 bbufferRead(bbout, bufferout, nbytes);
156 lept_stderr(
" read %zu bytes from bufferout\n", nbytes);
159 z.next_out = bufferout;
161 }
while (flush != Z_FINISH);
167 dataout = bbufferDestroyAndSaveData(&bbout, pnout);
170 bbufferDestroy(&bbout);
172 bbufferDestroy(&bbin);
174 LEPT_FREE(bufferout);
198l_uint8 *bufferin, *bufferout;
199l_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));
212 bbin = bbufferCreate(datain, nin);
213 bbout = bbufferCreate(NULL, 0);
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;
239 bbufferWrite(bbin, bufferin,
L_BUF_SIZE, &nbytes);
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);
254 bbufferRead(bbout, bufferout, nbytes);
256 lept_stderr(
" read %d bytes from bufferout\n", nbytes);
259 z.next_out = bufferout;
267 dataout = bbufferDestroyAndSaveData(&bbout, pnout);
270 bbufferDestroy(&bbout);
272 bbufferDestroy(&bbin);
274 LEPT_FREE(bufferout);