/src/compiler/android/jni/ftk/fpdfemb_ext.h
http://ftk.googlecode.com/ · C++ Header · 81 lines · 34 code · 16 blank · 31 comment · 0 complexity · 786b5545250a83243971005b83396bab MD5 · raw file
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** Extended interfaces for JPEG, JPEG2000 and JBIG2 decoders **/
- typedef struct
- {
- /** Initialize the decoding context, with memory allocator provided by FPDFEMB.
- Implementation should return a pointer to the decoding context.
- */
- void* (*Init)(void* (*alloc_func)(unsigned int), void (*free_func)(void*));
- /** Finish with the decoding. */
- void (*Finish)(void* pContext);
- /** Input JPEG encoded data from the source.
- This function may be called multiple times during decoding progress.
- */
- void (*Input)(void* pContext, const unsigned char* src_buf, unsigned long src_size);
- /** Read the header information. Return non-zero for success, 0 for failure */
- int (*ReadHeader)(void* pContext);
- /** Get info from the decoder, including image width, height and number of components */
- void (*GetInfo)(void* pContext, int* width, int* height, int* nComps);
- /** Read one scanline from decoded image */
- int (*ReadScanline)(void* pContext, unsigned char* dest_buf);
- /** Get number of available source bytes left in the input stream */
- unsigned long (*GetAvailInput)(void* pContext);
- } FPDFEMB_JPEG_DECODER;
- void FPDFEMB_SetJpegDecoder(FPDFEMB_JPEG_DECODER* pDecoder);
- typedef struct
- {
- /** Initialize the decoder with the full source data.
- Implementation should return a pointer to the context.
- */
- void* (*Init)(const unsigned char* src_buf, unsigned long src_size);
- /** Destroy the context */
- void (*Finish)(void* context);
- /** Get image info from the context, including width, height, number of components
- in original codestream, and number of components in output image. For some
- particular type of encoded image, like paletted image, these two numbers of
- components may vary.
- */
- void (*GetInfo)(void* context, unsigned long* width, unsigned long* height,
- unsigned long* codestream_nComps, unsigned long* output_nComps);
- /** Do the real data decoding, output to a pre-allocated buffer.
- bTranslateColor indicates whether the decoder should use JPEG2000 embedded
- color space info to translate image into sRGB color space.
- "offsets" array describes the byte order of all components. For example,
- {2,1,0} means the first components is output to last byte.
- */
- void (*Decode)(void* context, unsigned char* dest_buf, int pitch,
- int bTranslateColor, unsigned char* offsets);
- } FPDFEMB_JPEG2000_DECODER;
- void FPDFEMB_SetJpeg2000Decoder(FPDFEMB_JPEG2000_DECODER* pDecoder);
- typedef struct
- {
- /** Do the whole decoding process. Supplied parameters include width, height, source image
- data and size, global data and size (can be shared among different images), destination
- buffer and scanline pitch in dest buffer.
- */
- void (*Decode)(unsigned long width, unsigned long height, const unsigned char* src_buf,
- unsigned long src_size, const unsigned char* global_buf, unsigned long global_size,
- unsigned char* dest_buf, int dest_pitch);
- } FPDFEMB_JBIG2_DECODER;
- void FPDFEMB_SetJbig2Decoder(FPDFEMB_JBIG2_DECODER* pDecoder);
- #ifdef __cplusplus
- };
- #endif