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