encperf: Optionally disable pixel translation
For 16-bit and 8-bit datasets, you can now run encperf with an argument of
-translate=0 to benchmark just the encoder without converting the datasets to
24-bit.  This allows the output of encperf to be directly compared with that
of the TurboVNC Benchmark Tools.
diff --git a/tests/encperf.cxx b/tests/encperf.cxx
index 31d7c73..2628b46 100644
--- a/tests/encperf.cxx
+++ b/tests/encperf.cxx
@@ -53,6 +53,10 @@
 
 static rfb::StringParameter format("format", "Pixel format (e.g. bgr888)", "");
 
+static rfb::BoolParameter translate("translate",
+                                    "Translate 8-bit and 16-bit datasets into 24-bit",
+                                    true);
+
 // The frame buffer (and output) is always this format
 static const rfb::PixelFormat fbPF(32, 24, false, true, 255, 255, 255, 0, 8, 16);
 
@@ -174,8 +178,6 @@
     decoders[i] = rfb::Decoder::createDecoder(i, this);
   }
 
-  pb.setPF(fbPF);
-
   // Need to skip the initial handshake and ServerInit
   setState(RFBSTATE_NORMAL);
   // That also means that the reader and writer weren't setup
@@ -186,6 +188,8 @@
   pf.parse(format);
   setPixelFormat(pf);
 
+  pb.setPF((bool)translate ? fbPF : pf);
+
   sc = new SConn();
   sc->cp.setPF(pb.getPF());
   sc->setEncodings(sizeof(encodings) / sizeof(*encodings), encodings);