/* "code length of 8 is repeated" */\r
#define BROTLI_INITIAL_REPEATED_CODE_LENGTH 8\r
\r
+/* "Large Window Brotli" */\r
+#define BROTLI_LARGE_MAX_DISTANCE_BITS 62U\r
+#define BROTLI_LARGE_MIN_WBITS 10\r
+#define BROTLI_LARGE_MAX_WBITS 30\r
+\r
/* Specification: 4. Encoding of distances */\r
#define BROTLI_NUM_DISTANCE_SHORT_CODES 16\r
#define BROTLI_MAX_NPOSTFIX 3\r
#define BROTLI_MAX_NDIRECT 120\r
-/* BROTLI_NUM_DISTANCE_SYMBOLS == 520 */\r
-#define BROTLI_NUM_DISTANCE_SYMBOLS (BROTLI_NUM_DISTANCE_SHORT_CODES + \\r
- BROTLI_MAX_NDIRECT + \\r
- (24 << (BROTLI_MAX_NPOSTFIX + 1)))\r
+#define BROTLI_MAX_DISTANCE_BITS 24U\r
+#define BROTLI_DISTANCE_ALPHABET_SIZE(NPOSTFIX, NDIRECT, MAXNBITS) ( \\r
+ BROTLI_NUM_DISTANCE_SHORT_CODES + (NDIRECT) + \\r
+ ((MAXNBITS) << ((NPOSTFIX) + 1)))\r
+/* BROTLI_NUM_DISTANCE_SYMBOLS == 1128 */\r
+#define BROTLI_NUM_DISTANCE_SYMBOLS \\r
+ BROTLI_DISTANCE_ALPHABET_SIZE( \\r
+ BROTLI_MAX_NDIRECT, BROTLI_MAX_NPOSTFIX, BROTLI_LARGE_MAX_DISTANCE_BITS)\r
+#define BROTLI_MAX_DISTANCE 0x3FFFFFC\r
+#define BROTLI_MAX_ALLOWED_DISTANCE 0x7FFFFFFC\r
\r
/* 7.1. Context modes and context ID lookup for literals */\r
/* "context IDs for literals are in the range of 0..63" */\r
/* 7.2. Context ID for distances */\r
#define BROTLI_DISTANCE_CONTEXT_BITS 2\r
\r
+/* 9.1. Format of the Stream Header */\r
+/* Number of slack bytes for window size. Don't confuse\r
+ with BROTLI_NUM_DISTANCE_SHORT_CODES. */\r
+#define BROTLI_WINDOW_GAP 16\r
+#define BROTLI_MAX_BACKWARD_LIMIT(W) (((size_t)1 << (W)) - BROTLI_WINDOW_GAP)\r
+\r
#endif /* BROTLI_COMMON_CONSTANTS_H_ */\r