Functional version of IrixCLJpegCompressor. This commit includes modifications used to test this class without hardware compressors available via Irix CL.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2376 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/JpegEncoder.cxx b/common/rfb/JpegEncoder.cxx
index 054a5ef..1d9b3c7 100644
--- a/common/rfb/JpegEncoder.cxx
+++ b/common/rfb/JpegEncoder.cxx
@@ -23,6 +23,9 @@
#include <rfb/ConnParams.h>
#include <rfb/LogWriter.h>
+#ifdef HAVE_CL
+#include <rfb/IrixCLJpegCompressor.h>
+#endif
#ifdef HAVE_DMEDIA
#include <rfb/IrixDMJpegCompressor.h>
#endif
@@ -42,24 +45,37 @@
JpegEncoder::JpegEncoder(SMsgWriter* writer_) : writer(writer_), jcomp(0)
{
-#ifdef HAVE_DMEDIA
- if (useHardwareJPEG) {
- vlog.debug("trying IRIX DM JPEG compressor");
- IrixDMJpegCompressor *irixComp = new IrixDMJpegCompressor;
- if (irixComp->isValid()) {
- vlog.debug("initialized IRIX DM JPEG compressor successfully");
- jcomp = irixComp;
+ // FIXME: DM should be preferred over CL.
+#ifdef HAVE_CL
+ if (!jcomp && useHardwareJPEG) {
+ vlog.debug("trying IRIX CL JPEG compressor");
+ IrixCLJpegCompressor *clComp = new IrixCLJpegCompressor;
+ if (clComp->isValid()) {
+ vlog.debug("initialized IRIX CL JPEG compressor successfully");
+ jcomp = clComp;
} else {
- vlog.error("warning: could not create IRIX DM JPEG compressor");
- delete irixComp;
+ vlog.error("warning: could not create IRIX CL JPEG compressor");
+ delete clComp;
}
}
-#else
- if (useHardwareJPEG) {
- vlog.info("no hardware JPEG compressor available");
+#endif
+#ifdef HAVE_DMEDIA
+ if (!jcomp && useHardwareJPEG) {
+ vlog.debug("trying IRIX DM JPEG compressor");
+ IrixDMJpegCompressor *dmComp = new IrixDMJpegCompressor;
+ if (dmComp->isValid()) {
+ vlog.debug("initialized IRIX DM JPEG compressor successfully");
+ jcomp = dmComp;
+ } else {
+ vlog.error("warning: could not create IRIX DM JPEG compressor");
+ delete dmComp;
+ }
}
#endif
if (!jcomp) {
+ if (useHardwareJPEG) {
+ vlog.info("no hardware JPEG compressor available");
+ }
vlog.debug("using software JPEG compressor");
jcomp = new StandardJpegCompressor;
}