Set font mode for the brotli call in the woff2 encoder.
diff --git a/woff2/file.h b/woff2/file.h
index f93fdee..69a92f8 100644
--- a/woff2/file.h
+++ b/woff2/file.h
@@ -14,8 +14,8 @@
 //
 // File IO helpers
 
-#ifndef BROTLI_WOFF2_FILE_H_
-#define BROTLI_WOFF2_FILE_H_
+#ifndef WOFF2_FILE_H_
+#define WOFF2_FILE_H_
 
 #include <fstream>
 #include <iterator>
@@ -37,4 +37,4 @@
 }
 
 } // namespace woff2
-#endif   //  BROTLI_WOFF2_FILE_H_
+#endif  // WOFF2_FILE_H_
diff --git a/woff2/font.h b/woff2/font.h
index 21fd634..dd003fb 100644
--- a/woff2/font.h
+++ b/woff2/font.h
@@ -15,8 +15,8 @@
 // Data model for a font file in sfnt format, reading and writing functions and
 // accessors for the glyph data.
 
-#ifndef BROTLI_WOFF2_FONT_H_
-#define BROTLI_WOFF2_FONT_H_
+#ifndef WOFF2_FONT_H_
+#define WOFF2_FONT_H_
 
 #include <stddef.h>
 #include <inttypes.h>
@@ -78,4 +78,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_FONT_H_
+#endif  // WOFF2_FONT_H_
diff --git a/woff2/glyph.h b/woff2/glyph.h
index 2e249f6..0ee755c 100644
--- a/woff2/glyph.h
+++ b/woff2/glyph.h
@@ -15,8 +15,8 @@
 // Data model and I/O for glyph data within sfnt format files for the purpose of
 // performing the preprocessing step of the WOFF 2.0 conversion.
 
-#ifndef BROTLI_WOFF2_GLYPH_H_
-#define BROTLI_WOFF2_GLYPH_H_
+#ifndef WOFF2_GLYPH_H_
+#define WOFF2_GLYPH_H_
 
 #include <stddef.h>
 #include <inttypes.h>
@@ -68,4 +68,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_GLYPH_H_
+#endif  // WOFF2_GLYPH_H_
diff --git a/woff2/normalize.h b/woff2/normalize.h
index b3d8331..dcb473b 100644
--- a/woff2/normalize.h
+++ b/woff2/normalize.h
@@ -16,8 +16,8 @@
 // files in normalized form, the WOFF 2.0 conversion is guaranteed to be
 // lossless (in a bitwise sense) only for normalized font files.
 
-#ifndef BROTLI_WOFF2_NORMALIZE_H_
-#define BROTLI_WOFF2_NORMALIZE_H_
+#ifndef WOFF2_NORMALIZE_H_
+#define WOFF2_NORMALIZE_H_
 
 namespace woff2 {
 
@@ -42,4 +42,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_NORMALIZE_H_
+#endif  // WOFF2_NORMALIZE_H_
diff --git a/woff2/ots.h b/woff2/ots.h
index 4eac1cb..9cf91bc 100644
--- a/woff2/ots.h
+++ b/woff2/ots.h
@@ -15,8 +15,8 @@
 // The parts of ots.h & opentype-sanitiser.h that we need, taken from the
 // https://code.google.com/p/ots/ project.
 
-#ifndef BROTLI_WOFF2_OTS_H_
-#define BROTLI_WOFF2_OTS_H_
+#ifndef WOFF2_OTS_H_
+#define WOFF2_OTS_H_
 
 #include <stdint.h>
 #include <arpa/inet.h>
@@ -150,4 +150,4 @@
 
 }  // namespace ots
 
-#endif  // BROTLI_WOFF2_OTS_H_
+#endif  // WOFF2_OTS_H_
diff --git a/woff2/port.h b/woff2/port.h
index e7a2708..fd5498e 100644
--- a/woff2/port.h
+++ b/woff2/port.h
@@ -14,8 +14,8 @@
 //
 // Helper function for bit twiddling
 
-#ifndef BROTLI_WOFF2_PORT_H_
-#define BROTLI_WOFF2_PORT_H_
+#ifndef WOFF2_PORT_H_
+#define WOFF2_PORT_H_
 
 namespace woff2 {
 
@@ -43,4 +43,4 @@
 }
 
 } // namespace woff2
-#endif  // BROTLI_WOFF2_PORT_H_
+#endif  // WOFF2_PORT_H_
diff --git a/woff2/round.h b/woff2/round.h
index 4d88862..cd6e5aa 100644
--- a/woff2/round.h
+++ b/woff2/round.h
@@ -14,8 +14,8 @@
 //
 // Helper for rounding
 
-#ifndef BROTLI_WOFF2_ROUND_H_
-#define BROTLI_WOFF2_ROUND_H_
+#ifndef WOFF2_ROUND_H_
+#define WOFF2_ROUND_H_
 
 namespace woff2 {
 
@@ -30,4 +30,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_ROUND_H_
+#endif  // WOFF2_ROUND_H_
diff --git a/woff2/store_bytes.h b/woff2/store_bytes.h
index 37054b2..a9a3401 100644
--- a/woff2/store_bytes.h
+++ b/woff2/store_bytes.h
@@ -15,8 +15,8 @@
 // Helper functions for storing integer values into byte streams.
 // No bounds checking is performed, that is the responsibility of the caller.
 
-#ifndef BROTLI_WOFF2_STORE_BYTES_H_
-#define BROTLI_WOFF2_STORE_BYTES_H_
+#ifndef WOFF2_STORE_BYTES_H_
+#define WOFF2_STORE_BYTES_H_
 
 #include <inttypes.h>
 #include <stddef.h>
@@ -58,4 +58,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_STORE_BYTES_H_
+#endif  // WOFF2_STORE_BYTES_H_
diff --git a/woff2/transform.h b/woff2/transform.h
index dd63e73..3722e10 100644
--- a/woff2/transform.h
+++ b/woff2/transform.h
@@ -14,8 +14,8 @@
 //
 // Library for preprocessing fonts as part of the WOFF 2.0 conversion.
 
-#ifndef BROTLI_WOFF2_TRANSFORM_H_
-#define BROTLI_WOFF2_TRANSFORM_H_
+#ifndef WOFF2_TOOLS_TRANSFORM_H_
+#define WOFF2_TOOLS_TRANSFORM_H_
 
 #include "./font.h"
 
@@ -28,4 +28,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_TRANSFORM_H_
+#endif  // WOFF2_TRANSFORM_H_
diff --git a/woff2/woff2.cc b/woff2/woff2.cc
index 43e0861..1625c00 100644
--- a/woff2/woff2.cc
+++ b/woff2/woff2.cc
@@ -40,7 +40,6 @@
 using std::vector;
 
 
-
 // simple glyph flags
 const int kGlyfOnCurve = 1 << 0;
 const int kGlyfXShort = 1 << 1;
@@ -88,9 +87,7 @@
 const uint32_t kCompressionTypeMask = 0xf;
 const uint32_t kCompressionTypeNone = 0;
 const uint32_t kCompressionTypeGzip = 1;
-const uint32_t kCompressionTypeLzma = 2;
-const uint32_t kCompressionTypeBrotli = 3;
-const uint32_t kCompressionTypeLzham = 4;
+const uint32_t kCompressionTypeBrotli = 2;
 
 // This is a special value for the short format only, as described in
 // "Design for compressed header format" in draft doc.
@@ -736,8 +733,9 @@
                    uint8_t* result, uint32_t* result_len) {
   if (compression_type == kCompressionTypeBrotli) {
     size_t compressed_len = *result_len;
-    
-    brotli::BrotliCompressBuffer(len, data, &compressed_len, result);
+    brotli::BrotliParams params;
+    params.mode = brotli::BrotliParams::MODE_FONT;
+    brotli::BrotliCompressBuffer(params, len, data, &compressed_len, result);
     *result_len = compressed_len;
     return true;
   }
@@ -839,7 +837,7 @@
     } else {
       if (flags == kCompressionTypeNone ||
           flags == kCompressionTypeGzip ||
-          flags == kCompressionTypeLzma) {
+          flags == kCompressionTypeBrotli) {
         last_compression_type = flags;
       } else {
         return OTS_FAILURE();
@@ -911,19 +909,13 @@
   if (!file.ReadU16(&num_tables) || !num_tables) {
     return OTS_FAILURE();
   }
-  // These reserved bits will be always zero in the final format, but they
-  // temporarily indicate the use of brotli, so that we can evaluate gzip, lzma
-  // and brotli side-by-side.
-  uint16_t reserved;
-  if (!file.ReadU16(&reserved)) {
-    return OTS_FAILURE();
-  }
   // We don't care about these fields of the header:
+  //   uint16_t reserved
   //   uint32_t total_sfnt_size
   //   uint16_t major_version, minor_version
   //   uint32_t meta_offset, meta_length, meta_orig_length
   //   uint32_t priv_offset, priv_length
-  if (!file.Skip(28)) {
+  if (!file.Skip(30)) {
     return OTS_FAILURE();
   }
   std::vector<Table> tables(num_tables);
@@ -996,9 +988,6 @@
     uint32_t flags = table->flags;
     const uint8_t* src_buf = data + table->src_offset;
     uint32_t compression_type = flags & kCompressionTypeMask;
-    if (compression_type == kCompressionTypeLzma && reserved > 0) {
-      compression_type = kCompressionTypeLzma + reserved;
-    }
     size_t transform_length = table->transform_length;
     if ((flags & kWoff2FlagsContinueStream) != 0) {
       if (!continue_valid) {
@@ -1090,7 +1079,7 @@
   }
   if ((table.flags & kWoff2FlagsContinueStream) == 0 &&
       ((table.flags & 3) == kCompressionTypeGzip ||
-       (table.flags & 3) == kCompressionTypeLzma)) {
+       (table.flags & 3) == kCompressionTypeBrotli)) {
     size += Base128Size(table.dst_length);
   }
   return size;
@@ -1226,7 +1215,7 @@
     }
     Table table;
     table.tag = src_table.tag;
-    table.flags = std::min(options.compression_type, kCompressionTypeLzma);
+    table.flags = options.compression_type;
     table.src_length = src_table.length;
     table.transform_length = src_table.length;
     const uint8_t* transformed_data = src_table.data;
@@ -1278,16 +1267,13 @@
     return false;
   }
   *result_length = woff2_length;
-  uint16_t reserved =
-      (options.compression_type > kCompressionTypeLzma) ?
-      options.compression_type - kCompressionTypeLzma : 0;
 
   size_t offset = 0;
   StoreU32(kWoff2Signature, &offset, result);
   StoreU32(font.flavor, &offset, result);
   StoreU32(woff2_length, &offset, result);
   Store16(tables.size(), &offset, result);
-  Store16(reserved, &offset, result);
+  Store16(0, &offset, result);  // reserved
   StoreU32(ComputeTTFLength(tables), &offset, result);
   StoreBytes(head_table->data + 4, 4, &offset, result);  // font revision
   StoreU32(0, &offset, result);  // metaOffset
diff --git a/woff2/woff2.h b/woff2/woff2.h
index aba5080..2e4ee25 100644
--- a/woff2/woff2.h
+++ b/woff2/woff2.h
@@ -14,8 +14,8 @@
 //
 // Library for converting WOFF2 format font files to their TTF versions.
 
-#ifndef BROTLI_WOFF2_WOFF2_H_
-#define BROTLI_WOFF2_WOFF2_H_
+#ifndef WOFF2_WOFF2_H_
+#define WOFF2_WOFF2_H_
 
 #include <stddef.h>
 #include <inttypes.h>
@@ -47,4 +47,4 @@
 
 } // namespace woff2
 
-#endif  // BROTLI_WOFF2_WOFF2_H_
+#endif  // WOFF2_WOFF2_H_