123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368 |
- #ifndef JPEGLIB_H
- #define JPEGLIB_H
- #ifndef JCONFIG_INCLUDED
- #include "jconfig.h"
- #endif
- #include "jmorecfg.h"
- #ifdef GPU_ACCELERATE
- using namespace std;
- #include <iostream>
- #include <fstream>
- #include <sstream>
- #include <vector>
- #include <cstdlib>
- #include <cuda.h>
- #include <jerror.h>
- #include <glib.h>
- #include "cuda_runtime.h"
- #include "nvjpeg.h"
- #include "nvbufsurface.h"
- inline bool CHECK_(cudaError_t e, int iLine, const char *szFile) {
- if (e != cudaSuccess) {
- std::cout << "CUDA runtime error " << e << " " << cudaGetErrorName(e) << " at line " << iLine << " in file " << szFile << std::endl;
- abort ();
- return false;
- }
- return true;
- }
- #define ck(call) CHECK_((call), __LINE__, __FILE__)
- #define cudaCheckError() { \
- cudaError_t e=cudaGetLastError(); \
- if(e!=cudaSuccess) { \
- std::cout << "Cuda failure: '" << cudaGetErrorString(e) << "'\n"; \
- return 1; \
- } \
- }
- #define nvjpegCheckError(call) { \
- nvjpegStatus_t e = (call); \
- if(e != NVJPEG_STATUS_SUCCESS) { \
- std::cout << "nvjpeg failure: error #" << e << "\n"; \
- return 1; \
- } \
- }
- #endif
- #ifdef __cplusplus
- #ifndef DONT_USE_EXTERN_C
- extern "C" {
- #endif
- #endif
- #define JPEG_LIB_VERSION 80
- #define DCTSIZE 8
- #define DCTSIZE2 64
- #define NUM_QUANT_TBLS 4
- #define NUM_HUFF_TBLS 4
- #define NUM_ARITH_TBLS 16
- #define MAX_COMPS_IN_SCAN 4
- #define MAX_SAMP_FACTOR 4
- #define C_MAX_BLOCKS_IN_MCU 10
- #ifndef D_MAX_BLOCKS_IN_MCU
- #define D_MAX_BLOCKS_IN_MCU 10
- #endif
- typedef JSAMPLE FAR *JSAMPROW;
- typedef JSAMPROW *JSAMPARRAY;
- typedef JSAMPARRAY *JSAMPIMAGE;
- typedef JCOEF JBLOCK[DCTSIZE2];
- typedef JBLOCK FAR *JBLOCKROW;
- typedef JBLOCKROW *JBLOCKARRAY;
- typedef JBLOCKARRAY *JBLOCKIMAGE;
- typedef JCOEF FAR *JCOEFPTR;
- typedef struct {
-
- UINT16 quantval[DCTSIZE2];
-
- boolean sent_table;
- } JQUANT_TBL;
- typedef struct {
-
- UINT8 bits[17];
-
- UINT8 huffval[256];
-
- boolean sent_table;
- } JHUFF_TBL;
- typedef struct {
-
-
-
- int component_id;
- int component_index;
- int h_samp_factor;
- int v_samp_factor;
- int quant_tbl_no;
-
-
-
-
- int dc_tbl_no;
- int ac_tbl_no;
-
-
-
-
-
- JDIMENSION width_in_blocks;
- JDIMENSION height_in_blocks;
-
- int DCT_h_scaled_size;
- int DCT_v_scaled_size;
-
- JDIMENSION downsampled_width;
- JDIMENSION downsampled_height;
-
- boolean component_needed;
-
-
- int MCU_width;
- int MCU_height;
- int MCU_blocks;
- int MCU_sample_width;
- int last_col_width;
- int last_row_height;
-
- JQUANT_TBL * quant_table;
-
- void * dct_table;
- } jpeg_component_info;
- typedef struct {
- int comps_in_scan;
- int component_index[MAX_COMPS_IN_SCAN];
- int Ss, Se;
- int Ah, Al;
- } jpeg_scan_info;
- typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr;
- struct jpeg_marker_struct {
- jpeg_saved_marker_ptr next;
- UINT8 marker;
- unsigned int original_length;
- unsigned int data_length;
- JOCTET FAR * data;
-
- };
- typedef enum {
- JCS_UNKNOWN,
- JCS_GRAYSCALE,
- JCS_RGB,
- JCS_YCbCr,
- JCS_CMYK,
- JCS_YCCK,
- #ifdef ANDROID_RGB
- JCS_RGBA_8888,
- JCS_RGB_565
- #else
- #ifdef TEGRA_ACCELERATE
- JCS_RGBA_8888,
- JCS_RGB_565
- #endif
- #endif
- } J_COLOR_SPACE;
- typedef enum {
- JDCT_ISLOW,
- JDCT_IFAST,
- JDCT_FLOAT
- } J_DCT_METHOD;
- #ifndef JDCT_DEFAULT
- #define JDCT_DEFAULT JDCT_ISLOW
- #endif
- #ifndef JDCT_FASTEST
- #define JDCT_FASTEST JDCT_IFAST
- #endif
- typedef enum {
- JDITHER_NONE,
- JDITHER_ORDERED,
- JDITHER_FS
- } J_DITHER_MODE;
- #ifdef TEGRA_ACCELERATE
- struct jpeg_tegra_mgr {
- unsigned char *buff[3];
- unsigned int pitch[3];
- unsigned int mcu_type;
-
-
-
-
- };
- typedef struct jpeg_tegra_mgr j_tegra_mgr;
- typedef struct jpeg_tegra_mgr * j_tegra_mgr_ptr;
- #endif
- #ifdef GPU_ACCELERATE
- struct encode_params_t {
- std::string input_dir;
- std::string output_dir;
- std::string format;
- std::string subsampling;
- int quality;
- int huf;
- int dev;
- };
- #endif
- #ifdef TEGRA_ACCELERATE
- #define jpeg_common_fields \
- struct jpeg_error_mgr * err; \
- struct jpeg_memory_mgr * mem; \
- struct jpeg_progress_mgr * progress; \
- struct jpeg_tegra_mgr * jpegTegraMgr; \
- void * client_data; \
- boolean is_decompressor; \
- boolean tegra_acceleration; \
- boolean buffer_in_use; \
- unsigned int initWidth; \
- void *nvbufsurfptr; \
- unsigned int initHeight; \
- unsigned int initBitstreamBuffer; \
- unsigned int inputBuffSize; \
- unsigned int outputBuffSize; \
- boolean rgb565; \
- boolean IsVendorbuf; \
- unsigned char *pVendor_buf; \
- unsigned int Vendorbuf_Size; \
- int global_state; \
- int fd; \
- boolean bMeasure_ImageProcessTime;
- #elif GPU_ACCELERATE
- #define jpeg_common_fields \
- struct jpeg_error_mgr * err; \
- struct jpeg_memory_mgr * mem; \
- struct jpeg_progress_mgr * progress; \
- void * client_data; \
- boolean is_decompressor; \
- int global_state; \
- unsigned int inputBuffSize; \
- unsigned char *start_of_data; \
- boolean IsVendorbuf; \
- unsigned char *pVendor_buf; \
- unsigned int Vendorbuf_Size; \
- unsigned int outputBuffSize; \
- void *surf_ptr; \
- int batch_size; \
- int gpu_id; \
- unsigned char *alpha; \
- unsigned int quality; \
- boolean grayscale; \
- nvjpegJpegState_t nvjpeg_state; \
- nvjpegJpegState_t nvjpegenc_state; \
- nvjpegEncoderState_t encoder_state; \
- nvjpegHandle_t nvjpeg_handle; \
- nvjpegHandle_t nvjpegenc_handle; \
- cudaStream_t stream; \
- nvjpegOutputFormat_t fmt; \
- bool write_decoded; \
- std::string output_dir; \
- bool pipelined; \
- bool batched; \
- vector<size_t> file_len; \
- vector<int> widths; \
- vector<int> heights; \
- vector<nvjpegImage_t> iout; \
- vector<nvjpegImage_t> isz; \
- GQueue *buf_q;\
- GMutex q_lck;\
- cudaStream_t cuda_stream; \
- NvBufSurface *surf1; \
- unsigned int nvjpegdec_init; \
- boolean nvjpegenc_init;
- #else
- #define jpeg_common_fields \
- struct jpeg_error_mgr * err; \
- struct jpeg_memory_mgr * mem; \
- struct jpeg_progress_mgr * progress; \
- void * client_data; \
- boolean is_decompressor; \
- int global_state
- #endif
- struct jpeg_common_struct {
- jpeg_common_fields;
-
- };
- typedef struct jpeg_common_struct * j_common_ptr;
- typedef struct jpeg_compress_struct * j_compress_ptr;
- typedef struct jpeg_decompress_struct * j_decompress_ptr;
- #ifdef TEGRA_ACCELERATE
- typedef struct {
- unsigned int left, top;
- unsigned int width, height;
- }jpeg_rect_struct;
- #endif
- struct jpeg_compress_struct {
- jpeg_common_fields;
-
- struct jpeg_destination_mgr * dest;
-
- JDIMENSION image_width;
- JDIMENSION image_height;
- int input_components;
- J_COLOR_SPACE in_color_space;
- double input_gamma;
-
- unsigned int scale_num, scale_denom;
- JDIMENSION jpeg_width;
- JDIMENSION jpeg_height;
-
- int data_precision;
- int num_components;
- J_COLOR_SPACE jpeg_color_space;
- jpeg_component_info * comp_info;
-
- JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
- int q_scale_factor[NUM_QUANT_TBLS];
-
- JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
- JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
-
- UINT8 arith_dc_L[NUM_ARITH_TBLS];
- UINT8 arith_dc_U[NUM_ARITH_TBLS];
- UINT8 arith_ac_K[NUM_ARITH_TBLS];
- int num_scans;
- const jpeg_scan_info * scan_info;
-
- boolean raw_data_in;
- boolean arith_code;
- boolean optimize_coding;
- boolean CCIR601_sampling;
- boolean do_fancy_downsampling;
- int smoothing_factor;
- J_DCT_METHOD dct_method;
-
- unsigned int restart_interval;
- int restart_in_rows;
-
- boolean write_JFIF_header;
- UINT8 JFIF_major_version;
- UINT8 JFIF_minor_version;
-
-
-
-
- UINT8 density_unit;
- UINT16 X_density;
- UINT16 Y_density;
- boolean write_Adobe_marker;
-
-
- JDIMENSION next_scanline;
-
-
- boolean progressive_mode;
- int max_h_samp_factor;
- int max_v_samp_factor;
- int min_DCT_h_scaled_size;
- int min_DCT_v_scaled_size;
- JDIMENSION total_iMCU_rows;
-
-
-
- int comps_in_scan;
- jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
-
-
- JDIMENSION MCUs_per_row;
- JDIMENSION MCU_rows_in_scan;
-
- int blocks_in_MCU;
- int MCU_membership[C_MAX_BLOCKS_IN_MCU];
-
-
- int Ss, Se, Ah, Al;
- int block_size;
- const int * natural_order;
- int lim_Se;
- boolean frame_to_encode;
- unsigned int buf_size_to_encode;
- unsigned char *pOutputSurface;
- boolean init_encMgr;
-
- struct jpeg_comp_master * master;
- struct jpeg_c_main_controller * main;
- struct jpeg_c_prep_controller * prep;
- struct jpeg_c_coef_controller * coef;
- struct jpeg_marker_writer * marker;
- struct jpeg_color_converter * cconvert;
- struct jpeg_downsampler * downsample;
- struct jpeg_forward_dct * fdct;
- struct jpeg_entropy_encoder * entropy;
- jpeg_scan_info * script_space;
- int script_space_size;
- #ifdef TEGRA_ACCELERATE
- boolean skip_SOI;
- boolean exif_data;
- boolean header_len;
- boolean crop_region;
- jpeg_rect_struct crop_rect;
- boolean image_scale;
- JDIMENSION scaled_image_width;
- JDIMENSION scaled_image_height;
- #endif
- };
- struct jpeg_decompress_struct {
- jpeg_common_fields;
-
- struct jpeg_source_mgr * src;
-
-
- JDIMENSION image_width;
- JDIMENSION image_height;
- int num_components;
- J_COLOR_SPACE jpeg_color_space;
-
- J_COLOR_SPACE out_color_space;
- unsigned int scale_num, scale_denom;
- double output_gamma;
- boolean buffered_image;
- boolean raw_data_out;
- J_DCT_METHOD dct_method;
- boolean do_fancy_upsampling;
- boolean do_block_smoothing;
- boolean quantize_colors;
-
- J_DITHER_MODE dither_mode;
- boolean two_pass_quantize;
- int desired_number_of_colors;
-
- boolean enable_1pass_quant;
- boolean enable_external_quant;
- boolean enable_2pass_quant;
-
- JDIMENSION output_width;
- JDIMENSION output_height;
- int out_color_components;
- int output_components;
-
- int rec_outbuf_height;
-
-
- int actual_number_of_colors;
- JSAMPARRAY colormap;
-
-
- JDIMENSION output_scanline;
-
- int input_scan_number;
- JDIMENSION input_iMCU_row;
-
- int output_scan_number;
- JDIMENSION output_iMCU_row;
-
- int (*coef_bits)[DCTSIZE2];
-
-
- JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
-
- JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
- JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
-
-
- int data_precision;
- jpeg_component_info * comp_info;
-
- boolean is_baseline;
- boolean progressive_mode;
- boolean arith_code;
- UINT8 arith_dc_L[NUM_ARITH_TBLS];
- UINT8 arith_dc_U[NUM_ARITH_TBLS];
- UINT8 arith_ac_K[NUM_ARITH_TBLS];
- unsigned int restart_interval;
-
- boolean saw_JFIF_marker;
-
- UINT8 JFIF_major_version;
- UINT8 JFIF_minor_version;
- UINT8 density_unit;
- UINT16 X_density;
- UINT16 Y_density;
- boolean saw_Adobe_marker;
- UINT8 Adobe_transform;
- boolean CCIR601_sampling;
-
- jpeg_saved_marker_ptr marker_list;
-
-
- int max_h_samp_factor;
- int max_v_samp_factor;
- int min_DCT_h_scaled_size;
- int min_DCT_v_scaled_size;
- JDIMENSION total_iMCU_rows;
-
- JSAMPLE * sample_range_limit;
-
- int comps_in_scan;
- jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
-
- JDIMENSION MCUs_per_row;
- JDIMENSION MCU_rows_in_scan;
- int blocks_in_MCU;
- int MCU_membership[D_MAX_BLOCKS_IN_MCU];
-
-
- int Ss, Se, Ah, Al;
-
- int block_size;
- const int * natural_order;
- int lim_Se;
-
- int unread_marker;
- boolean b_frametodecode;
- boolean b_surface_alloc_done;
- void * tegra_surf;
- unsigned char * input_frame_buf;
- unsigned int pixel_row_cnt;
- unsigned int u_pixel_row_cnt;
- unsigned int v_pixel_row_cnt;
- #ifdef TEGRA_ACCELERATE
- int hw_error_status;
- #endif
-
- struct jpeg_decomp_master * master;
- struct jpeg_d_main_controller * main;
- struct jpeg_d_coef_controller * coef;
- struct jpeg_d_post_controller * post;
- struct jpeg_input_controller * inputctl;
- struct jpeg_marker_reader * marker;
- struct jpeg_entropy_decoder * entropy;
- struct jpeg_inverse_dct * idct;
- struct jpeg_upsampler * upsample;
- struct jpeg_color_deconverter * cconvert;
- struct jpeg_color_quantizer * cquantize;
- };
- struct jpeg_error_mgr {
-
- JMETHOD(void, error_exit, (j_common_ptr cinfo));
-
- JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level));
-
- JMETHOD(void, output_message, (j_common_ptr cinfo));
-
- JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer));
- #define JMSG_LENGTH_MAX 200
-
- JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo));
-
-
- int msg_code;
- #define JMSG_STR_PARM_MAX 80
- union {
- int i[8];
- char s[JMSG_STR_PARM_MAX];
- } msg_parm;
-
-
-
- int trace_level;
-
-
- long num_warnings;
-
- const char * const * jpeg_message_table;
- int last_jpeg_message;
-
- const char * const * addon_message_table;
- int first_addon_message;
- int last_addon_message;
- };
- struct jpeg_progress_mgr {
- JMETHOD(void, progress_monitor, (j_common_ptr cinfo));
- long pass_counter;
- long pass_limit;
- int completed_passes;
- int total_passes;
- };
- struct jpeg_destination_mgr {
- JOCTET * next_output_byte;
- size_t free_in_buffer;
- JMETHOD(void, init_destination, (j_compress_ptr cinfo));
- JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo));
- JMETHOD(void, term_destination, (j_compress_ptr cinfo));
- };
- struct jpeg_source_mgr {
- const JOCTET * next_input_byte;
- size_t bytes_in_buffer;
- JMETHOD(void, init_source, (j_decompress_ptr cinfo));
- JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo));
- JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes));
- JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired));
- JMETHOD(void, term_source, (j_decompress_ptr cinfo));
- };
- #define JPOOL_PERMANENT 0
- #define JPOOL_IMAGE 1
- #define JPOOL_NUMPOOLS 2
- typedef struct jvirt_sarray_control * jvirt_sarray_ptr;
- typedef struct jvirt_barray_control * jvirt_barray_ptr;
- struct jpeg_memory_mgr {
-
- JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id,
- size_t sizeofobject));
- JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id,
- size_t sizeofobject));
- JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id,
- JDIMENSION samplesperrow,
- JDIMENSION numrows));
- JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id,
- JDIMENSION blocksperrow,
- JDIMENSION numrows));
- JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo,
- int pool_id,
- boolean pre_zero,
- JDIMENSION samplesperrow,
- JDIMENSION numrows,
- JDIMENSION maxaccess));
- JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo,
- int pool_id,
- boolean pre_zero,
- JDIMENSION blocksperrow,
- JDIMENSION numrows,
- JDIMENSION maxaccess));
- JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo));
- JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo,
- jvirt_sarray_ptr ptr,
- JDIMENSION start_row,
- JDIMENSION num_rows,
- boolean writable));
- JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo,
- jvirt_barray_ptr ptr,
- JDIMENSION start_row,
- JDIMENSION num_rows,
- boolean writable));
- JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id));
- JMETHOD(void, self_destruct, (j_common_ptr cinfo));
-
- long max_memory_to_use;
-
- long max_alloc_chunk;
- };
- typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
- #ifdef HAVE_PROTOTYPES
- #define JPP(arglist) arglist
- #else
- #define JPP(arglist) ()
- #endif
- #ifdef NEED_SHORT_EXTERNAL_NAMES
- #define jpeg_std_error jStdError
- #define jpeg_CreateCompress jCreaCompress
- #define jpeg_CreateDecompress jCreaDecompress
- #define jpeg_destroy_compress jDestCompress
- #define jpeg_destroy_decompress jDestDecompress
- #define jpeg_destroy_surface jDestSurf
- #define jpeg_stdio_dest jStdDest
- #define jpeg_stdio_src jStdSrc
- #define jpeg_mem_dest jMemDest
- #define jpeg_mem_src jMemSrc
- #define jpeg_set_defaults jSetDefaults
- #define jpeg_set_colorspace jSetColorspace
- #define jpeg_default_colorspace jDefColorspace
- #define jpeg_set_quality jSetQuality
- #define jpeg_set_linear_quality jSetLQuality
- #define jpeg_default_qtables jDefQTables
- #define jpeg_add_quant_table jAddQuantTable
- #define jpeg_quality_scaling jQualityScaling
- #define jpeg_simple_progression jSimProgress
- #define jpeg_suppress_tables jSuppressTables
- #define jpeg_alloc_quant_table jAlcQTable
- #define jpeg_alloc_huff_table jAlcHTable
- #define jpeg_start_compress jStrtCompress
- #define jpeg_write_scanlines jWrtScanlines
- #define jpeg_finish_compress jFinCompress
- #define jpeg_calc_jpeg_dimensions jCjpegDimensions
- #define jpeg_write_raw_data jWrtRawData
- #define jpeg_write_marker jWrtMarker
- #define jpeg_write_m_header jWrtMHeader
- #define jpeg_write_m_byte jWrtMByte
- #define jpeg_write_tables jWrtTables
- #define jpeg_read_header jReadHeader
- #define jpeg_start_decompress jStrtDecompress
- #define jpeg_read_scanlines jReadScanlines
- #define jpeg_finish_decompress jFinDecompress
- #define jpeg_read_raw_data jReadRawData
- #define jpeg_has_multiple_scans jHasMultScn
- #define jpeg_start_output jStrtOutput
- #define jpeg_finish_output jFinOutput
- #define jpeg_input_complete jInComplete
- #define jpeg_new_colormap jNewCMap
- #define jpeg_consume_input jConsumeInput
- #define jpeg_core_output_dimensions jCoreDimensions
- #define jpeg_calc_output_dimensions jCalcDimensions
- #define jpeg_save_markers jSaveMarkers
- #define jpeg_set_marker_processor jSetMarker
- #define jpeg_read_coefficients jReadCoefs
- #define jpeg_write_coefficients jWrtCoefs
- #define jpeg_copy_critical_parameters jCopyCrit
- #define jpeg_abort_compress jAbrtCompress
- #define jpeg_abort_decompress jAbrtDecompress
- #define jpeg_abort jAbort
- #define jpeg_destroy jDestroy
- #define jpeg_resync_to_restart jResyncRestart
- #endif
- EXTERN(struct jpeg_error_mgr *) jpeg_std_error
- JPP((struct jpeg_error_mgr * err));
- #define jpeg_create_compress(cinfo) \
- jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \
- (size_t) sizeof(struct jpeg_compress_struct))
- #define jpeg_create_decompress(cinfo) \
- jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \
- (size_t) sizeof(struct jpeg_decompress_struct))
- EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo,
- int version, size_t structsize));
- EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo,
- int version, size_t structsize));
- EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_destroy_surface JPP((void* surf));
- EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile));
- EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
- EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
- unsigned char ** outbuffer,
- unsigned long * outsize));
- EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo,
- unsigned char * inbuffer,
- unsigned long insize));
- EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo,
- J_COLOR_SPACE colorspace));
- EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality,
- boolean force_baseline));
- EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo,
- int scale_factor,
- boolean force_baseline));
- EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo,
- boolean force_baseline));
- EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl,
- const unsigned int *basic_table,
- int scale_factor,
- boolean force_baseline));
- EXTERN(int) jpeg_quality_scaling JPP((int quality));
- EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo,
- boolean suppress));
- EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo));
- EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo));
- EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo,
- boolean write_all_tables));
- EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo,
- JSAMPARRAY scanlines,
- JDIMENSION num_lines));
- EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo));
- EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo,
- JSAMPIMAGE data,
- JDIMENSION num_lines));
- EXTERN(void) jpeg_write_marker
- JPP((j_compress_ptr cinfo, int marker,
- const JOCTET * dataptr, unsigned int datalen));
- EXTERN(void) jpeg_write_m_header
- JPP((j_compress_ptr cinfo, int marker, unsigned int datalen));
- EXTERN(void) jpeg_write_m_byte
- JPP((j_compress_ptr cinfo, int val));
- EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo));
- EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo,
- boolean require_image));
- #define JPEG_SUSPENDED 0
- #define JPEG_HEADER_OK 1
- #define JPEG_HEADER_TABLES_ONLY 2
- EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo));
- EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo,
- JSAMPARRAY scanlines,
- JDIMENSION max_lines));
- EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo));
- EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo,
- JSAMPIMAGE data,
- JDIMENSION max_lines));
- EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo));
- EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo,
- int scan_number));
- EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo));
- EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo));
- EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo));
- #define JPEG_REACHED_SOS 1
- #define JPEG_REACHED_EOI 2
- #define JPEG_ROW_COMPLETED 3
- #define JPEG_SCAN_COMPLETED 4
- EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_save_markers
- JPP((j_decompress_ptr cinfo, int marker_code,
- unsigned int length_limit));
- EXTERN(void) jpeg_set_marker_processor
- JPP((j_decompress_ptr cinfo, int marker_code,
- jpeg_marker_parser_method routine));
- EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo,
- jvirt_barray_ptr * coef_arrays));
- EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo,
- j_compress_ptr dstinfo));
- EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo));
- EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo));
- EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo));
- EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo));
- EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo,
- int desired));
- #ifdef TEGRA_ACCELERATE
- EXTERN(void) jpeg_set_hardware_acceleration_parameters_enc JPP((j_compress_ptr cinfo,
- boolean hw_acceleration,
- unsigned int defaultBuffSize,
- unsigned int defaultWidth,
- unsigned int defaultHeight
- ));
- EXTERN(void) jpeg_set_hardware_acceleration_parameters_dec JPP((j_decompress_ptr cinfo,
- boolean hw_acceleration,
- unsigned int defaultBuffSize,
- unsigned int defaultWidth,
- unsigned int defaultHeight,
- unsigned int defaultBitstreamBuffSize,
- boolean rgb565
- ));
- #endif
- #define JPEG_RST0 0xD0
- #define JPEG_EOI 0xD9
- #define JPEG_APP0 0xE0
- #define JPEG_COM 0xFE
- #ifdef INCOMPLETE_TYPES_BROKEN
- #ifndef JPEG_INTERNALS
- struct jvirt_sarray_control { long dummy; };
- struct jvirt_barray_control { long dummy; };
- struct jpeg_comp_master { long dummy; };
- struct jpeg_c_main_controller { long dummy; };
- struct jpeg_c_prep_controller { long dummy; };
- struct jpeg_c_coef_controller { long dummy; };
- struct jpeg_marker_writer { long dummy; };
- struct jpeg_color_converter { long dummy; };
- struct jpeg_downsampler { long dummy; };
- struct jpeg_forward_dct { long dummy; };
- struct jpeg_entropy_encoder { long dummy; };
- struct jpeg_decomp_master { long dummy; };
- struct jpeg_d_main_controller { long dummy; };
- struct jpeg_d_coef_controller { long dummy; };
- struct jpeg_d_post_controller { long dummy; };
- struct jpeg_input_controller { long dummy; };
- struct jpeg_marker_reader { long dummy; };
- struct jpeg_entropy_decoder { long dummy; };
- struct jpeg_inverse_dct { long dummy; };
- struct jpeg_upsampler { long dummy; };
- struct jpeg_color_deconverter { long dummy; };
- struct jpeg_color_quantizer { long dummy; };
- #endif
- #endif
- #ifdef JPEG_INTERNALS
- #include "jpegint.h"
- #include "jerror.h"
- #endif
- #ifdef __cplusplus
- #ifndef DONT_USE_EXTERN_C
- }
- #endif
- #endif
- #endif
|