Move encoder statistics into EncodeManager from SMsgWriter
It knows more details so it can track things better.
diff --git a/common/rfb/EncodeManager.h b/common/rfb/EncodeManager.h
index df0275c..a694e06 100644
--- a/common/rfb/EncodeManager.h
+++ b/common/rfb/EncodeManager.h
@@ -41,6 +41,8 @@
EncodeManager(SConnection* conn);
~EncodeManager();
+ void logStats();
+
// Hack to let ConnParams calculate the client's preferred encoding
static bool supported(int encoding);
@@ -52,6 +54,9 @@
int computeNumRects(const Region& changed);
+ Encoder *startRect(const Rect& rect, int type);
+ void endRect();
+
void writeCopyRects(const UpdateInfo& ui);
void writeSolidRects(Region *changed, const PixelBuffer* pb);
void writeRects(const Region& changed, const PixelBuffer* pb);
@@ -97,6 +102,19 @@
std::vector<Encoder*> encoders;
std::vector<int> activeEncoders;
+ struct EncoderStats {
+ unsigned rects;
+ unsigned long long bytes;
+ unsigned long long pixels;
+ unsigned long long equivalent;
+ };
+ typedef std::vector< std::vector<struct EncoderStats> > StatsVector;
+
+ unsigned updates;
+ StatsVector stats;
+ int activeType;
+ int beforeLength;
+
class OffsetPixelBuffer : public FullFramePixelBuffer {
public:
OffsetPixelBuffer() {}