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()
199 coder->block_options.version = 1; in stream_decode()
205 coder->block_options.filters = filters; in stream_decode()
208 return_if_error(lzma_block_header_decode(&coder->block_options, in stream_decode()
209 allocator, coder->buffer)); in stream_decode()
214 coder->block_options.ignore_check = coder->ignore_check; in stream_decode()
228 coder->memusage = memusage; in stream_decode()
230 if (memusage > coder->memlimit) { in stream_decode()
237 &coder->block_decoder, in stream_decode()
239 &coder->block_options); in stream_decode()
246 coder->block_options.filters = NULL; in stream_decode()
253 coder->sequence = SEQ_BLOCK_RUN; in stream_decode()
258 const lzma_ret ret = coder->block_decoder.code( in stream_decode()
259 coder->block_decoder.coder, allocator, in stream_decode()
268 return_if_error(lzma_index_hash_append(coder->index_hash, in stream_decode()
270 &coder->block_options), in stream_decode()
271 coder->block_options.uncompressed_size)); in stream_decode()
273 coder->sequence = SEQ_BLOCK_HEADER; in stream_decode()
286 const lzma_ret ret = lzma_index_hash_decode(coder->index_hash, in stream_decode()
291 coder->sequence = SEQ_STREAM_FOOTER; in stream_decode()
297 lzma_bufcpy(in, in_pos, in_size, coder->buffer, &coder->pos, in stream_decode()
301 if (coder->pos < LZMA_STREAM_HEADER_SIZE) in stream_decode()
304 coder->pos = 0; in stream_decode()
311 &footer_flags, coder->buffer); in stream_decode()
318 if (lzma_index_hash_size(coder->index_hash) in stream_decode()
325 &coder->stream_flags, &footer_flags)); in stream_decode()
327 if (!coder->concatenated) in stream_decode()
330 coder->sequence = SEQ_STREAM_PADDING; in stream_decode()
335 assert(coder->concatenated); in stream_decode()
347 return coder->pos == 0 in stream_decode()
358 coder->pos = (coder->pos + 1) & 3; in stream_decode()
363 if (coder->pos != 0) { in stream_decode()
369 return_if_error(stream_decoder_reset(coder, allocator)); in stream_decode()
384 lzma_stream_coder *coder = coder_ptr; in stream_decoder_end() local
385 lzma_next_end(&coder->block_decoder, allocator); in stream_decoder_end()
386 lzma_index_hash_end(coder->index_hash, allocator); in stream_decoder_end()
387 lzma_free(coder, allocator); in stream_decoder_end()
395 const lzma_stream_coder *coder = coder_ptr; in stream_decoder_get_check() local
396 return coder->stream_flags.check; in stream_decoder_get_check()
404 lzma_stream_coder *coder = coder_ptr; in stream_decoder_memconfig() local
406 *memusage = coder->memusage; in stream_decoder_memconfig()
407 *old_memlimit = coder->memlimit; in stream_decoder_memconfig()
410 if (new_memlimit < coder->memusage) in stream_decoder_memconfig()
413 coder->memlimit = new_memlimit; in stream_decoder_memconfig()
430 lzma_stream_coder *coder = next->coder; in lzma_stream_decoder_init() local
431 if (coder == NULL) { in lzma_stream_decoder_init()
432 coder = lzma_alloc(sizeof(lzma_stream_coder), allocator); in lzma_stream_decoder_init()
433 if (coder == NULL) in lzma_stream_decoder_init()
436 next->coder = coder; in lzma_stream_decoder_init()
442 coder->block_decoder = LZMA_NEXT_CODER_INIT; in lzma_stream_decoder_init()
443 coder->index_hash = NULL; in lzma_stream_decoder_init()
446 coder->memlimit = my_max(1, memlimit); in lzma_stream_decoder_init()
447 coder->memusage = LZMA_MEMUSAGE_BASE; in lzma_stream_decoder_init()
448 coder->tell_no_check = (flags & LZMA_TELL_NO_CHECK) != 0; in lzma_stream_decoder_init()
449 coder->tell_unsupported_check in lzma_stream_decoder_init()
451 coder->tell_any_check = (flags & LZMA_TELL_ANY_CHECK) != 0; in lzma_stream_decoder_init()
452 coder->ignore_check = (flags & LZMA_IGNORE_CHECK) != 0; in lzma_stream_decoder_init()
453 coder->concatenated = (flags & LZMA_CONCATENATED) != 0; in lzma_stream_decoder_init()
454 coder->first_stream = true; in lzma_stream_decoder_init()
456 return stream_decoder_reset(coder, allocator); in lzma_stream_decoder_init()