Lines Matching defs:coder

87 stream_decoder_reset(lzma_stream_coder *coder, const lzma_allocator *allocator)
90 coder->index_hash = lzma_index_hash_init(coder->index_hash, allocator);
91 if (coder->index_hash == NULL)
95 coder->sequence = SEQ_STREAM_HEADER;
96 coder->pos = 0;
108 lzma_stream_coder *coder = coder_ptr;
113 switch (coder->sequence) {
116 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos,
120 if (coder->pos < LZMA_STREAM_HEADER_SIZE)
123 coder->pos = 0;
127 &coder->stream_flags, coder->buffer);
129 return ret == LZMA_FORMAT_ERROR && !coder->first_stream
135 coder->first_stream = false;
139 coder->block_options.check = coder->stream_flags.check;
143 coder->sequence = SEQ_BLOCK_HEADER;
147 if (coder->tell_no_check && coder->stream_flags.check
151 if (coder->tell_unsupported_check
153 coder->stream_flags.check))
156 if (coder->tell_any_check)
166 if (coder->pos == 0) {
169 coder->sequence = SEQ_INDEX;
176 coder->block_options.header_size
182 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos,
183 coder->block_options.header_size);
186 if (coder->pos < coder->block_options.header_size)
189 coder->pos = 0;
192 coder->block_options.version = 1;
198 coder->block_options.filters = filters;
201 return_if_error(lzma_block_header_decode(&coder->block_options,
202 allocator, coder->buffer));
207 coder->block_options.ignore_check = coder->ignore_check;
217 // Now we can set coder->memusage since we know that
221 coder->memusage = memusage;
223 if (memusage > coder->memlimit) {
230 &coder->block_decoder,
232 &coder->block_options);
241 coder->block_options.filters = NULL;
248 coder->sequence = SEQ_BLOCK;
254 const lzma_ret ret = coder->block_decoder.code(
255 coder->block_decoder.coder, allocator,
264 return_if_error(lzma_index_hash_append(coder->index_hash,
266 &coder->block_options),
267 coder->block_options.uncompressed_size));
269 coder->sequence = SEQ_BLOCK_HEADER;
282 const lzma_ret ret = lzma_index_hash_decode(coder->index_hash,
287 coder->sequence = SEQ_STREAM_FOOTER;
294 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos,
298 if (coder->pos < LZMA_STREAM_HEADER_SIZE)
301 coder->pos = 0;
308 &footer_flags, coder->buffer);
315 if (lzma_index_hash_size(coder->index_hash)
322 &coder->stream_flags, &footer_flags));
324 if (!coder->concatenated)
327 coder->sequence = SEQ_STREAM_PADDING;
333 assert(coder->concatenated);
345 return coder->pos == 0
356 coder->pos = (coder->pos + 1) & 3;
361 if (coder->pos != 0) {
367 return_if_error(stream_decoder_reset(coder, allocator));
382 lzma_stream_coder *coder = coder_ptr;
383 lzma_next_end(&coder->block_decoder, allocator);
384 lzma_index_hash_end(coder->index_hash, allocator);
385 lzma_free(coder, allocator);
393 const lzma_stream_coder *coder = coder_ptr;
394 return coder->stream_flags.check;
402 lzma_stream_coder *coder = coder_ptr;
404 *memusage = coder->memusage;
405 *old_memlimit = coder->memlimit;
408 if (new_memlimit < coder->memusage)
411 coder->memlimit = new_memlimit;
428 lzma_stream_coder *coder = next->coder;
429 if (coder == NULL) {
430 coder = lzma_alloc(sizeof(lzma_stream_coder), allocator);
431 if (coder == NULL)
434 next->coder = coder;
440 coder->block_decoder = LZMA_NEXT_CODER_INIT;
441 coder->index_hash = NULL;
444 coder->memlimit = my_max(1, memlimit);
445 coder->memusage = LZMA_MEMUSAGE_BASE;
446 coder->tell_no_check = (flags & LZMA_TELL_NO_CHECK) != 0;
447 coder->tell_unsupported_check
449 coder->tell_any_check = (flags & LZMA_TELL_ANY_CHECK) != 0;
450 coder->ignore_check = (flags & LZMA_IGNORE_CHECK) != 0;
451 coder->concatenated = (flags & LZMA_CONCATENATED) != 0;
452 coder->first_stream = true;
454 return stream_decoder_reset(coder, allocator);