1///////////////////////////////////////////////////////////////////////////////
2//
3/// \file       memusage.c
4/// \brief      Calculates memory usage using lzma_memory_usage()
5//
6//  Author:     Lasse Collin
7//
8//  This file has been put into the public domain.
9//  You can do whatever you want with this file.
10//
11///////////////////////////////////////////////////////////////////////////////
12
13#include "sysdefs.h"
14#include "lzma.h"
15#include <stdio.h>
16
17int
18main(void)
19{
20	lzma_options_lzma lzma = {
21		.dict_size = (1U << 30) + (1U << 29),
22		.lc = 3,
23		.lp = 0,
24		.pb = 2,
25		.preset_dict = NULL,
26		.preset_dict_size = 0,
27		.mode = LZMA_MODE_NORMAL,
28		.nice_len = 48,
29		.mf = LZMA_MF_BT4,
30		.depth = 0,
31	};
32
33/*
34	lzma_options_filter filters[] = {
35		{ LZMA_FILTER_LZMA1,
36			(lzma_options_lzma *)&lzma_preset_lzma[6 - 1] },
37		{ UINT64_MAX, NULL }
38	};
39*/
40	lzma_filter filters[] = {
41		{ LZMA_FILTER_LZMA1, &lzma },
42		{ UINT64_MAX, NULL }
43	};
44
45	printf("Encoder: %10" PRIu64 " B\n",
46			lzma_raw_encoder_memusage(filters));
47	printf("Decoder: %10" PRIu64 " B\n",
48			lzma_raw_decoder_memusage(filters));
49
50	return 0;
51}
52