about summary refs log tree commit diff
path: root/converter
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-07-31 02:21:47 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-07-31 02:21:47 +0000
commit2a17e16ebb738c4a550161fb25a0c426251db6b2 (patch)
tree34716281e6e76bf39cd4396c100de90c5036689a /converter
parent879e2a43d365223950ed875202025695df06d3d0 (diff)
downloadnetpbm-mirror-2a17e16ebb738c4a550161fb25a0c426251db6b2.tar.gz
netpbm-mirror-2a17e16ebb738c4a550161fb25a0c426251db6b2.tar.xz
netpbm-mirror-2a17e16ebb738c4a550161fb25a0c426251db6b2.zip
Work with non-backward-compatible JPEG library version 7
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@960 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter')
-rw-r--r--converter/ppm/ppmtompeg/jpeg.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/converter/ppm/ppmtompeg/jpeg.c b/converter/ppm/ppmtompeg/jpeg.c
index a6e1eced..a703cf39 100644
--- a/converter/ppm/ppmtompeg/jpeg.c
+++ b/converter/ppm/ppmtompeg/jpeg.c
@@ -53,6 +53,17 @@ extern void jcopy_sample_rows JPP((JSAMPARRAY input_array, int source_row,
 #define HEADER_SIZE 607   /*JFIF header size used on output images*/
 
 
+static int
+minDctVScaledSize(struct jpeg_decompress_struct const cinfo) {
+
+#if JPEG_LIB_VERSION >= 70
+    return cinfo.min_DCT_v_scaled_size;
+#else
+    return cinfo.min_DCT_scaled_size;
+#endif
+}
+
+
 
 /*=======================================================================*
  *                                                                       *
@@ -417,11 +428,7 @@ ReadJPEG(MpegFrame * const mf,
      */
   
     /* set parameters for decompression */
-#ifdef JPEG4
-    cinfo.want_raw_output = TRUE;
-#else
     cinfo.raw_data_out = TRUE;
-#endif
     cinfo.out_color_space = JCS_YCbCr;
   
     /* calculate image output dimensions */
@@ -467,11 +474,7 @@ ReadJPEG(MpegFrame * const mf,
     /* Make an 8-row-high sample array that will go away when done
        with image
     */
-#ifdef JPEG4
-    buffer_height = 8;  /* could be 2, 4,8 rows high */
-#else
-    buffer_height = cinfo.max_v_samp_factor * cinfo.min_DCT_scaled_size;
-#endif
+    buffer_height = cinfo.max_v_samp_factor * minDctVScaledSize(cinfo);
   
     for(cp=0,compptr = cinfo.comp_info;cp<cinfo.num_components;
         cp++,compptr++) {
@@ -495,11 +498,7 @@ ReadJPEG(MpegFrame * const mf,
 
     while (cinfo.output_scanline < cinfo.output_height) {
 
-#ifdef JPEG4
-        (void) jpeg_read_raw_scanlines(&cinfo, scanarray, buffer_height);
-#else
         (void) jpeg_read_raw_data(&cinfo, scanarray, buffer_height);
-#endif
 
         /* alter subsample ratio's if neccessary */
         if ((h_samp[0]==2) && (h_samp[1]==1) && (h_samp[2]==1) &&