libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd configure configure.in pnm_src/jpeg.cxx


From: Edward Rosten
Subject: [libcvd-members] libcvd configure configure.in pnm_src/jpeg.cxx
Date: Wed, 13 Feb 2008 00:30:43 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        08/02/13 00:30:43

Modified files:
        .              : configure configure.in 
        pnm_src        : jpeg.cxx 

Log message:
        Fix to JPEG reading. Apparently it's hard to tell where the end of a 
JPEG
        image is. This will probably slow down JPEG reading significantly.
        
        To enable fast JPEG reading do --with-jpegbuffer=8192
        
        ***This will prevent you from reading multiple JPEGs from a stream***

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/configure?cvsroot=libcvd&r1=1.100&r2=1.101
http://cvs.savannah.gnu.org/viewcvs/libcvd/configure.in?cvsroot=libcvd&r1=1.101&r2=1.102
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/jpeg.cxx?cvsroot=libcvd&r1=1.9&r2=1.10

Patches:
Index: configure
===================================================================
RCS file: /cvsroot/libcvd/libcvd/configure,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -b -r1.100 -r1.101
--- configure   23 Aug 2007 01:33:34 -0000      1.100
+++ configure   13 Feb 2008 00:30:43 -0000      1.101
@@ -895,6 +895,7 @@
   --without-threads       compile without PThread support
   --with-x                use the X Window System
   --without-jpeg         compile without JPEG support
+  --with-jpegbuffer=N     Set JPEG read buffer size. N>1 will not be able to 
read multiple JPEGS from a stream.
   --without-tiff          compile without TIFF support
   --with-tiff=forceold    Debug/wierd build environment only. Force use of 
older library facilities.
   --without-png           compile without PNG support
@@ -7578,6 +7579,12 @@
   withval="$with_jpeg"
   if test "$withval" = no; then disable_jpeg=yes; else disable_jpeg=no; fi
 fi;
+
+# Check whether --with-jpegbuffer or --without-jpegbuffer was given.
+if test "${with_jpegbuffer+set}" = set; then
+  withval="$with_jpegbuffer"
+  jpegbuffersize="$withval";
+fi;
 if test "$disable_jpeg" != yes
 then
 
@@ -7813,6 +7820,33 @@
                have_jpeg=yes
 
                options="$options jpeg"
+
+               echo "$as_me:$LINENO: checking JPEG read buffer size" >&5
+echo $ECHO_N "checking JPEG read buffer size... $ECHO_C" >&6
+
+               if test "$jpegbuffersize" == yes
+               then
+                       jpegbuffersize=8192
+               elif test "$jpegbuffersize" == no || test "$jpegbuffersize" == 
""
+               then
+                       jpegbuffersize=1
+               fi
+
+               if test "$jpegbuffersize" -gt 1
+               then
+                       echo "$as_me:$LINENO: result: $jpegbuffersize (unsafe 
reading)" >&5
+echo "${ECHO_T}$jpegbuffersize (unsafe reading)" >&6;
+                       dodginess_options="$dodginess_options unsafe_jpeg"
+               else
+                       jpegbuffersize=1
+                       echo "$as_me:$LINENO: result: 1 (safe reading)" >&5
+echo "${ECHO_T}1 (safe reading)" >&6;
+               fi
+
+               cat >>confdefs.h <<_ACEOF
+#define CVD_INTERNAL_JPEG_BUFFER_SIZE $jpegbuffersize
+_ACEOF
+
        fi
 fi
 

Index: configure.in
===================================================================
RCS file: /cvsroot/libcvd/libcvd/configure.in,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -b -r1.101 -r1.102
--- configure.in        23 Aug 2007 01:33:35 -0000      1.101
+++ configure.in        13 Feb 2008 00:30:43 -0000      1.102
@@ -915,6 +915,7 @@
 #(hopefully) that it selected before libtiff is tested (libtiff may
 #depend on libjpeg)
 AC_ARG_WITH(jpeg, [  --without-jpeg      compile without JPEG support],[if 
test "$withval" = no; then disable_jpeg=yes; else disable_jpeg=no; fi])
+AC_ARG_WITH(jpegbuffer, [  --with-jpegbuffer=N     Set JPEG read buffer size. 
N>1 will not be able to read multiple JPEGS from a 
stream.],[jpegbuffersize="$withval";])
 if test "$disable_jpeg" != yes 
 then
        AC_CHECK_HEADERS(jpeglib.h)
@@ -924,6 +925,27 @@
                AC_DEFINE(CVD_IMAGE_HAVE_JPEG, [JPEG,])
                AC_SUBST(have_jpeg,yes)
                options="$options jpeg"
+               
+               AC_MSG_CHECKING([JPEG read buffer size])
+
+               if test "$jpegbuffersize" == yes
+               then
+                       jpegbuffersize=8192
+               elif test "$jpegbuffersize" == no || test "$jpegbuffersize" == 
""
+               then
+                       jpegbuffersize=1
+               fi
+
+               if test "$jpegbuffersize" -gt 1
+               then
+                       AC_MSG_RESULT([$jpegbuffersize (unsafe reading)]);
+                       dodginess_options="$dodginess_options unsafe_jpeg"
+               else
+                       jpegbuffersize=1
+                       AC_MSG_RESULT([1 (safe reading)]);
+               fi
+
+               AC_DEFINE_UNQUOTED(CVD_INTERNAL_JPEG_BUFFER_SIZE, 
$jpegbuffersize)
        fi
 fi
 

Index: pnm_src/jpeg.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/jpeg.cxx,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- pnm_src/jpeg.cxx    28 Nov 2005 18:59:05 -0000      1.9
+++ pnm_src/jpeg.cxx    13 Feb 2008 00:30:43 -0000      1.10
@@ -21,6 +21,7 @@
 #include "cvd/internal/io/jpeg.h"
 
 #include "cvd/image_io.h"
+#include "cvd/config.h"
 using namespace std;
 #include <iostream>
 #include <iomanip>
@@ -36,7 +37,7 @@
 
        istream* i;
        bool eof;
-       static const int bufsize=8192;
+       static const int bufsize=CVD_INTERNAL_JPEG_BUFFER_SIZE;
        JOCTET buf[bufsize+2];
 
        //Constructor
@@ -101,30 +102,8 @@
                        
                        //Store the byte...
                        me->buf[n] = c;
-                       
-                       //ooooh! a marker!
-                       if(c == 0xff)
-                       {
-                               c = me->i->get();
-                               if(c == EOF)
-                               {
-                                       me->eof = 1;
-                                       break;
-                               }
-
-
-                               me->buf[++n] = c;
-
-                               if(c == JPEG_EOI)
-                               {
-                                       me->eof = 1;
-                                       break;
-                               }
-                       }
                }
 
-               //me->i->read((char*)(me->buf), bufsize);
-               //me->bytes_in_buffer = me->i->gcount();        
                me->bytes_in_buffer = n;
 
                if(me->i->eof())




reply via email to

[Prev in Thread] Current Thread [Next in Thread]