19f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectCHANGE LOG for Independent JPEG Group's JPEG software 29f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 39f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 49f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 6b 27-Mar-1998 59f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project----------------------- 69f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 79f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectjpegtran has new features for lossless image transformations (rotation 89f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectand flipping) as well as "lossless" reduction to grayscale. 99f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 109f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectjpegtran now copies comments by default; it has a -copy switch to enable 119f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectcopying all APPn blocks as well, or to suppress comments. (Formerly it 129f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectalways suppressed comments and APPn blocks.) jpegtran now also preserves 139f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectJFIF version and resolution information. 149f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 159f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew decompressor library feature: COM and APPn markers found in the input 169f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectfile can be saved in memory for later use by the application. (Before, 179f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectyou had to code this up yourself with a custom marker processor.) 189f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 199f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectThere is an unused field "void * client_data" now in compress and decompress 209f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectparameter structs; this may be useful in some applications. 219f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 229f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectJFIF version number information is now saved by the decoder and accepted by 239f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectthe encoder. jpegtran uses this to copy the source file's version number, 249f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectto ensure "jpegtran -copy all" won't create bogus files that contain JFXX 259f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectextensions but claim to be version 1.01. Applications that generate their 269f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectown JFXX extension markers also (finally) have a supported way to cause the 279f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectencoder to emit JFIF version number 1.02. 289f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 299f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdjpeg's trace mode reports JFIF 1.02 thumbnail images as such, rather 309f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectthan as unknown APP0 markers. 319f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 329f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectIn -verbose mode, djpeg and rdjpgcom will try to print the contents of 339f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectAPP12 markers as text. Some digital cameras store useful text information 349f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectin APP12 markers. 359f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 369f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectHandling of truncated data streams is more robust: blocks beyond the one in 379f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectwhich the error occurs will be output as uniform gray, or left unchanged 389f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectif decoding a progressive JPEG. The appearance no longer depends on the 399f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectHuffman tables being used. 409f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 419f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectHuffman tables are checked for validity much more carefully than before. 429f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 439f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectTo avoid the Unisys LZW patent, djpeg's GIF output capability has been 449f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectchanged to produce "uncompressed GIFs", and cjpeg's GIF input capability 459f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projecthas been removed altogether. We're not happy about it either, but there 469f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectseems to be no good alternative. 479f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 489f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectThe configure script now supports building libjpeg as a shared library 499f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projecton many flavors of Unix (all the ones that GNU libtool knows how to 509f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectbuild shared libraries for). Use "./configure --enable-shared" to 519f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projecttry this out. 529f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 539f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew jconfig file and makefiles for Microsoft Visual C++ and Developer Studio. 549f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectAlso, a jconfig file and a build script for Metrowerks CodeWarrior 559f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projecton Apple Macintosh. makefile.dj has been updated for DJGPP v2, and there 569f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectare miscellaneous other minor improvements in the makefiles. 579f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 589f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectjmemmac.c now knows how to create temporary files following Mac System 7 599f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectconventions. 609f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 619f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdjpeg's -map switch is now able to read raw-format PPM files reliably. 629f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 639f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectcjpeg -progressive -restart no longer generates any unnecessary DRI markers. 649f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 659f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectMultiple calls to jpeg_simple_progression for a single JPEG object 669f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectno longer leak memory. 679f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 689f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 699f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 6a 7-Feb-96 709f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project-------------------- 719f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 729f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectLibrary initialization sequence modified to detect version mismatches 739f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectand struct field packing mismatches between library and calling application. 749f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectThis change requires applications to be recompiled, but does not require 759f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectany application source code change. 769f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 779f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectAll routine declarations changed to the style "GLOBAL(type) name ...", 789f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectthat is, GLOBAL, LOCAL, METHODDEF, EXTERN are now macros taking the 799f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectroutine's return type as an argument. This makes it possible to add 809f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectMicrosoft-style linkage keywords to all the routines by changing just 819f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectthese macros. Note that any application code that was using these macros 829f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectwill have to be changed. 839f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 849f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectDCT coefficient quantization tables are now stored in normal array order 859f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectrather than zigzag order. Application code that calls jpeg_add_quant_table, 869f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projector otherwise manipulates quantization tables directly, will need to be 879f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectchanged. If you need to make such code work with either older or newer 889f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectversions of the library, a test like "#if JPEG_LIB_VERSION >= 61" is 899f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectrecommended. 909f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 919f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdjpeg's trace capability now dumps DQT tables in natural order, not zigzag 929f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectorder. This allows the trace output to be made into a "-qtables" file 939f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectmore easily. 949f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 959f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew system-dependent memory manager module for use on Apple Macintosh. 969f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 979f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectFix bug in cjpeg's -smooth option: last one or two scanlines would be 989f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectduplicates of the prior line unless the image height mod 16 was 1 or 2. 999f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1009f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectRepair minor problems in VMS, BCC, MC6 makefiles. 1019f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1029f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew configure script based on latest GNU Autoconf. 1039f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1049f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectCorrect the list of include files needed by MetroWerks C for ccommand(). 1059f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1069f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNumerous small documentation updates. 1079f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1089f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1099f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 6 2-Aug-95 1109f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project------------------- 1119f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1129f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectProgressive JPEG support: library can read and write full progressive JPEG 1139f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectfiles. A "buffered image" mode supports incremental decoding for on-the-fly 1149f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdisplay of progressive images. Simply recompiling an existing IJG-v5-based 1159f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdecoder with v6 should allow it to read progressive files, though of course 1169f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectwithout any special progressive display. 1179f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1189f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew "jpegtran" application performs lossless transcoding between different 1199f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectJPEG formats; primarily, it can be used to convert baseline to progressive 1209f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectJPEG and vice versa. In support of jpegtran, the library now allows lossless 1219f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectreading and writing of JPEG files as DCT coefficient arrays. This ability 1229f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectmay be of use in other applications. 1239f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1249f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNotes for programmers: 1259f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project* We changed jpeg_start_decompress() to be able to suspend; this makes all 1269f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdecoding modes available to suspending-input applications. However, 1279f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectexisting applications that use suspending input will need to be changed 1289f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectto check the return value from jpeg_start_decompress(). You don't need to 1299f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectdo anything if you don't use a suspending data source. 1309f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project* We changed the interface to the virtual array routines: access_virt_array 1319f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectroutines now take a count of the number of rows to access this time. The 1329f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectlast parameter to request_virt_array routines is now interpreted as the 1339f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectmaximum number of rows that may be accessed at once, but not necessarily 1349f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectthe height of every access. 1359f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1369f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1379f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 5b 15-Mar-95 1389f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project--------------------- 1399f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1409f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectCorrect bugs with grayscale images having v_samp_factor > 1. 1419f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1429f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectjpeg_write_raw_data() now supports output suspension. 1439f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1449f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectCorrect bugs in "configure" script for case of compiling in 1459f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projecta directory other than the one containing the source files. 1469f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1479f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectRepair bug in jquant1.c: sometimes didn't use as many colors as it could. 1489f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1499f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectBorland C makefile and jconfig file work under either MS-DOS or OS/2. 1509f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1519f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectMiscellaneous improvements to documentation. 1529f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1539f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1549f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 5a 7-Dec-94 1559f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project-------------------- 1569f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1579f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectChanged color conversion roundoff behavior so that grayscale values are 1589f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectrepresented exactly. (This causes test image files to change.) 1599f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1609f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectMake ordered dither use 16x16 instead of 4x4 pattern for a small quality 1619f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectimprovement. 1629f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1639f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNew configure script based on latest GNU Autoconf. 1649f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectFix configure script to handle CFLAGS correctly. 1659f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectRename *.auto files to *.cfg, so that configure script still works if 1669f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectfile names have been truncated for DOS. 1679f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1689f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectFix bug in rdbmp.c: didn't allow for extra data between header and image. 1699f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1709f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectModify rdppm.c/wrppm.c to handle 2-byte raw PPM/PGM formats for 12-bit data. 1719f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1729f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectFix several bugs in rdrle.c. 1739f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1749f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNEED_SHORT_EXTERNAL_NAMES option was broken. 1759f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1769f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectRevise jerror.h/jerror.c for more flexibility in message table. 1779f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1789f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectRepair oversight in jmemname.c NO_MKTEMP case: file could be there 1799f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectbut unreadable. 1809f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1819f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1829f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 5 24-Sep-94 1839f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project-------------------- 1849f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1859f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectVersion 5 represents a nearly complete redesign and rewrite of the IJG 1869f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectsoftware. Major user-visible changes include: 1879f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * Automatic configuration simplifies installation for most Unix systems. 1889f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * A range of speed vs. image quality tradeoffs are supported. 1899f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project This includes resizing of an image during decompression: scaling down 1909f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project by a factor of 1/2, 1/4, or 1/8 is handled very efficiently. 1919f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * New programs rdjpgcom and wrjpgcom allow insertion and extraction 1929f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project of text comments in a JPEG file. 1939f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 1949f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectThe application programmer's interface to the library has changed completely. 1959f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectNotable improvements include: 1969f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * We have eliminated the use of callback routines for handling the 1979f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project uncompressed image data. The application now sees the library as a 1989f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project set of routines that it calls to read or write image data on a 1999f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project scanline-by-scanline basis. 2009f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * The application image data is represented in a conventional interleaved- 2019f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project pixel format, rather than as a separate array for each color channel. 2029f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project This can save a copying step in many programs. 2039f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * The handling of compressed data has been cleaned up: the application can 2049f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project supply routines to source or sink the compressed data. It is possible to 2059f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project suspend processing on source/sink buffer overrun, although this is not 2069f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project supported in all operating modes. 2079f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * All static state has been eliminated from the library, so that multiple 2089f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project instances of compression or decompression can be active concurrently. 2099f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * JPEG abbreviated datastream formats are supported, ie, quantization and 2109f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project Huffman tables can be stored separately from the image data. 2119f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project * And not only that, but the documentation of the library has improved 2129f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project considerably! 2139f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 2149f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project 2159f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source ProjectThe last widely used release before the version 5 rewrite was version 4A of 2169f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Project18-Feb-93. Change logs before that point have been discarded, since they 2179f5d49a1588e438ae7ceabd0c94172117e3303aaThe Android Open Source Projectare not of much interest after the rewrite. 218