| base.h | base.h | |||
|---|---|---|---|---|
| skipping to change at line 239 | skipping to change at line 239 | |||
| * | * | |||
| * If you think that your code is correct, this error code | * If you think that your code is correct, this error code | |||
| * can be a sign of a bug in liblzma. See the documentation | * can be a sign of a bug in liblzma. See the documentation | |||
| * how to report bugs. | * how to report bugs. | |||
| */ | */ | |||
| } lzma_ret; | } lzma_ret; | |||
| /** | /** | |||
| * \brief The `action' argument for lzma_code() | * \brief The `action' argument for lzma_code() | |||
| * | * | |||
| * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH, | * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRI | |||
| * the same `action' must is used until lzma_code() returns LZMA_STREAM_END | ER, | |||
| . | * or LZMA_FINISH, the same `action' must is used until lzma_code() returns | |||
| * Also, the amount of input (that is, strm->avail_in) must not be modified | * LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) mus | |||
| * by the application until lzma_code() returns LZMA_STREAM_END. Changing t | t | |||
| he | * not be modified by the application until lzma_code() returns | |||
| * `action' or modifying the amount of input will make lzma_code() return | * LZMA_STREAM_END. Changing the `action' or modifying the amount of input | |||
| * LZMA_PROG_ERROR. | * will make lzma_code() return LZMA_PROG_ERROR. | |||
| */ | */ | |||
| typedef enum { | typedef enum { | |||
| LZMA_RUN = 0, | LZMA_RUN = 0, | |||
| /**< | /**< | |||
| * \brief Continue coding | * \brief Continue coding | |||
| * | * | |||
| * Encoder: Encode as much input as possible. Some internal | * Encoder: Encode as much input as possible. Some internal | |||
| * buffering will probably be done (depends on the filter | * buffering will probably be done (depends on the filter | |||
| * chain in use), which causes latency: the input used won't | * chain in use), which causes latency: the input used won't | |||
| * usually be decodeable from the output of the same | * usually be decodeable from the output of the same | |||
| skipping to change at line 292 | skipping to change at line 292 | |||
| * | * | |||
| * Decoders don't support LZMA_SYNC_FLUSH. | * Decoders don't support LZMA_SYNC_FLUSH. | |||
| */ | */ | |||
| LZMA_FULL_FLUSH = 2, | LZMA_FULL_FLUSH = 2, | |||
| /**< | /**< | |||
| * \brief Finish encoding of the current Block | * \brief Finish encoding of the current Block | |||
| * | * | |||
| * All the input data going to the current Block must have | * All the input data going to the current Block must have | |||
| * been given to the encoder (the last bytes can still be | * been given to the encoder (the last bytes can still be | |||
| * pending in* next_in). Call lzma_code() with LZMA_FULL_FLU SH | * pending in *next_in). Call lzma_code() with LZMA_FULL_FLU SH | |||
| * until it returns LZMA_STREAM_END. Then continue normally | * until it returns LZMA_STREAM_END. Then continue normally | |||
| * with LZMA_RUN or finish the Stream with LZMA_FINISH. | * with LZMA_RUN or finish the Stream with LZMA_FINISH. | |||
| * | * | |||
| * This action is currently supported only by Stream encoder | * This action is currently supported only by Stream encoder | |||
| * and easy encoder (which uses Stream encoder). If there is | * and easy encoder (which uses Stream encoder). If there is | |||
| * no unfinished Block, no empty Block is created. | * no unfinished Block, no empty Block is created. | |||
| */ | */ | |||
| LZMA_FULL_BARRIER = 4, | ||||
| /**< | ||||
| * \brief Finish encoding of the current Block | ||||
| * | ||||
| * This is like LZMA_FULL_FLUSH except that this doesn't | ||||
| * necessarily wait until all the input has been made | ||||
| * available via the output buffer. That is, lzma_code() | ||||
| * might return LZMA_STREAM_END as soon as all the input | ||||
| * has been consumed (avail_in == 0). | ||||
| * | ||||
| * LZMA_FULL_BARRIER is useful with a threaded encoder if | ||||
| * one wants to split the .xz Stream into Blocks at specific | ||||
| * offsets but doesn't care if the output isn't flushed | ||||
| * immediately. Using LZMA_FULL_BARRIER allows keeping | ||||
| * the threads busy while LZMA_FULL_FLUSH would make | ||||
| * lzma_code() wait until all the threads have finished | ||||
| * until more data could be passed to the encoder. | ||||
| * | ||||
| * With a lzma_stream initialized with the single-threaded | ||||
| * lzma_stream_encoder() or lzma_easy_encoder(), | ||||
| * LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH. | ||||
| */ | ||||
| LZMA_FINISH = 3 | LZMA_FINISH = 3 | |||
| /**< | /**< | |||
| * \brief Finish the coding operation | * \brief Finish the coding operation | |||
| * | * | |||
| * All the input data must have been given to the encoder | * All the input data must have been given to the encoder | |||
| * (the last bytes can still be pending in next_in). | * (the last bytes can still be pending in next_in). | |||
| * Call lzma_code() with LZMA_FINISH until it returns | * Call lzma_code() with LZMA_FINISH until it returns | |||
| * LZMA_STREAM_END. Once LZMA_FINISH has been used, | * LZMA_STREAM_END. Once LZMA_FINISH has been used, | |||
| * the amount of input must no longer be changed by | * the amount of input must no longer be changed by | |||
| * the application. | * the application. | |||
| skipping to change at line 452 | skipping to change at line 475 | |||
| * - Once the coding has been finished, the existing lzma_stream can be | * - Once the coding has been finished, the existing lzma_stream can be | |||
| * reused. It is OK to reuse lzma_stream with different initialization | * reused. It is OK to reuse lzma_stream with different initialization | |||
| * function without calling lzma_end() first. Old allocations are | * function without calling lzma_end() first. Old allocations are | |||
| * automatically freed. | * automatically freed. | |||
| * | * | |||
| * - Finally, use lzma_end() to free the allocated memory. lzma_end() neve r | * - Finally, use lzma_end() to free the allocated memory. lzma_end() neve r | |||
| * frees the lzma_stream structure itself. | * frees the lzma_stream structure itself. | |||
| * | * | |||
| * Application may modify the values of total_in and total_out as it wants. | * Application may modify the values of total_in and total_out as it wants. | |||
| * They are updated by liblzma to match the amount of data read and | * They are updated by liblzma to match the amount of data read and | |||
| * written, but aren't used for anything else. | * written but aren't used for anything else except as a possible return | |||
| * values from lzma_get_progress(). | ||||
| */ | */ | |||
| typedef struct { | typedef struct { | |||
| const uint8_t *next_in; /**< Pointer to the next input byte. */ | const uint8_t *next_in; /**< Pointer to the next input byte. */ | |||
| size_t avail_in; /**< Number of available input bytes in next_in. */ | size_t avail_in; /**< Number of available input bytes in next_in. */ | |||
| uint64_t total_in; /**< Total number of bytes read by liblzma. */ | uint64_t total_in; /**< Total number of bytes read by liblzma. */ | |||
| uint8_t *next_out; /**< Pointer to the next output position. */ | uint8_t *next_out; /**< Pointer to the next output position. */ | |||
| size_t avail_out; /**< Amount of free space in next_out. */ | size_t avail_out; /**< Amount of free space in next_out. */ | |||
| uint64_t total_out; /**< Total number of bytes written by liblzma. * / | uint64_t total_out; /**< Total number of bytes written by liblzma. * / | |||
| /** | /** | |||
| * \brief Custom memory allocation functions | * \brief Custom memory allocation functions | |||
| * | * | |||
| * In most cases this is NULL which makes liblzma use | * In most cases this is NULL which makes liblzma use | |||
| * the standard malloc() and free(). | * the standard malloc() and free(). | |||
| * | ||||
| * \note In 5.0.x this is not a const pointer. | ||||
| */ | */ | |||
| lzma_allocator *allocator; | const lzma_allocator *allocator; | |||
| /** Internal state is not visible to applications. */ | /** Internal state is not visible to applications. */ | |||
| lzma_internal *internal; | lzma_internal *internal; | |||
| /* | /* | |||
| * Reserved space to allow possible future extensions without | * Reserved space to allow possible future extensions without | |||
| * breaking the ABI. Excluding the initialization of this structure, | * breaking the ABI. Excluding the initialization of this structure, | |||
| * you should not touch these, because the names of these variables | * you should not touch these, because the names of these variables | |||
| * may change. | * may change. | |||
| */ | */ | |||
| skipping to change at line 547 | skipping to change at line 573 | |||
| * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other | * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other | |||
| * members of the lzma_stream structure are touched. | * members of the lzma_stream structure are touched. | |||
| * | * | |||
| * \note zlib indicates an error if application end()s unfinished | * \note zlib indicates an error if application end()s unfinished | |||
| * stream structure. liblzma doesn't do this, and assumes that | * stream structure. liblzma doesn't do this, and assumes that | |||
| * application knows what it is doing. | * application knows what it is doing. | |||
| */ | */ | |||
| extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow; | extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow; | |||
| /** | /** | |||
| * \brief Get progress information | ||||
| * | ||||
| * In single-threaded mode, applications can get progress information from | ||||
| * strm->total_in and strm->total_out. In multi-threaded mode this is less | ||||
| * useful because a significant amount of both input and output data gets | ||||
| * buffered internally by liblzma. This makes total_in and total_out give | ||||
| * misleading information and also makes the progress indicator updates | ||||
| * non-smooth. | ||||
| * | ||||
| * This function gives realistic progress information also in multi-threade | ||||
| d | ||||
| * mode by taking into account the progress made by each thread. In | ||||
| * single-threaded mode *progress_in and *progress_out are set to | ||||
| * strm->total_in and strm->total_out, respectively. | ||||
| */ | ||||
| extern LZMA_API(void) lzma_get_progress(lzma_stream *strm, | ||||
| uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow; | ||||
| /** | ||||
| * \brief Get the memory usage of decoder filter chain | * \brief Get the memory usage of decoder filter chain | |||
| * | * | |||
| * This function is currently supported only when *strm has been initialize d | * This function is currently supported only when *strm has been initialize d | |||
| * with a function that takes a memlimit argument. With other functions, yo u | * with a function that takes a memlimit argument. With other functions, yo u | |||
| * should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage () | * should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage () | |||
| * to estimate the memory requirements. | * to estimate the memory requirements. | |||
| * | * | |||
| * This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how b ig | * This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how b ig | |||
| * the memory usage limit should have been to decode the input. Note that | * the memory usage limit should have been to decode the input. Note that | |||
| * this may give misleading information if decoding .xz Streams that have | * this may give misleading information if decoding .xz Streams that have | |||
| End of changes. 7 change blocks. | ||||
| 11 lines changed or deleted | 56 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||