| OLD | NEW |
| (Empty) |
| 1 #ifdef __cplusplus | |
| 2 extern "C" { | |
| 3 #endif | |
| 4 | |
| 5 /** Extended interfaces for JPEG, JPEG2000 and JBIG2 decoders **/ | |
| 6 typedef struct | |
| 7 { | |
| 8 /** Initialize the decoding context, with memory allocator provided by F
PDFEMB. | |
| 9 Implementation should return a pointer to the decoding context. | |
| 10 */ | |
| 11 void* (*Init)(void* (*alloc_func)(unsigned int), void (*free_func)(voi
d*)); | |
| 12 | |
| 13 /** Finish with the decoding. */ | |
| 14 void (*Finish)(void* pContext); | |
| 15 | |
| 16 /** Input JPEG encoded data from the source. | |
| 17 This function may be called multiple times during decoding progr
ess. | |
| 18 */ | |
| 19 void (*Input)(void* pContext, const unsigned char* src_buf, unsigned
long src_size); | |
| 20 | |
| 21 /** Read the header information. Return non-zero for success, 0 for fail
ure */ | |
| 22 int (*ReadHeader)(void* pContext); | |
| 23 | |
| 24 /** Get info from the decoder, including image width, height and number
of components */ | |
| 25 void (*GetInfo)(void* pContext, int* width, int* height, int* nComps)
; | |
| 26 | |
| 27 /** Read one scanline from decoded image */ | |
| 28 int (*ReadScanline)(void* pContext, unsigned char* dest_buf)
; | |
| 29 | |
| 30 /** Get number of available source bytes left in the input stream */ | |
| 31 unsigned long (*GetAvailInput)(void* pContext); | |
| 32 } FPDFEMB_JPEG_DECODER; | |
| 33 | |
| 34 void FPDFEMB_SetJpegDecoder(FPDFEMB_JPEG_DECODER* pDecoder); | |
| 35 | |
| 36 typedef struct | |
| 37 { | |
| 38 /** Initialize the decoder with the full source data. | |
| 39 Implementation should return a pointer to the context. | |
| 40 */ | |
| 41 void* (*Init)(const unsigned char* src_buf, unsigned long src_size); | |
| 42 | |
| 43 /** Destroy the context */ | |
| 44 void (*Finish)(void* context); | |
| 45 | |
| 46 /** Get image info from the context, including width, height, number of
components | |
| 47 in original codestream, and number of components in output image
. For some | |
| 48 particular type of encoded image, like paletted image, these two
numbers of | |
| 49 components may vary. | |
| 50 */ | |
| 51 void (*GetInfo)(void* context, unsigned long* width, unsigned long* h
eight, | |
| 52 unsigned long* codestream_nComps, unsigned long*
output_nComps); | |
| 53 | |
| 54 /** Do the real data decoding, output to a pre-allocated buffer. | |
| 55 bTranslateColor indicates whether the decoder should use JPEG200
0 embedded | |
| 56 color space info to translate image into sRGB color space. | |
| 57 "offsets" array describes the byte order of all components. For
example, | |
| 58 {2,1,0} means the first components is output to last byte. | |
| 59 */ | |
| 60 void (*Decode)(void* context, unsigned char* dest_buf, int pitch, | |
| 61 int bTranslateColor, unsigned char* offsets); | |
| 62 } FPDFEMB_JPEG2000_DECODER; | |
| 63 | |
| 64 void FPDFEMB_SetJpeg2000Decoder(FPDFEMB_JPEG2000_DECODER* pDecoder); | |
| 65 | |
| 66 typedef struct | |
| 67 { | |
| 68 /** Do the whole decoding process. Supplied parameters include width, he
ight, source image | |
| 69 data and size, global data and size (can be shared among differe
nt images), destination | |
| 70 buffer and scanline pitch in dest buffer. | |
| 71 */ | |
| 72 void (*Decode)(unsigned long width, unsigned long height, const unsig
ned char* src_buf, | |
| 73 unsigned long src_size, const unsigned char* glo
bal_buf, unsigned long global_size, | |
| 74 unsigned char* dest_buf, int dest_pitch); | |
| 75 } FPDFEMB_JBIG2_DECODER; | |
| 76 | |
| 77 void FPDFEMB_SetJbig2Decoder(FPDFEMB_JBIG2_DECODER* pDecoder); | |
| 78 | |
| 79 #ifdef __cplusplus | |
| 80 }; | |
| 81 #endif | |
| OLD | NEW |