| constants.c | 
           | 
          619 | 
        
        
          | constants.h | 
          @file
 Common constants used in decoder and encoder API.
  | 
          7977 | 
        
        
          | context.c | 
          Common context lookup table for all context modes.  | 
          7983 | 
        
        
          | context.h | 
          Lookup table to map the previous two bytes to a context id.
  There are four different context modeling modes defined here:
    CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,
    CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,
    CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,
    CONTEXT_SIGNED: second-order context model tuned for signed integers.
  If |p1| and |p2| are the previous two bytes, and |mode| is current context
  mode, we calculate the context as:
    context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256].
  For CONTEXT_UTF8 mode, if the previous two bytes are ASCII characters
  (i.e. < 128), this will be equivalent to
    context = 4 * context1(p1) + context2(p2),
  where context1 is based on the previous byte in the following way:
    0  : non-ASCII control
    1  : \t, \n, \r
    2  : space
    3  : other punctuation
    4  : " '
    5  : %
    6  : ( < [ {
    7  : ) > ] }
    8  : , ; :
    9  : .
    10 : =
    11 : number
    12 : upper-case vowel
    13 : upper-case consonant
    14 : lower-case vowel
    15 : lower-case consonant
  and context2 is based on the second last byte:
    0 : control, space
    1 : punctuation
    2 : upper-case letter, number
    3 : lower-case letter
  If the last byte is ASCII, and the second last byte is not (in a valid UTF8
  stream it will be a continuation byte, value between 128 and 191), the
  context is the same as if the second last byte was an ASCII control or space.
  If the last byte is a UTF8 lead byte (value >= 192), then the next byte will
  be a continuation byte and the context id is 2 or 3 depending on the LSB of
  the last byte and to a lesser extent on the second last byte if it is ASCII.
  If the last byte is a UTF8 continuation byte, the second last byte can be:
    - continuation byte: the next byte is probably ASCII or lead byte (assuming
      4-byte UTF8 characters are rare) and the context id is 0 or 1.
    - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1
    - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3
  The possible value combinations of the previous two bytes, the range of
  context ids and the type of the next byte is summarized in the table below:
  |--------\-----------------------------------------------------------------|
  |         \                         Last byte                              |
  | Second   \---------------------------------------------------------------|
  | last byte \    ASCII            |   cont. byte        |   lead byte      |
  |            \   (0-127)          |   (128-191)         |   (192-)         |
  |=============|===================|=====================|==================|
  |  ASCII      | next: ASCII/lead  |  not valid          |  next: cont.     |
  |  (0-127)    | context: 4 - 63   |                     |  context: 2 - 3  |
  |-------------|-------------------|---------------------|------------------|
  |  cont. byte | next: ASCII/lead  |  next: ASCII/lead   |  next: cont.     |
  |  (128-191)  | context: 4 - 63   |  context: 0 - 1     |  context: 2 - 3  |
  |-------------|-------------------|---------------------|------------------|
  |  lead byte  | not valid         |  next: ASCII/lead   |  not valid       |
  |  (192-207)  |                   |  context: 0 - 1     |                  |
  |-------------|-------------------|---------------------|------------------|
  |  lead byte  | not valid         |  next: cont.        |  not valid       |
  |  (208-)     |                   |  context: 2 - 3     |                  |
  |-------------|-------------------|---------------------|------------------|
 | 
          4637 | 
        
        
          | dictionary.c | 
          Embed kBrotliDictionaryData  | 
          1558 | 
        
        
          | dictionary.h | 
          Collection of static dictionary words.  | 
          1922 | 
        
        
          | dictionary_inc.h | 
           | 
          470432 | 
        
        
          | platform.c | 
          Default brotli_alloc_func  | 
          465 | 
        
        
          | platform.h | 
          Macros for compiler / platform specific features and build options.
   Build options are:
 BROTLI_BUILD_32_BIT disables 64-bit optimizations
 BROTLI_BUILD_64_BIT forces to use 64-bit optimizations
 BROTLI_BUILD_BIG_ENDIAN forces to use big-endian optimizations
 BROTLI_BUILD_ENDIAN_NEUTRAL disables endian-aware optimizations
 BROTLI_BUILD_LITTLE_ENDIAN forces to use little-endian optimizations
 BROTLI_BUILD_NO_RBIT disables "rbit" optimization for ARM CPUs
 BROTLI_BUILD_NO_UNALIGNED_READ_FAST forces off the fast-unaligned-read
      optimizations (mainly for testing purposes)
 BROTLI_DEBUG dumps file name and line number when decoder detects stream
      or memory error
 BROTLI_ENABLE_LOG enables asserts and dumps various state information
 BROTLI_ENABLE_DUMP overrides default "dump" behaviour
 | 
          23753 | 
        
        
          | shared_dictionary.c | 
          Shared Dictionary definition and utilities.  | 
          17347 | 
        
        
          | shared_dictionary_internal.h | 
          (Transparent) Shared Dictionary definition.  | 
          2409 | 
        
        
          | static_init.h | 
          Central point for static initialization.
   In case of "lazy" mode `BrotliXxxLazyStaticInit` is not provided by the
   library. Embedder is responsible for providing it. This function should call
   `BrotliXxxLazyStaticInitInner` on the first invocation. This function should
   not return until execution of `BrotliXxxLazyStaticInitInner` is finished.
   In C or before C++11 it is possible to call `BrotliXxxLazyStaticInitInner`
   on start-up path and then `BrotliEncoderLazyStaticInit` is could be no-op;
   another option is to use available thread execution controls to meet the
   requirements. For possible C++11 implementation see static_init_lazy.cc.
 | 
          1996 | 
        
        
          | transform.c | 
          RFC 7932 transforms string data  | 
          10787 | 
        
        
          | transform.h | 
          transforms is a part of ABI, but not API.
   It means that there are some functions that are supposed to be in "common"
   library, but header itself is not placed into include/brotli. This way,
   aforementioned functions will be available only to brotli internals.
  | 
          3180 | 
        
        
          | version.h | 
          Version definition.  | 
          1723 |