📄 patches
字号:
1. Just copy all the files into the IJG source directory. The changes in detail:'jcinit.c', function 'jinit_compress_master()':'jctrans.c', function 'transencode_master_selection()': if (cinfo->arith_code) jinit_arith_encoder(cinfo); instead of ERREXIT(cinfo, JERR_ARITH_NOTIMPL). Note that the ERREXIT will be executed in the corresponding placeholder file. Thus, actual library support for arithmetic coding is solely enabled/disabled by selecting the appropriate source file, NOT by the support macros in 'jmorecfg.h' (which would be duplicated effort). The support macros in 'jmorecfg.h' enable/disable the support on application level, however.'jdmaster.c''jdtrans.c' Similar patch for the decoder.'jcmarker.c', function 'write_frame_header()' /* Emit the proper SOF marker */ if (cinfo->arith_code) { if (cinfo->progressive_mode) emit_sof(cinfo, M_SOF10); /* SOF code for progressive arithmetic */ else emit_sof(cinfo, M_SOF9); /* SOF code for sequential arithmetic */ } Select proper progressive/sequential marker also for arithmetic coding!'jcmaster.c', function 'jinit_c_master_control()' if (cinfo->progressive_mode && cinfo->arith_code == 0) /* TEMPORARY HACK ??? */ /* GV: indeed ;-) */ cinfo->optimize_coding = TRUE; /* assume default tables no good for progressive mode */ /* GV: but only in Huffman case! */ function 'prepare_for_pass()' if (cinfo->Ss != 0 || cinfo->Ah == 0) { (*cinfo->entropy->start_pass) (cinfo, TRUE); (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST); master->pub.call_pass_startup = FALSE; break; } Removed cinfo->arith_code check here.'jerror.h' JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined") JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code") added.'jpegint.h' Prototypes for jinit_arith_encoder() and jinit_arith_decoder() added.2. A new 'makefile.cfg' is included for automatic update of your makefile by using './configure' before 'make'. If you are not using a configure-generated makefile, apply the corresponding changes to your specific Makefile/Projectfile for the inclusion of the 3 new placeholder files:In 'LIBSOURCES' add 'jaricom.c', 'jcarith.c', and 'jdarith.c'.In 'COMOBJECTS' add 'jaricom.$(O)'.In 'CLIBOBJECTS' add 'jcarith.$(O)'.In 'DLIBOBJECTS' add 'jdarith.$(O)'.In the dependencies section addjcarith.$(O): jcarith.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.hjdarith.$(O): jdarith.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.hjaricom.$(O): jaricom.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -