Changes in mapping of JPEG quality levels. Minor code cleanups.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2360 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/IrixDMJpegCompressor.cxx b/common/rfb/IrixDMJpegCompressor.cxx
index dda059f..6e155ec 100644
--- a/common/rfb/IrixDMJpegCompressor.cxx
+++ b/common/rfb/IrixDMJpegCompressor.cxx
@@ -35,7 +35,7 @@
}
//
-// Set JPEG quality level (0..100)
+// Set JPEG quality level (1..100)
//
// FIXME: Call m_ic.setImageQuality() when necessary.
//
@@ -43,10 +43,11 @@
void
IrixDMJpegCompressor::setQuality(int level)
{
- if (level < 0)
- level = 0;
- if (level > 100)
+ if (level < 1) {
+ level = 1;
+ } else if (level > 100) {
level = 100;
+ }
m_quality = level;
}
diff --git a/common/rfb/JpegCompressor.cxx b/common/rfb/JpegCompressor.cxx
index 0914f85..0de87b4 100644
--- a/common/rfb/JpegCompressor.cxx
+++ b/common/rfb/JpegCompressor.cxx
@@ -134,11 +134,11 @@
void
StandardJpegCompressor::setQuality(int level)
{
- if (level < 0)
+ if (level < 0) {
level = 0;
- if (level > 100)
+ } else if (level > 100) {
level = 100;
-
+ }
jpeg_set_quality(&m_cinfo, level, true);
}
diff --git a/common/rfb/JpegEncoder.cxx b/common/rfb/JpegEncoder.cxx
index 51d48f1..6903c2c 100644
--- a/common/rfb/JpegEncoder.cxx
+++ b/common/rfb/JpegEncoder.cxx
@@ -35,7 +35,7 @@
true);
const int JpegEncoder::qualityMap[10] = {
- 5, 10, 15, 25, 37, 50, 60, 70, 75, 80
+ 2, 10, 15, 25, 37, 50, 60, 70, 80, 90
};
JpegEncoder::JpegEncoder(SMsgWriter* writer_) : writer(writer_), jcomp(0)
@@ -71,9 +71,12 @@
void JpegEncoder::setQualityLevel(int level)
{
- if (level >= 0 && level <= 9) {
- jcomp->setQuality(qualityMap[level]);
+ if (level < 0) {
+ level = 0;
+ } else if (level > 9) {
+ level = 9;
}
+ jcomp->setQuality(qualityMap[level]);
}
bool JpegEncoder::writeRect(PixelBuffer* pb, const Rect& r)