Index: jdcoefct.c |
diff --git a/jdcoefct.c b/jdcoefct.c |
index d38db6c337ecdb7be040a2cfd47db7bbecb2ccd5..43094628169ebdee8b7a1fc176c7a2d9268edf13 100644 |
--- a/jdcoefct.c |
+++ b/jdcoefct.c |
@@ -4,6 +4,7 @@ |
* This file was part of the Independent JPEG Group's software: |
* Copyright (C) 1994-1997, Thomas G. Lane. |
* libjpeg-turbo Modifications: |
+ * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
* Copyright (C) 2010, D. R. Commander. |
* For conditions of distribution and use, see the accompanying README file. |
* |
@@ -16,56 +17,9 @@ |
* Also, the input side (only) is used when reading a file for transcoding. |
*/ |
-#define JPEG_INTERNALS |
-#include "jinclude.h" |
-#include "jpeglib.h" |
+#include "jdcoefct.h" |
#include "jpegcomp.h" |
-/* Block smoothing is only applicable for progressive JPEG, so: */ |
-#ifndef D_PROGRESSIVE_SUPPORTED |
-#undef BLOCK_SMOOTHING_SUPPORTED |
-#endif |
- |
-/* Private buffer controller object */ |
- |
-typedef struct { |
- struct jpeg_d_coef_controller pub; /* public fields */ |
- |
- /* These variables keep track of the current location of the input side. */ |
- /* cinfo->input_iMCU_row is also used for this. */ |
- JDIMENSION MCU_ctr; /* counts MCUs processed in current row */ |
- int MCU_vert_offset; /* counts MCU rows within iMCU row */ |
- int MCU_rows_per_iMCU_row; /* number of such rows needed */ |
- |
- /* The output side's location is represented by cinfo->output_iMCU_row. */ |
- |
- /* In single-pass modes, it's sufficient to buffer just one MCU. |
- * We allocate a workspace of D_MAX_BLOCKS_IN_MCU coefficient blocks, |
- * and let the entropy decoder write into that workspace each time. |
- * (On 80x86, the workspace is FAR even though it's not really very big; |
- * this is to keep the module interfaces unchanged when a large coefficient |
- * buffer is necessary.) |
- * In multi-pass modes, this array points to the current MCU's blocks |
- * within the virtual arrays; it is used only by the input side. |
- */ |
- JBLOCKROW MCU_buffer[D_MAX_BLOCKS_IN_MCU]; |
- |
- /* Temporary workspace for one MCU */ |
- JCOEF * workspace; |
- |
-#ifdef D_MULTISCAN_FILES_SUPPORTED |
- /* In multi-pass modes, we need a virtual block array for each component. */ |
- jvirt_barray_ptr whole_image[MAX_COMPONENTS]; |
-#endif |
- |
-#ifdef BLOCK_SMOOTHING_SUPPORTED |
- /* When doing block smoothing, we latch coefficient Al values here */ |
- int * coef_bits_latch; |
-#define SAVED_COEFS 6 /* we save coef_bits[0..5] */ |
-#endif |
-} my_coef_controller; |
- |
-typedef my_coef_controller * my_coef_ptr; |
/* Forward declarations */ |
METHODDEF(int) decompress_onepass |
@@ -81,30 +35,6 @@ METHODDEF(int) decompress_smooth_data |
#endif |
-LOCAL(void) |
-start_iMCU_row (j_decompress_ptr cinfo) |
-/* Reset within-iMCU-row counters for a new row (input side) */ |
-{ |
- my_coef_ptr coef = (my_coef_ptr) cinfo->coef; |
- |
- /* In an interleaved scan, an MCU row is the same as an iMCU row. |
- * In a noninterleaved scan, an iMCU row has v_samp_factor MCU rows. |
- * But at the bottom of the image, process only what's left. |
- */ |
- if (cinfo->comps_in_scan > 1) { |
- coef->MCU_rows_per_iMCU_row = 1; |
- } else { |
- if (cinfo->input_iMCU_row < (cinfo->total_iMCU_rows-1)) |
- coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->v_samp_factor; |
- else |
- coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->last_row_height; |
- } |
- |
- coef->MCU_ctr = 0; |
- coef->MCU_vert_offset = 0; |
-} |
- |
- |
/* |
* Initialize for an input processing pass. |
*/ |