Lines Matching refs:coder
61 lzma_lzma2_coder *restrict coder = coder_ptr; in lzma2_decode() local
66 while (*in_pos < in_size || coder->sequence == SEQ_LZMA) in lzma2_decode()
67 switch (coder->sequence) { in lzma2_decode()
79 coder->need_properties = true; in lzma2_decode()
80 coder->need_dictionary_reset = true; in lzma2_decode()
81 } else if (coder->need_dictionary_reset) { in lzma2_decode()
88 coder->uncompressed_size = (control & 0x1F) << 16; in lzma2_decode()
89 coder->sequence = SEQ_UNCOMPRESSED_1; in lzma2_decode()
96 coder->need_properties = false; in lzma2_decode()
97 coder->next_sequence = SEQ_PROPERTIES; in lzma2_decode()
99 } else if (coder->need_properties) { in lzma2_decode()
103 coder->next_sequence = SEQ_LZMA; in lzma2_decode()
109 coder->lzma.reset(coder->lzma.coder, in lzma2_decode()
110 &coder->options); in lzma2_decode()
118 coder->sequence = SEQ_COMPRESSED_0; in lzma2_decode()
119 coder->next_sequence = SEQ_COPY; in lzma2_decode()
122 if (coder->need_dictionary_reset) { in lzma2_decode()
125 coder->need_dictionary_reset = false; in lzma2_decode()
134 coder->uncompressed_size += (uint32_t)(in[(*in_pos)++]) << 8; in lzma2_decode()
135 coder->sequence = SEQ_UNCOMPRESSED_2; in lzma2_decode()
139 coder->uncompressed_size += in[(*in_pos)++] + 1U; in lzma2_decode()
140 coder->sequence = SEQ_COMPRESSED_0; in lzma2_decode()
141 coder->lzma.set_uncompressed(coder->lzma.coder, in lzma2_decode()
142 coder->uncompressed_size); in lzma2_decode()
146 coder->compressed_size = (uint32_t)(in[(*in_pos)++]) << 8; in lzma2_decode()
147 coder->sequence = SEQ_COMPRESSED_1; in lzma2_decode()
151 coder->compressed_size += in[(*in_pos)++] + 1U; in lzma2_decode()
152 coder->sequence = coder->next_sequence; in lzma2_decode()
156 if (lzma_lzma_lclppb_decode(&coder->options, in[(*in_pos)++])) in lzma2_decode()
159 coder->lzma.reset(coder->lzma.coder, &coder->options); in lzma2_decode()
161 coder->sequence = SEQ_LZMA; in lzma2_decode()
170 const lzma_ret ret = coder->lzma.code(coder->lzma.coder, in lzma2_decode()
175 if (in_used > coder->compressed_size) in lzma2_decode()
178 coder->compressed_size -= in_used; in lzma2_decode()
187 if (coder->compressed_size != 0) in lzma2_decode()
190 coder->sequence = SEQ_CONTROL; in lzma2_decode()
196 dict_write(dict, in, in_pos, in_size, &coder->compressed_size); in lzma2_decode()
197 if (coder->compressed_size != 0) in lzma2_decode()
200 coder->sequence = SEQ_CONTROL; in lzma2_decode()
216 lzma_lzma2_coder *coder = coder_ptr; in lzma2_decoder_end() local
218 assert(coder->lzma.end == NULL); in lzma2_decoder_end()
219 lzma_free(coder->lzma.coder, allocator); in lzma2_decoder_end()
221 lzma_free(coder, allocator); in lzma2_decoder_end()
231 lzma_lzma2_coder *coder = lz->coder; in lzma2_decoder_init() local
232 if (coder == NULL) { in lzma2_decoder_init()
233 coder = lzma_alloc(sizeof(lzma_lzma2_coder), allocator); in lzma2_decoder_init()
234 if (coder == NULL) in lzma2_decoder_init()
237 lz->coder = coder; in lzma2_decoder_init()
241 coder->lzma = LZMA_LZ_DECODER_INIT; in lzma2_decoder_init()
246 coder->sequence = SEQ_CONTROL; in lzma2_decoder_init()
247 coder->need_properties = true; in lzma2_decoder_init()
248 coder->need_dictionary_reset = options->preset_dict == NULL in lzma2_decoder_init()
251 return lzma_lzma_decoder_create(&coder->lzma, in lzma2_decoder_init()