OLD | NEW |
1 /* | 1 /* |
2 * jdhuff.c | 2 * jdhuff.c |
3 * | 3 * |
4 * Copyright (C) 1991-1997, Thomas G. Lane. | 4 * Copyright (C) 1991-1997, Thomas G. Lane. |
5 * This file is part of the Independent JPEG Group's software. | 5 * This file is part of the Independent JPEG Group's software. |
6 * For conditions of distribution and use, see the accompanying README file. | 6 * For conditions of distribution and use, see the accompanying README file. |
7 * | 7 * |
8 * This file contains Huffman entropy decoding routines. | 8 * This file contains Huffman entropy decoding routines. |
9 * | 9 * |
10 * Much of the complexity here has to do with supporting input suspension. | 10 * Much of the complexity here has to do with supporting input suspension. |
11 * If the data source module demands suspension, we want to be able to back | 11 * If the data source module demands suspension, we want to be able to back |
12 * up to the start of the current MCU. To do this, we copy state variables | 12 * up to the start of the current MCU. To do this, we copy state variables |
13 * into local working storage, and update them back to the permanent | 13 * into local working storage, and update them back to the permanent |
14 * storage only upon successful completion of an MCU. | 14 * storage only upon successful completion of an MCU. |
15 */ | 15 */ |
16 | 16 |
17 #define JPEG_INTERNALS | 17 #define JPEG_INTERNALS |
18 #include "jinclude.h" | 18 #include "jinclude.h" |
19 #include "jpeglib.h" | 19 #include "jpeglib.h" |
20 #include "jdhuff.h" /* Declarations shared with jdphuff.c */ | 20 #include "jdhuff.h" /* Declarations shared with jdphuff.c */ |
21 | 21 |
22 #ifdef _FX_MANAGED_CODE_ | |
23 #define savable_state savable_state_d | |
24 #endif | |
25 | |
26 /* | 22 /* |
27 * Expanded entropy decoder object for Huffman decoding. | 23 * Expanded entropy decoder object for Huffman decoding. |
28 * | 24 * |
29 * The savable_state subrecord contains fields that change within an MCU, | 25 * The savable_state subrecord contains fields that change within an MCU, |
30 * but must not be updated permanently until we complete the MCU. | 26 * but must not be updated permanently until we complete the MCU. |
31 */ | 27 */ |
32 | 28 |
33 typedef struct { | 29 typedef struct { |
34 int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ | 30 int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ |
35 } savable_state; | 31 } savable_state; |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 SIZEOF(huff_entropy_decoder)); | 641 SIZEOF(huff_entropy_decoder)); |
646 cinfo->entropy = (struct jpeg_entropy_decoder *) entropy; | 642 cinfo->entropy = (struct jpeg_entropy_decoder *) entropy; |
647 entropy->pub.start_pass = start_pass_huff_decoder; | 643 entropy->pub.start_pass = start_pass_huff_decoder; |
648 entropy->pub.decode_mcu = decode_mcu; | 644 entropy->pub.decode_mcu = decode_mcu; |
649 | 645 |
650 /* Mark tables unallocated */ | 646 /* Mark tables unallocated */ |
651 for (i = 0; i < NUM_HUFF_TBLS; i++) { | 647 for (i = 0; i < NUM_HUFF_TBLS; i++) { |
652 entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; | 648 entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; |
653 } | 649 } |
654 } | 650 } |
OLD | NEW |