auto_decoder.c File Reference

Autodetect between .xz Stream and .lzma (LZMA_Alone) formats. More...

`#include "stream_decoder.h"`
`#include "alone_decoder.h"`

## Data Structures

struct | lzma_auto_coder

## Functions

static lzma_ret | auto_decode (void *coder_ptr, const lzma_allocator *allocator, const uint8_t *restrict in, size_t *restrict in_pos, size_t in_size, uint8_t *restrict out, size_t *restrict out_pos, size_t out_size, lzma_action action)
static void | auto_decoder_end (void *coder_ptr, const lzma_allocator *allocator)
static lzma_check | auto_decoder_get_check (const void *coder_ptr)
static lzma_ret | auto_decoder_memconfig (void *coder_ptr, uint64_t *memusage, uint64_t *old_memlimit, uint64_t new_memlimit)
static lzma_ret | auto_decoder_init (lzma_next_coder *next, const lzma_allocator *allocator, uint64_t memlimit, uint32_t flags)
lzma_ret | lzma_auto_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags)
| Decode .xz Streams and .lzma files with autodetection. More...

## Detailed Description

Autodetect between .xz Stream and .lzma (LZMA_Alone) formats.

## Function Documentation

## lzma_auto_decoder()

lzma_ret lzma_auto_decoder | ( | lzma_stream * | strm,
|  | uint64_t | memlimit,
|  | uint32_t | flags
| ) |  |

Decode .xz Streams and .lzma files with autodetection.

This decoder autodetects between the .xz and .lzma file formats, and calls lzma_stream_decoder() or lzma_alone_decoder() once the type of the input file has been detected.

Parameters

  strm | Pointer to properly prepared lzma_stream
  memlimit | Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
  flags | Bitwise-or of flags, or zero for no flags.

Returns
  - LZMA_OK: Initialization was successful.
  - LZMA_MEM_ERROR: Cannot allocate memory.
  - LZMA_OPTIONS_ERROR: Unsupported flags
  - LZMA_PROG_ERROR

References lzma_next_strm_init.