blob: 7927d01861651aedc504a0ecc8a1b0cc8ca3d633 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
// Compress/BZip2Const.h
#ifndef __COMPRESS_BZIP2_CONST_H
#define __COMPRESS_BZIP2_CONST_H
namespace NCompress {
namespace NBZip2 {
const Byte kArSig0 = 'B';
const Byte kArSig1 = 'Z';
const Byte kArSig2 = 'h';
const Byte kArSig3 = '0';
const Byte kFinSig0 = 0x17;
const Byte kFinSig1 = 0x72;
const Byte kFinSig2 = 0x45;
const Byte kFinSig3 = 0x38;
const Byte kFinSig4 = 0x50;
const Byte kFinSig5 = 0x90;
const Byte kBlockSig0 = 0x31;
const Byte kBlockSig1 = 0x41;
const Byte kBlockSig2 = 0x59;
const Byte kBlockSig3 = 0x26;
const Byte kBlockSig4 = 0x53;
const Byte kBlockSig5 = 0x59;
const unsigned kNumOrigBits = 24;
const unsigned kNumTablesBits = 3;
const unsigned kNumTablesMin = 2;
const unsigned kNumTablesMax = 6;
const unsigned kNumLevelsBits = 5;
const unsigned kMaxHuffmanLen = 20; // Check it
const unsigned kMaxAlphaSize = 258;
const unsigned kGroupSize = 50;
const unsigned kBlockSizeMultMin = 1;
const unsigned kBlockSizeMultMax = 9;
const UInt32 kBlockSizeStep = 100000;
const UInt32 kBlockSizeMax = kBlockSizeMultMax * kBlockSizeStep;
const unsigned kNumSelectorsBits = 15;
const UInt32 kNumSelectorsMax = (2 + (kBlockSizeMax / kGroupSize));
const unsigned kRleModeRepSize = 4;
/*
The number of selectors stored in bzip2 block:
(numSelectors <= 18001) - must work with any decoder.
(numSelectors == 18002) - works with bzip2 1.0.6 decoder and all derived decoders.
(numSelectors > 18002)
lbzip2 2.5: encoder can write up to (18001 + 7) selectors.
7-Zip before 19.03: decoder doesn't support it.
7-Zip 19.03: decoder allows 8 additional selector records for lbzip2 compatibility.
bzip2 1.0.6: decoder can overflow selector[18002] arrays. But there are another
arrays after selector arrays. So the compiled code works.
bzip2 1.0.7: decoder doesn't support it.
bzip2 1.0.8: decoder allows additional selector records for lbzip2 compatibility.
*/
}}
#endif
|