| OLD | NEW |
| 1 /* | 1 /* |
| 2 * jdapistd.c | 2 * jdapistd.c |
| 3 * | 3 * |
| 4 * Copyright (C) 1994-1996, Thomas G. Lane. | 4 * Copyright (C) 1994-1996, Thomas G. Lane. |
| 5 * Copyright (C) 2010, D. R. Commander. |
| 5 * This file is part of the Independent JPEG Group's software. | 6 * This file is part of the Independent JPEG Group's software. |
| 6 * For conditions of distribution and use, see the accompanying README file. | 7 * For conditions of distribution and use, see the accompanying README file. |
| 7 * | 8 * |
| 8 * This file contains application interface code for the decompression half | 9 * This file contains application interface code for the decompression half |
| 9 * of the JPEG library. These are the "standard" API routines that are | 10 * of the JPEG library. These are the "standard" API routines that are |
| 10 * used in the normal full-decompression case. They are not used by a | 11 * used in the normal full-decompression case. They are not used by a |
| 11 * transcoding-only application. Note that if an application links in | 12 * transcoding-only application. Note that if an application links in |
| 12 * jpeg_start_decompress, it will end up linking in the entire decompressor. | 13 * jpeg_start_decompress, it will end up linking in the entire decompressor. |
| 13 * We thus must separate this file from jdapimin.c to avoid linking the | 14 * We thus must separate this file from jdapimin.c to avoid linking the |
| 14 * whole decompression library into a transcoder. | 15 * whole decompression library into a transcoder. |
| 15 */ | 16 */ |
| 16 | 17 |
| 17 #define JPEG_INTERNALS | 18 #define JPEG_INTERNALS |
| 18 #include "jinclude.h" | 19 #include "jinclude.h" |
| 19 #include "jpeglib.h" | 20 #include "jpeglib.h" |
| 21 #include "jpegcomp.h" |
| 20 | 22 |
| 21 | 23 |
| 22 /* Forward declarations */ | 24 /* Forward declarations */ |
| 23 LOCAL(boolean) output_pass_setup JPP((j_decompress_ptr cinfo)); | 25 LOCAL(boolean) output_pass_setup JPP((j_decompress_ptr cinfo)); |
| 24 | 26 |
| 25 | 27 |
| 26 /* | 28 /* |
| 27 * Decompression initialization. | 29 * Decompression initialization. |
| 28 * jpeg_read_header must be completed before calling this. | 30 * jpeg_read_header must be completed before calling this. |
| 29 * | 31 * |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 } | 197 } |
| 196 | 198 |
| 197 /* Call progress monitor hook if present */ | 199 /* Call progress monitor hook if present */ |
| 198 if (cinfo->progress != NULL) { | 200 if (cinfo->progress != NULL) { |
| 199 cinfo->progress->pass_counter = (long) cinfo->output_scanline; | 201 cinfo->progress->pass_counter = (long) cinfo->output_scanline; |
| 200 cinfo->progress->pass_limit = (long) cinfo->output_height; | 202 cinfo->progress->pass_limit = (long) cinfo->output_height; |
| 201 (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); | 203 (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); |
| 202 } | 204 } |
| 203 | 205 |
| 204 /* Verify that at least one iMCU row can be returned. */ | 206 /* Verify that at least one iMCU row can be returned. */ |
| 205 lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size; | 207 lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->_min_DCT_scaled_size; |
| 206 if (max_lines < lines_per_iMCU_row) | 208 if (max_lines < lines_per_iMCU_row) |
| 207 ERREXIT(cinfo, JERR_BUFFER_SIZE); | 209 ERREXIT(cinfo, JERR_BUFFER_SIZE); |
| 208 | 210 |
| 209 /* Decompress directly into user's buffer. */ | 211 /* Decompress directly into user's buffer. */ |
| 210 if (! (*cinfo->coef->decompress_data) (cinfo, data)) | 212 if (! (*cinfo->coef->decompress_data) (cinfo, data)) |
| 211 return 0; /* suspension forced, can do nothing more */ | 213 return 0; /* suspension forced, can do nothing more */ |
| 212 | 214 |
| 213 /* OK, we processed one iMCU row. */ | 215 /* OK, we processed one iMCU row. */ |
| 214 cinfo->output_scanline += lines_per_iMCU_row; | 216 cinfo->output_scanline += lines_per_iMCU_row; |
| 215 return lines_per_iMCU_row; | 217 return lines_per_iMCU_row; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 while (cinfo->input_scan_number <= cinfo->output_scan_number && | 268 while (cinfo->input_scan_number <= cinfo->output_scan_number && |
| 267 ! cinfo->inputctl->eoi_reached) { | 269 ! cinfo->inputctl->eoi_reached) { |
| 268 if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED) | 270 if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED) |
| 269 return FALSE; /* Suspend, come back later */ | 271 return FALSE; /* Suspend, come back later */ |
| 270 } | 272 } |
| 271 cinfo->global_state = DSTATE_BUFIMAGE; | 273 cinfo->global_state = DSTATE_BUFIMAGE; |
| 272 return TRUE; | 274 return TRUE; |
| 273 } | 275 } |
| 274 | 276 |
| 275 #endif /* D_MULTISCAN_FILES_SUPPORTED */ | 277 #endif /* D_MULTISCAN_FILES_SUPPORTED */ |
| OLD | NEW |