Skip to content

What we pass to LZMA Backend

Peter Hyman edited this page Nov 2, 2023 · 2 revisions

LZMA gets Level, Dic Size

A change from the original is that

  • LZMA gets an absolute level
  • LZMA gets an absolute dictionary size
  • LZMA backend will operate in multi-thread mode unless option --nobemt is used

from stream.c

 457         lzma_ret = LzmaCompress(c_buf, &dlen, cthread->s_buf,
 458                 (size_t)cthread->s_len, control->lzma_properties, &prop_size,
 459                 control->compression_level,
 460                 control->dictSize, /* dict size. 0 = set default, otherwise control->dictSize */
 461                 LZMA_LC, LZMA_LP, LZMA_PB, /* lc, lp, pb */
 462                 (control->compression_level < 7 ? 32 : 64), /* fb */
 463                 ((control->threads > 1 && NOBEMT) ? 1 : 2));
 464                 /* LZMA spec has threads = 1 or 2 only.
 465                  * If NOBEMT is set, do not use multi-threading */