Lines Matching refs:coder
86 stream_decoder_reset(lzma_stream_coder *coder, const lzma_allocator *allocator) in stream_decoder_reset() argument
89 coder->index_hash = lzma_index_hash_init(coder->index_hash, allocator); in stream_decoder_reset()
90 if (coder->index_hash == NULL) in stream_decoder_reset()
94 coder->sequence = SEQ_STREAM_HEADER; in stream_decoder_reset()
95 coder->pos = 0; in stream_decoder_reset()
107 lzma_stream_coder *coder = coder_ptr; in stream_decode() local
112 switch (coder->sequence) { in stream_decode()
115 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos, in stream_decode()
119 if (coder->pos < LZMA_STREAM_HEADER_SIZE) in stream_decode()
122 coder->pos = 0; in stream_decode()
126 &coder->stream_flags, coder->buffer); in stream_decode()
128 return ret == LZMA_FORMAT_ERROR && !coder->first_stream in stream_decode()
134 coder->first_stream = false; in stream_decode()
138 coder->block_options.check = coder->stream_flags.check; in stream_decode()
142 coder->sequence = SEQ_BLOCK_HEADER; in stream_decode()
146 if (coder->tell_no_check && coder->stream_flags.check in stream_decode()
150 if (coder->tell_unsupported_check in stream_decode()
152 coder->stream_flags.check)) in stream_decode()
155 if (coder->tell_any_check) in stream_decode()
165 if (coder->pos == 0) { in stream_decode()
168 coder->sequence = SEQ_INDEX; in stream_decode()
175 coder->block_options.header_size in stream_decode()
181 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos, in stream_decode()
182 coder->block_options.header_size); in stream_decode()
185 if (coder->pos < coder->block_options.header_size) in stream_decode()
188 coder->pos = 0; in stream_decode()
189 coder->sequence = SEQ_BLOCK_INIT; in stream_decode()
200 coder->block_options.version = 1; in stream_decode()
206 coder->block_options.filters = filters; in stream_decode()
209 return_if_error(lzma_block_header_decode(&coder->block_options, in stream_decode()
210 allocator, coder->buffer)); in stream_decode()
215 coder->block_options.ignore_check = coder->ignore_check; in stream_decode()
229 coder->memusage = memusage; in stream_decode()
231 if (memusage > coder->memlimit) { in stream_decode()
238 &coder->block_decoder, in stream_decode()
240 &coder->block_options); in stream_decode()
247 coder->block_options.filters = NULL; in stream_decode()
254 coder->sequence = SEQ_BLOCK_RUN; in stream_decode()
260 const lzma_ret ret = coder->block_decoder.code( in stream_decode()
261 coder->block_decoder.coder, allocator, in stream_decode()
270 return_if_error(lzma_index_hash_append(coder->index_hash, in stream_decode()
272 &coder->block_options), in stream_decode()
273 coder->block_options.uncompressed_size)); in stream_decode()
275 coder->sequence = SEQ_BLOCK_HEADER; in stream_decode()
288 const lzma_ret ret = lzma_index_hash_decode(coder->index_hash, in stream_decode()
293 coder->sequence = SEQ_STREAM_FOOTER; in stream_decode()
300 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos, in stream_decode()
304 if (coder->pos < LZMA_STREAM_HEADER_SIZE) in stream_decode()
307 coder->pos = 0; in stream_decode()
314 &footer_flags, coder->buffer); in stream_decode()
321 if (lzma_index_hash_size(coder->index_hash) in stream_decode()
328 &coder->stream_flags, &footer_flags)); in stream_decode()
330 if (!coder->concatenated) in stream_decode()
333 coder->sequence = SEQ_STREAM_PADDING; in stream_decode()
339 assert(coder->concatenated); in stream_decode()
351 return coder->pos == 0 in stream_decode()
362 coder->pos = (coder->pos + 1) & 3; in stream_decode()
367 if (coder->pos != 0) { in stream_decode()
373 return_if_error(stream_decoder_reset(coder, allocator)); in stream_decode()
388 lzma_stream_coder *coder = coder_ptr; in stream_decoder_end() local
389 lzma_next_end(&coder->block_decoder, allocator); in stream_decoder_end()
390 lzma_index_hash_end(coder->index_hash, allocator); in stream_decoder_end()
391 lzma_free(coder, allocator); in stream_decoder_end()
399 const lzma_stream_coder *coder = coder_ptr; in stream_decoder_get_check() local
400 return coder->stream_flags.check; in stream_decoder_get_check()
408 lzma_stream_coder *coder = coder_ptr; in stream_decoder_memconfig() local
410 *memusage = coder->memusage; in stream_decoder_memconfig()
411 *old_memlimit = coder->memlimit; in stream_decoder_memconfig()
414 if (new_memlimit < coder->memusage) in stream_decoder_memconfig()
417 coder->memlimit = new_memlimit; in stream_decoder_memconfig()
434 lzma_stream_coder *coder = next->coder; in lzma_stream_decoder_init() local
435 if (coder == NULL) { in lzma_stream_decoder_init()
436 coder = lzma_alloc(sizeof(lzma_stream_coder), allocator); in lzma_stream_decoder_init()
437 if (coder == NULL) in lzma_stream_decoder_init()
440 next->coder = coder; in lzma_stream_decoder_init()
446 coder->block_decoder = LZMA_NEXT_CODER_INIT; in lzma_stream_decoder_init()
447 coder->index_hash = NULL; in lzma_stream_decoder_init()
450 coder->memlimit = my_max(1, memlimit); in lzma_stream_decoder_init()
451 coder->memusage = LZMA_MEMUSAGE_BASE; in lzma_stream_decoder_init()
452 coder->tell_no_check = (flags & LZMA_TELL_NO_CHECK) != 0; in lzma_stream_decoder_init()
453 coder->tell_unsupported_check in lzma_stream_decoder_init()
455 coder->tell_any_check = (flags & LZMA_TELL_ANY_CHECK) != 0; in lzma_stream_decoder_init()
456 coder->ignore_check = (flags & LZMA_IGNORE_CHECK) != 0; in lzma_stream_decoder_init()
457 coder->concatenated = (flags & LZMA_CONCATENATED) != 0; in lzma_stream_decoder_init()
458 coder->first_stream = true; in lzma_stream_decoder_init()
460 return stream_decoder_reset(coder, allocator); in lzma_stream_decoder_init()