Lines Matching refs:coder

62 block_encoder_init(lzma_stream_coder *coder, const lzma_allocator *allocator)  in block_encoder_init()  argument
69 coder->block_options.compressed_size = LZMA_VLI_UNKNOWN; in block_encoder_init()
70 coder->block_options.uncompressed_size = LZMA_VLI_UNKNOWN; in block_encoder_init()
72 return_if_error(lzma_block_header_size(&coder->block_options)); in block_encoder_init()
75 return lzma_block_encoder_init(&coder->block_encoder, allocator, in block_encoder_init()
76 &coder->block_options); in block_encoder_init()
86 lzma_stream_coder *coder = coder_ptr; in stream_encode() local
90 switch (coder->sequence) { in stream_encode()
94 lzma_bufcpy(coder->buffer, &coder->buffer_pos, in stream_encode()
95 coder->buffer_size, out, out_pos, out_size); in stream_encode()
96 if (coder->buffer_pos < coder->buffer_size) in stream_encode()
99 if (coder->sequence == SEQ_STREAM_FOOTER) in stream_encode()
102 coder->buffer_pos = 0; in stream_encode()
103 ++coder->sequence; in stream_encode()
123 &coder->index_encoder, allocator, in stream_encode()
124 coder->index)); in stream_encode()
125 coder->sequence = SEQ_INDEX_ENCODE; in stream_encode()
132 if (!coder->block_encoder_is_initialized) in stream_encode()
133 return_if_error(block_encoder_init(coder, allocator)); in stream_encode()
137 coder->block_encoder_is_initialized = false; in stream_encode()
141 if (lzma_block_header_encode(&coder->block_options, in stream_encode()
142 coder->buffer) != LZMA_OK) in stream_encode()
145 coder->buffer_size = coder->block_options.header_size; in stream_encode()
146 coder->sequence = SEQ_BLOCK_HEADER; in stream_encode()
159 const lzma_ret ret = coder->block_encoder.code( in stream_encode()
160 coder->block_encoder.coder, allocator, in stream_encode()
168 &coder->block_options); in stream_encode()
170 return_if_error(lzma_index_append(coder->index, allocator, in stream_encode()
172 coder->block_options.uncompressed_size)); in stream_encode()
174 coder->sequence = SEQ_BLOCK_INIT; in stream_encode()
181 const lzma_ret ret = coder->index_encoder.code( in stream_encode()
182 coder->index_encoder.coder, allocator, in stream_encode()
191 .backward_size = lzma_index_size(coder->index), in stream_encode()
192 .check = coder->block_options.check, in stream_encode()
195 if (lzma_stream_footer_encode(&stream_flags, coder->buffer) in stream_encode()
199 coder->buffer_size = LZMA_STREAM_HEADER_SIZE; in stream_encode()
200 coder->sequence = SEQ_STREAM_FOOTER; in stream_encode()
216 lzma_stream_coder *coder = coder_ptr; in stream_encoder_end() local
218 lzma_next_end(&coder->block_encoder, allocator); in stream_encoder_end()
219 lzma_next_end(&coder->index_encoder, allocator); in stream_encoder_end()
220 lzma_index_end(coder->index, allocator); in stream_encoder_end()
222 for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i) in stream_encoder_end()
223 lzma_free(coder->filters[i].options, allocator); in stream_encoder_end()
225 lzma_free(coder, allocator); in stream_encoder_end()
235 lzma_stream_coder *coder = coder_ptr; in stream_encoder_update() local
237 if (coder->sequence <= SEQ_BLOCK_INIT) { in stream_encoder_update()
242 coder->block_encoder_is_initialized = false; in stream_encoder_update()
243 coder->block_options.filters = (lzma_filter *)(filters); in stream_encoder_update()
244 const lzma_ret ret = block_encoder_init(coder, allocator); in stream_encoder_update()
245 coder->block_options.filters = coder->filters; in stream_encoder_update()
249 coder->block_encoder_is_initialized = true; in stream_encoder_update()
251 } else if (coder->sequence <= SEQ_BLOCK_ENCODE) { in stream_encoder_update()
254 return_if_error(coder->block_encoder.update( in stream_encoder_update()
255 coder->block_encoder.coder, allocator, in stream_encoder_update()
264 for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i) in stream_encoder_update()
265 lzma_free(coder->filters[i].options, allocator); in stream_encoder_update()
267 return lzma_filters_copy(filters, coder->filters, allocator); in stream_encoder_update()
280 lzma_stream_coder *coder = next->coder; in stream_encoder_init() local
282 if (coder == NULL) { in stream_encoder_init()
283 coder = lzma_alloc(sizeof(lzma_stream_coder), allocator); in stream_encoder_init()
284 if (coder == NULL) in stream_encoder_init()
287 next->coder = coder; in stream_encoder_init()
292 coder->filters[0].id = LZMA_VLI_UNKNOWN; in stream_encoder_init()
293 coder->block_encoder = LZMA_NEXT_CODER_INIT; in stream_encoder_init()
294 coder->index_encoder = LZMA_NEXT_CODER_INIT; in stream_encoder_init()
295 coder->index = NULL; in stream_encoder_init()
299 coder->sequence = SEQ_STREAM_HEADER; in stream_encoder_init()
300 coder->block_options.version = 0; in stream_encoder_init()
301 coder->block_options.check = check; in stream_encoder_init()
304 lzma_index_end(coder->index, allocator); in stream_encoder_init()
305 coder->index = lzma_index_init(allocator); in stream_encoder_init()
306 if (coder->index == NULL) in stream_encoder_init()
315 &stream_flags, coder->buffer)); in stream_encoder_init()
317 coder->buffer_pos = 0; in stream_encoder_init()
318 coder->buffer_size = LZMA_STREAM_HEADER_SIZE; in stream_encoder_init()
323 return stream_encoder_update(coder, allocator, filters, NULL); in stream_encoder_init()