]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Bug 657: don't save null pages
authorLee Howard <faxguy@howardsilvan.com>
Thu, 26 May 2005 20:54:46 +0000 (20:54 +0000)
committerLee Howard <faxguy@howardsilvan.com>
Thu, 26 May 2005 20:54:46 +0000 (20:54 +0000)
CHANGES
faxd/Class1Recv.c++
faxd/Class2Recv.c++
faxd/CopyQuality.c++

diff --git a/CHANGES b/CHANGES
index 23ac40d9ad9e255502c800452db18b8c84be33af..986b00d8db344fd40c31a9bbcc4fe758c4e4ff82 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@
 
 Changelog for HylaFAX
 
+* don't save null-data pages (26 May 2005)
 * Add support for OpenServer 6 (24 May 2005)
 * update config.guess and config.sub to current versions (24 May 2005)
 * add Rockwell/Conexant Class 1.0 prototype config (18 May 2005)
index 4ff18de7da02f6a57c7e1acd642433903088ad32..4f2142479875303d5406673d1a1a6a08cd488fbc 100644 (file)
@@ -677,6 +677,11 @@ Class1Modem::recvPage(TIFF* tif, u_int& ppm, fxStr& emsg, const fxStr& id)
            case FCF_PRI_MPS:                   // PRI-MPS
            case FCF_PRI_EOM:                   // PRI-EOM
            case FCF_PRI_EOP:                   // PRI-EOP
+               if (!getRecvEOLCount()) {
+                   // We have a null page, don't save it because it makes readers fail.
+                   pageGood = false;
+                   if (params.ec != EC_DISABLE) return (false);
+               }
                if (prevPage && !pageGood) recvResetPage(tif);
                if (signalRcvd == 0) tracePPM("RECV recv", lastPPM);
 
@@ -1653,6 +1658,7 @@ Class1Modem::recvPageECMData(TIFF* tif, const Class2Params& params, fxStr& emsg)
 bool
 Class1Modem::recvPageData(TIFF* tif, fxStr& emsg)
 {
+    initializeDecoder(params);
     /*
      * T.30-A ECM mode requires a substantially different protocol than non-ECM faxes.
      */
index feb088014e8e0e4a729647ae5e3b97de385e15c1..bd178b93bd7d65c5cb1f6f264c8aea322561684c 100644 (file)
@@ -298,6 +298,7 @@ Class2Modem::recvPageData(TIFF* tif, fxStr& emsg)
        hostDidCQ = modemCQ == 0 && checkQuality();
     protoTrace("Copy quality checking performed by %s", hostDidCQ ? "host" : "modem");
 
+    initializeDecoder(params);
     bool pageRecvd = recvPageDLEData(tif, hostDidCQ, params, emsg);
 
     // be careful about flushing here -- otherwise we lose +FPTS codes
index 6e15f93c40c8370b654d0b6ed46c69ecc8cd36be..42aae13484a6c02d7a443eb94c52caed1088cd42 100644 (file)
@@ -118,7 +118,6 @@ bool
 FaxModem::recvPageDLEData(TIFF* tif, bool checkQuality,
     const Class2Params& params, fxStr& emsg)
 {
-    initializeDecoder(params);
     u_int rowpixels = params.pageWidth();      // NB: assume rowpixels <= 4864
     /*
      * Data destined for the TIFF file is buffered in buf.
@@ -443,7 +442,6 @@ FaxModem::writeECMData(TIFF* tif, u_char* buf, u_int cc, const Class2Params& par
            case DF_2DMMR:
                {
                    decoderFd[1] = -1;
-                   initializeDecoder(params);
                    setupStartPage(tif, params);
                    u_int rowpixels = params.pageWidth();       // NB: assume rowpixels <= 4864
                    recvBuf = NULL;                             // just count lines, don't save it