Use TouchGFX
This commit is contained in:
		
							
								
								
									
										351
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/README
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										351
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/README
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,351 @@
 | 
			
		||||
The Independent JPEG Group's JPEG software
 | 
			
		||||
==========================================
 | 
			
		||||
 | 
			
		||||
README for release 8d of 15-Jan-2012
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
This distribution contains the eighth public release of the Independent JPEG
 | 
			
		||||
Group's free JPEG software.  You are welcome to redistribute this software and
 | 
			
		||||
to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
 | 
			
		||||
 | 
			
		||||
This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone,
 | 
			
		||||
Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson,
 | 
			
		||||
Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers,
 | 
			
		||||
and other members of the Independent JPEG Group.
 | 
			
		||||
 | 
			
		||||
IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee
 | 
			
		||||
(also known as JPEG, together with ITU-T SG16).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DOCUMENTATION ROADMAP
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
This file contains the following sections:
 | 
			
		||||
 | 
			
		||||
OVERVIEW            General description of JPEG and the IJG software.
 | 
			
		||||
LEGAL ISSUES        Copyright, lack of warranty, terms of distribution.
 | 
			
		||||
REFERENCES          Where to learn more about JPEG.
 | 
			
		||||
ARCHIVE LOCATIONS   Where to find newer versions of this software.
 | 
			
		||||
ACKNOWLEDGMENTS     Special thanks.
 | 
			
		||||
FILE FORMAT WARS    Software *not* to get.
 | 
			
		||||
TO DO               Plans for future IJG releases.
 | 
			
		||||
 | 
			
		||||
Other documentation files in the distribution are:
 | 
			
		||||
 | 
			
		||||
User documentation:
 | 
			
		||||
  install.txt       How to configure and install the IJG software.
 | 
			
		||||
  usage.txt         Usage instructions for cjpeg, djpeg, jpegtran,
 | 
			
		||||
                    rdjpgcom, and wrjpgcom.
 | 
			
		||||
  *.1               Unix-style man pages for programs (same info as usage.txt).
 | 
			
		||||
  wizard.txt        Advanced usage instructions for JPEG wizards only.
 | 
			
		||||
  change.log        Version-to-version change highlights.
 | 
			
		||||
Programmer and internal documentation:
 | 
			
		||||
  libjpeg.txt       How to use the JPEG library in your own programs.
 | 
			
		||||
  example.c         Sample code for calling the JPEG library.
 | 
			
		||||
  structure.txt     Overview of the JPEG library's internal structure.
 | 
			
		||||
  filelist.txt      Road map of IJG files.
 | 
			
		||||
  coderules.txt     Coding style rules --- please read if you contribute code.
 | 
			
		||||
 | 
			
		||||
Please read at least the files install.txt and usage.txt.  Some information
 | 
			
		||||
can also be found in the JPEG FAQ (Frequently Asked Questions) article.  See
 | 
			
		||||
ARCHIVE LOCATIONS below to find out where to obtain the FAQ article.
 | 
			
		||||
 | 
			
		||||
If you want to understand how the JPEG code works, we suggest reading one or
 | 
			
		||||
more of the REFERENCES, then looking at the documentation files (in roughly
 | 
			
		||||
the order listed) before diving into the code.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OVERVIEW
 | 
			
		||||
========
 | 
			
		||||
 | 
			
		||||
This package contains C software to implement JPEG image encoding, decoding,
 | 
			
		||||
and transcoding.  JPEG (pronounced "jay-peg") is a standardized compression
 | 
			
		||||
method for full-color and gray-scale images.
 | 
			
		||||
 | 
			
		||||
This software implements JPEG baseline, extended-sequential, and progressive
 | 
			
		||||
compression processes.  Provision is made for supporting all variants of these
 | 
			
		||||
processes, although some uncommon parameter settings aren't implemented yet.
 | 
			
		||||
We have made no provision for supporting the hierarchical or lossless
 | 
			
		||||
processes defined in the standard.
 | 
			
		||||
 | 
			
		||||
We provide a set of library routines for reading and writing JPEG image files,
 | 
			
		||||
plus two sample applications "cjpeg" and "djpeg", which use the library to
 | 
			
		||||
perform conversion between JPEG and some other popular image file formats.
 | 
			
		||||
The library is intended to be reused in other applications.
 | 
			
		||||
 | 
			
		||||
In order to support file conversion and viewing software, we have included
 | 
			
		||||
considerable functionality beyond the bare JPEG coding/decoding capability;
 | 
			
		||||
for example, the color quantization modules are not strictly part of JPEG
 | 
			
		||||
decoding, but they are essential for output to colormapped file formats or
 | 
			
		||||
colormapped displays.  These extra functions can be compiled out of the
 | 
			
		||||
library if not required for a particular application.
 | 
			
		||||
 | 
			
		||||
We have also included "jpegtran", a utility for lossless transcoding between
 | 
			
		||||
different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple
 | 
			
		||||
applications for inserting and extracting textual comments in JFIF files.
 | 
			
		||||
 | 
			
		||||
The emphasis in designing this software has been on achieving portability and
 | 
			
		||||
flexibility, while also making it fast enough to be useful.  In particular,
 | 
			
		||||
the software is not intended to be read as a tutorial on JPEG.  (See the
 | 
			
		||||
REFERENCES section for introductory material.)  Rather, it is intended to
 | 
			
		||||
be reliable, portable, industrial-strength code.  We do not claim to have
 | 
			
		||||
achieved that goal in every aspect of the software, but we strive for it.
 | 
			
		||||
 | 
			
		||||
We welcome the use of this software as a component of commercial products.
 | 
			
		||||
No royalty is required, but we do ask for an acknowledgement in product
 | 
			
		||||
documentation, as described under LEGAL ISSUES.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LEGAL ISSUES
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
In plain English:
 | 
			
		||||
 | 
			
		||||
1. We don't promise that this software works.  (But if you find any bugs,
 | 
			
		||||
   please let us know!)
 | 
			
		||||
2. You can use this software for whatever you want.  You don't have to pay us.
 | 
			
		||||
3. You may not pretend that you wrote this software.  If you use it in a
 | 
			
		||||
   program, you must acknowledge somewhere in your documentation that
 | 
			
		||||
   you've used the IJG code.
 | 
			
		||||
 | 
			
		||||
In legalese:
 | 
			
		||||
 | 
			
		||||
The authors make NO WARRANTY or representation, either express or implied,
 | 
			
		||||
with respect to this software, its quality, accuracy, merchantability, or
 | 
			
		||||
fitness for a particular purpose.  This software is provided "AS IS", and you,
 | 
			
		||||
its user, assume the entire risk as to its quality and accuracy.
 | 
			
		||||
 | 
			
		||||
This software is copyright (C) 1991-2012, Thomas G. Lane, Guido Vollbeding.
 | 
			
		||||
All Rights Reserved except as specified below.
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted to use, copy, modify, and distribute this
 | 
			
		||||
software (or portions thereof) for any purpose, without fee, subject to these
 | 
			
		||||
conditions:
 | 
			
		||||
(1) If any part of the source code for this software is distributed, then this
 | 
			
		||||
README file must be included, with this copyright and no-warranty notice
 | 
			
		||||
unaltered; and any additions, deletions, or changes to the original files
 | 
			
		||||
must be clearly indicated in accompanying documentation.
 | 
			
		||||
(2) If only executable code is distributed, then the accompanying
 | 
			
		||||
documentation must state that "this software is based in part on the work of
 | 
			
		||||
the Independent JPEG Group".
 | 
			
		||||
(3) Permission for use of this software is granted only if the user accepts
 | 
			
		||||
full responsibility for any undesirable consequences; the authors accept
 | 
			
		||||
NO LIABILITY for damages of any kind.
 | 
			
		||||
 | 
			
		||||
These conditions apply to any software derived from or based on the IJG code,
 | 
			
		||||
not just to the unmodified library.  If you use our work, you ought to
 | 
			
		||||
acknowledge us.
 | 
			
		||||
 | 
			
		||||
Permission is NOT granted for the use of any IJG author's name or company name
 | 
			
		||||
in advertising or publicity relating to this software or products derived from
 | 
			
		||||
it.  This software may be referred to only as "the Independent JPEG Group's
 | 
			
		||||
software".
 | 
			
		||||
 | 
			
		||||
We specifically permit and encourage the use of this software as the basis of
 | 
			
		||||
commercial products, provided that all warranty or liability claims are
 | 
			
		||||
assumed by the product vendor.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
 | 
			
		||||
sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
 | 
			
		||||
ansi2knr.c is NOT covered by the above copyright and conditions, but instead
 | 
			
		||||
by the usual distribution terms of the Free Software Foundation; principally,
 | 
			
		||||
that you must include source code if you redistribute it.  (See the file
 | 
			
		||||
ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part
 | 
			
		||||
of any program generated from the IJG code, this does not limit you more than
 | 
			
		||||
the foregoing paragraphs do.
 | 
			
		||||
 | 
			
		||||
The Unix configuration script "configure" was produced with GNU Autoconf.
 | 
			
		||||
It is copyright by the Free Software Foundation but is freely distributable.
 | 
			
		||||
The same holds for its supporting scripts (config.guess, config.sub,
 | 
			
		||||
ltmain.sh).  Another support script, install-sh, is copyright by X Consortium
 | 
			
		||||
but is also freely distributable.
 | 
			
		||||
 | 
			
		||||
The IJG distribution formerly included code to read and write GIF files.
 | 
			
		||||
To avoid entanglement with the Unisys LZW patent, GIF reading support has
 | 
			
		||||
been removed altogether, and the GIF writer has been simplified to produce
 | 
			
		||||
"uncompressed GIFs".  This technique does not use the LZW algorithm; the
 | 
			
		||||
resulting GIF files are larger than usual, but are readable by all standard
 | 
			
		||||
GIF decoders.
 | 
			
		||||
 | 
			
		||||
We are required to state that
 | 
			
		||||
    "The Graphics Interchange Format(c) is the Copyright property of
 | 
			
		||||
    CompuServe Incorporated.  GIF(sm) is a Service Mark property of
 | 
			
		||||
    CompuServe Incorporated."
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REFERENCES
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
We recommend reading one or more of these references before trying to
 | 
			
		||||
understand the innards of the JPEG software.
 | 
			
		||||
 | 
			
		||||
The best short technical introduction to the JPEG compression algorithm is
 | 
			
		||||
	Wallace, Gregory K.  "The JPEG Still Picture Compression Standard",
 | 
			
		||||
	Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
 | 
			
		||||
(Adjacent articles in that issue discuss MPEG motion picture compression,
 | 
			
		||||
applications of JPEG, and related topics.)  If you don't have the CACM issue
 | 
			
		||||
handy, a PostScript file containing a revised version of Wallace's article is
 | 
			
		||||
available at http://www.ijg.org/files/wallace.ps.gz.  The file (actually
 | 
			
		||||
a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
 | 
			
		||||
omits the sample images that appeared in CACM, but it includes corrections
 | 
			
		||||
and some added material.  Note: the Wallace article is copyright ACM and IEEE,
 | 
			
		||||
and it may not be used for commercial purposes.
 | 
			
		||||
 | 
			
		||||
A somewhat less technical, more leisurely introduction to JPEG can be found in
 | 
			
		||||
"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by
 | 
			
		||||
M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1.  This book provides
 | 
			
		||||
good explanations and example C code for a multitude of compression methods
 | 
			
		||||
including JPEG.  It is an excellent source if you are comfortable reading C
 | 
			
		||||
code but don't know much about data compression in general.  The book's JPEG
 | 
			
		||||
sample code is far from industrial-strength, but when you are ready to look
 | 
			
		||||
at a full implementation, you've got one here...
 | 
			
		||||
 | 
			
		||||
The best currently available description of JPEG is the textbook "JPEG Still
 | 
			
		||||
Image Data Compression Standard" by William B. Pennebaker and Joan L.
 | 
			
		||||
Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.
 | 
			
		||||
Price US$59.95, 638 pp.  The book includes the complete text of the ISO JPEG
 | 
			
		||||
standards (DIS 10918-1 and draft DIS 10918-2).
 | 
			
		||||
Although this is by far the most detailed and comprehensive exposition of
 | 
			
		||||
JPEG publicly available, we point out that it is still missing an explanation
 | 
			
		||||
of the most essential properties and algorithms of the underlying DCT
 | 
			
		||||
technology.
 | 
			
		||||
If you think that you know about DCT-based JPEG after reading this book,
 | 
			
		||||
then you are in delusion.  The real fundamentals and corresponding potential
 | 
			
		||||
of DCT-based JPEG are not publicly known so far, and that is the reason for
 | 
			
		||||
all the mistaken developments taking place in the image coding domain.
 | 
			
		||||
 | 
			
		||||
The original JPEG standard is divided into two parts, Part 1 being the actual
 | 
			
		||||
specification, while Part 2 covers compliance testing methods.  Part 1 is
 | 
			
		||||
titled "Digital Compression and Coding of Continuous-tone Still Images,
 | 
			
		||||
Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
 | 
			
		||||
10918-1, ITU-T T.81.  Part 2 is titled "Digital Compression and Coding of
 | 
			
		||||
Continuous-tone Still Images, Part 2: Compliance testing" and has document
 | 
			
		||||
numbers ISO/IEC IS 10918-2, ITU-T T.83.
 | 
			
		||||
IJG JPEG 8 introduces an implementation of the JPEG SmartScale extension
 | 
			
		||||
which is specified in two documents:  A contributed document at ITU and ISO
 | 
			
		||||
with title "ITU-T JPEG-Plus Proposal for Extending ITU-T T.81 for Advanced
 | 
			
		||||
Image Coding", April 2006, Geneva, Switzerland.  The latest version of this
 | 
			
		||||
document is Revision 3.  And a contributed document ISO/IEC JTC1/SC29/WG1 N
 | 
			
		||||
5799 with title "Evolution of JPEG", June/July 2011, Berlin, Germany.
 | 
			
		||||
 | 
			
		||||
The JPEG standard does not specify all details of an interchangeable file
 | 
			
		||||
format.  For the omitted details we follow the "JFIF" conventions, revision
 | 
			
		||||
1.02.  JFIF 1.02 has been adopted as an Ecma International Technical Report
 | 
			
		||||
and thus received a formal publication status.  It is available as a free
 | 
			
		||||
download in PDF format from
 | 
			
		||||
http://www.ecma-international.org/publications/techreports/E-TR-098.htm.
 | 
			
		||||
A PostScript version of the JFIF document is available at
 | 
			
		||||
http://www.ijg.org/files/jfif.ps.gz.  There is also a plain text version at
 | 
			
		||||
http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures.
 | 
			
		||||
 | 
			
		||||
The TIFF 6.0 file format specification can be obtained by FTP from
 | 
			
		||||
ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz.  The JPEG incorporation scheme
 | 
			
		||||
found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
 | 
			
		||||
IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
 | 
			
		||||
Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
 | 
			
		||||
(Compression tag 7).  Copies of this Note can be obtained from
 | 
			
		||||
http://www.ijg.org/files/.  It is expected that the next revision
 | 
			
		||||
of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
 | 
			
		||||
Although IJG's own code does not support TIFF/JPEG, the free libtiff library
 | 
			
		||||
uses our library to implement TIFF/JPEG per the Note.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ARCHIVE LOCATIONS
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
The "official" archive site for this software is www.ijg.org.
 | 
			
		||||
The most recent released version can always be found there in
 | 
			
		||||
directory "files".  This particular version will be archived as
 | 
			
		||||
http://www.ijg.org/files/jpegsrc.v8d.tar.gz, and in Windows-compatible
 | 
			
		||||
"zip" archive format as http://www.ijg.org/files/jpegsr8d.zip.
 | 
			
		||||
 | 
			
		||||
The JPEG FAQ (Frequently Asked Questions) article is a source of some
 | 
			
		||||
general information about JPEG.
 | 
			
		||||
It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
 | 
			
		||||
and other news.answers archive sites, including the official news.answers
 | 
			
		||||
archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
 | 
			
		||||
If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
 | 
			
		||||
with body
 | 
			
		||||
	send usenet/news.answers/jpeg-faq/part1
 | 
			
		||||
	send usenet/news.answers/jpeg-faq/part2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ACKNOWLEDGMENTS
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
Thank to Juergen Bruder for providing me with a copy of the common DCT
 | 
			
		||||
algorithm article, only to find out that I had come to the same result
 | 
			
		||||
in a more direct and comprehensible way with a more generative approach.
 | 
			
		||||
 | 
			
		||||
Thank to Istvan Sebestyen and Joan L. Mitchell for inviting me to the
 | 
			
		||||
ITU JPEG (Study Group 16) meeting in Geneva, Switzerland.
 | 
			
		||||
 | 
			
		||||
Thank to Thomas Wiegand and Gary Sullivan for inviting me to the
 | 
			
		||||
Joint Video Team (MPEG & ITU) meeting in Geneva, Switzerland.
 | 
			
		||||
 | 
			
		||||
Thank to Thomas Richter and Daniel Lee for inviting me to the
 | 
			
		||||
ISO/IEC JTC1/SC29/WG1 (also known as JPEG, together with ITU-T SG16)
 | 
			
		||||
meeting in Berlin, Germany.
 | 
			
		||||
 | 
			
		||||
Thank to John Korejwa and Massimo Ballerini for inviting me to
 | 
			
		||||
fruitful consultations in Boston, MA and Milan, Italy.
 | 
			
		||||
 | 
			
		||||
Thank to Hendrik Elstner, Roland Fassauer, Simone Zuck, Guenther
 | 
			
		||||
Maier-Gerber, Walter Stoeber, Fred Schmitz, and Norbert Braunagel
 | 
			
		||||
for corresponding business development.
 | 
			
		||||
 | 
			
		||||
Thank to Nico Zschach and Dirk Stelling of the technical support team
 | 
			
		||||
at the Digital Images company in Halle for providing me with extra
 | 
			
		||||
equipment for configuration tests.
 | 
			
		||||
 | 
			
		||||
Thank to Richard F. Lyon (then of Foveon Inc.) for fruitful
 | 
			
		||||
communication about JPEG configuration in Sigma Photo Pro software.
 | 
			
		||||
 | 
			
		||||
Thank to Andrew Finkenstadt for hosting the ijg.org site.
 | 
			
		||||
 | 
			
		||||
Last but not least special thank to Thomas G. Lane for the original
 | 
			
		||||
design and development of this singular software package.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FILE FORMAT WARS
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together
 | 
			
		||||
with ITU-T SG16) currently promotes different formats containing the name
 | 
			
		||||
"JPEG" which is misleading because these formats are incompatible with
 | 
			
		||||
original DCT-based JPEG and are based on faulty technologies.
 | 
			
		||||
IJG therefore does not and will not support such momentary mistakes
 | 
			
		||||
(see REFERENCES).
 | 
			
		||||
There exist also distributions under the name "OpenJPEG" promoting such
 | 
			
		||||
kind of formats which is misleading because they don't support original
 | 
			
		||||
JPEG images.
 | 
			
		||||
We have no sympathy for the promotion of inferior formats.  Indeed, one of
 | 
			
		||||
the original reasons for developing this free software was to help force
 | 
			
		||||
convergence on common, interoperable format standards for JPEG files.
 | 
			
		||||
Don't use an incompatible file format!
 | 
			
		||||
(In any case, our decoder will remain capable of reading existing JPEG
 | 
			
		||||
image files indefinitely.)
 | 
			
		||||
 | 
			
		||||
Furthermore, the ISO committee pretends to be "responsible for the popular
 | 
			
		||||
JPEG" in their public reports which is not true because they don't respond to
 | 
			
		||||
actual requirements for the maintenance of the original JPEG specification.
 | 
			
		||||
 | 
			
		||||
There are currently distributions in circulation containing the name
 | 
			
		||||
"libjpeg" which claim to be a "derivative" or "fork" of the original
 | 
			
		||||
libjpeg, but don't have the features and are incompatible with formats
 | 
			
		||||
supported by actual IJG libjpeg distributions.  Furthermore, they
 | 
			
		||||
violate the license conditions as described under LEGAL ISSUES above.
 | 
			
		||||
We have no sympathy for the release of misleading and illegal
 | 
			
		||||
distributions derived from obsolete code bases.
 | 
			
		||||
Don't use an obsolete code base!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TO DO
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
Version 8 is the first release of a new generation JPEG standard
 | 
			
		||||
to overcome the limitations of the original JPEG specification.
 | 
			
		||||
More features are being prepared for coming releases...
 | 
			
		||||
 | 
			
		||||
Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
 | 
			
		||||
							
								
								
									
										134
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/cderror.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/cderror.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,134 @@
 | 
			
		||||
/*
 | 
			
		||||
 * cderror.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1994-1997, Thomas G. Lane.
 | 
			
		||||
 * Modified 2009 by Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file defines the error and message codes for the cjpeg/djpeg
 | 
			
		||||
 * applications.  These strings are not needed as part of the JPEG library
 | 
			
		||||
 * proper.
 | 
			
		||||
 * Edit this file to add new codes, or to translate the message strings to
 | 
			
		||||
 * some other language.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * To define the enum list of message codes, include this file without
 | 
			
		||||
 * defining macro JMESSAGE.  To create a message string table, include it
 | 
			
		||||
 * again with a suitable JMESSAGE definition (see jerror.c for an example).
 | 
			
		||||
 */
 | 
			
		||||
#ifndef JMESSAGE
 | 
			
		||||
#ifndef CDERROR_H
 | 
			
		||||
#define CDERROR_H
 | 
			
		||||
/* First time through, define the enum list */
 | 
			
		||||
#define JMAKE_ENUM_LIST
 | 
			
		||||
#else
 | 
			
		||||
/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
 | 
			
		||||
#define JMESSAGE(code,string)
 | 
			
		||||
#endif /* CDERROR_H */
 | 
			
		||||
#endif /* JMESSAGE */
 | 
			
		||||
 | 
			
		||||
#ifdef JMAKE_ENUM_LIST
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
 | 
			
		||||
#define JMESSAGE(code,string)	code ,
 | 
			
		||||
 | 
			
		||||
#endif /* JMAKE_ENUM_LIST */
 | 
			
		||||
 | 
			
		||||
JMESSAGE(JMSG_FIRSTADDONCODE=1000, NULL) /* Must be first entry! */
 | 
			
		||||
 | 
			
		||||
#ifdef BMP_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_BMP_BADCMAP, "Unsupported BMP colormap format")
 | 
			
		||||
JMESSAGE(JERR_BMP_BADDEPTH, "Only 8- and 24-bit BMP files are supported")
 | 
			
		||||
JMESSAGE(JERR_BMP_BADHEADER, "Invalid BMP file: bad header length")
 | 
			
		||||
JMESSAGE(JERR_BMP_BADPLANES, "Invalid BMP file: biPlanes not equal to 1")
 | 
			
		||||
JMESSAGE(JERR_BMP_COLORSPACE, "BMP output must be grayscale or RGB")
 | 
			
		||||
JMESSAGE(JERR_BMP_COMPRESSED, "Sorry, compressed BMPs not yet supported")
 | 
			
		||||
JMESSAGE(JERR_BMP_EMPTY, "Empty BMP image")
 | 
			
		||||
JMESSAGE(JERR_BMP_NOT, "Not a BMP file - does not start with BM")
 | 
			
		||||
JMESSAGE(JTRC_BMP, "%ux%u 24-bit BMP image")
 | 
			
		||||
JMESSAGE(JTRC_BMP_MAPPED, "%ux%u 8-bit colormapped BMP image")
 | 
			
		||||
JMESSAGE(JTRC_BMP_OS2, "%ux%u 24-bit OS2 BMP image")
 | 
			
		||||
JMESSAGE(JTRC_BMP_OS2_MAPPED, "%ux%u 8-bit colormapped OS2 BMP image")
 | 
			
		||||
#endif /* BMP_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
#ifdef GIF_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_GIF_BUG, "GIF output got confused")
 | 
			
		||||
JMESSAGE(JERR_GIF_CODESIZE, "Bogus GIF codesize %d")
 | 
			
		||||
JMESSAGE(JERR_GIF_COLORSPACE, "GIF output must be grayscale or RGB")
 | 
			
		||||
JMESSAGE(JERR_GIF_IMAGENOTFOUND, "Too few images in GIF file")
 | 
			
		||||
JMESSAGE(JERR_GIF_NOT, "Not a GIF file")
 | 
			
		||||
JMESSAGE(JTRC_GIF, "%ux%ux%d GIF image")
 | 
			
		||||
JMESSAGE(JTRC_GIF_BADVERSION,
 | 
			
		||||
	 "Warning: unexpected GIF version number '%c%c%c'")
 | 
			
		||||
JMESSAGE(JTRC_GIF_EXTENSION, "Ignoring GIF extension block of type 0x%02x")
 | 
			
		||||
JMESSAGE(JTRC_GIF_NONSQUARE, "Caution: nonsquare pixels in input")
 | 
			
		||||
JMESSAGE(JWRN_GIF_BADDATA, "Corrupt data in GIF file")
 | 
			
		||||
JMESSAGE(JWRN_GIF_CHAR, "Bogus char 0x%02x in GIF file, ignoring")
 | 
			
		||||
JMESSAGE(JWRN_GIF_ENDCODE, "Premature end of GIF image")
 | 
			
		||||
JMESSAGE(JWRN_GIF_NOMOREDATA, "Ran out of GIF bits")
 | 
			
		||||
#endif /* GIF_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
#ifdef PPM_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_PPM_COLORSPACE, "PPM output must be grayscale or RGB")
 | 
			
		||||
JMESSAGE(JERR_PPM_NONNUMERIC, "Nonnumeric data in PPM file")
 | 
			
		||||
JMESSAGE(JERR_PPM_NOT, "Not a PPM/PGM file")
 | 
			
		||||
JMESSAGE(JTRC_PGM, "%ux%u PGM image")
 | 
			
		||||
JMESSAGE(JTRC_PGM_TEXT, "%ux%u text PGM image")
 | 
			
		||||
JMESSAGE(JTRC_PPM, "%ux%u PPM image")
 | 
			
		||||
JMESSAGE(JTRC_PPM_TEXT, "%ux%u text PPM image")
 | 
			
		||||
#endif /* PPM_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
#ifdef RLE_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_RLE_BADERROR, "Bogus error code from RLE library")
 | 
			
		||||
JMESSAGE(JERR_RLE_COLORSPACE, "RLE output must be grayscale or RGB")
 | 
			
		||||
JMESSAGE(JERR_RLE_DIMENSIONS, "Image dimensions (%ux%u) too large for RLE")
 | 
			
		||||
JMESSAGE(JERR_RLE_EMPTY, "Empty RLE file")
 | 
			
		||||
JMESSAGE(JERR_RLE_EOF, "Premature EOF in RLE header")
 | 
			
		||||
JMESSAGE(JERR_RLE_MEM, "Insufficient memory for RLE header")
 | 
			
		||||
JMESSAGE(JERR_RLE_NOT, "Not an RLE file")
 | 
			
		||||
JMESSAGE(JERR_RLE_TOOMANYCHANNELS, "Cannot handle %d output channels for RLE")
 | 
			
		||||
JMESSAGE(JERR_RLE_UNSUPPORTED, "Cannot handle this RLE setup")
 | 
			
		||||
JMESSAGE(JTRC_RLE, "%ux%u full-color RLE file")
 | 
			
		||||
JMESSAGE(JTRC_RLE_FULLMAP, "%ux%u full-color RLE file with map of length %d")
 | 
			
		||||
JMESSAGE(JTRC_RLE_GRAY, "%ux%u grayscale RLE file")
 | 
			
		||||
JMESSAGE(JTRC_RLE_MAPGRAY, "%ux%u grayscale RLE file with map of length %d")
 | 
			
		||||
JMESSAGE(JTRC_RLE_MAPPED, "%ux%u colormapped RLE file with map of length %d")
 | 
			
		||||
#endif /* RLE_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
#ifdef TARGA_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_TGA_BADCMAP, "Unsupported Targa colormap format")
 | 
			
		||||
JMESSAGE(JERR_TGA_BADPARMS, "Invalid or unsupported Targa file")
 | 
			
		||||
JMESSAGE(JERR_TGA_COLORSPACE, "Targa output must be grayscale or RGB")
 | 
			
		||||
JMESSAGE(JTRC_TGA, "%ux%u RGB Targa image")
 | 
			
		||||
JMESSAGE(JTRC_TGA_GRAY, "%ux%u grayscale Targa image")
 | 
			
		||||
JMESSAGE(JTRC_TGA_MAPPED, "%ux%u colormapped Targa image")
 | 
			
		||||
#else
 | 
			
		||||
JMESSAGE(JERR_TGA_NOTCOMP, "Targa support was not compiled")
 | 
			
		||||
#endif /* TARGA_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
JMESSAGE(JERR_BAD_CMAP_FILE,
 | 
			
		||||
	 "Color map file is invalid or of unsupported format")
 | 
			
		||||
JMESSAGE(JERR_TOO_MANY_COLORS,
 | 
			
		||||
	 "Output file format cannot handle %d colormap entries")
 | 
			
		||||
JMESSAGE(JERR_UNGETC_FAILED, "ungetc failed")
 | 
			
		||||
#ifdef TARGA_SUPPORTED
 | 
			
		||||
JMESSAGE(JERR_UNKNOWN_FORMAT,
 | 
			
		||||
	 "Unrecognized input file format --- perhaps you need -targa")
 | 
			
		||||
#else
 | 
			
		||||
JMESSAGE(JERR_UNKNOWN_FORMAT, "Unrecognized input file format")
 | 
			
		||||
#endif
 | 
			
		||||
JMESSAGE(JERR_UNSUPPORTED_FORMAT, "Unsupported output file format")
 | 
			
		||||
 | 
			
		||||
#ifdef JMAKE_ENUM_LIST
 | 
			
		||||
 | 
			
		||||
  JMSG_LASTADDONCODE
 | 
			
		||||
} ADDON_MESSAGE_CODE;
 | 
			
		||||
 | 
			
		||||
#undef JMAKE_ENUM_LIST
 | 
			
		||||
#endif /* JMAKE_ENUM_LIST */
 | 
			
		||||
 | 
			
		||||
/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
 | 
			
		||||
#undef JMESSAGE
 | 
			
		||||
							
								
								
									
										187
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/cdjpeg.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/cdjpeg.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,187 @@
 | 
			
		||||
/*
 | 
			
		||||
 * cdjpeg.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1994-1997, Thomas G. Lane.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file contains common declarations for the sample applications
 | 
			
		||||
 * cjpeg and djpeg.  It is NOT used by the core JPEG library.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define JPEG_CJPEG_DJPEG	/* define proper options in jconfig.h */
 | 
			
		||||
#define JPEG_INTERNAL_OPTIONS	/* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */
 | 
			
		||||
#include "jinclude.h"
 | 
			
		||||
#include "jpeglib.h"
 | 
			
		||||
#include "jerror.h"		/* get library error codes too */
 | 
			
		||||
#include "cderror.h"		/* get application-specific error codes */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Object interface for cjpeg's source file decoding modules
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef struct cjpeg_source_struct * cjpeg_source_ptr;
 | 
			
		||||
 | 
			
		||||
struct cjpeg_source_struct {
 | 
			
		||||
  JMETHOD(void, start_input, (j_compress_ptr cinfo,
 | 
			
		||||
			      cjpeg_source_ptr sinfo));
 | 
			
		||||
  JMETHOD(JDIMENSION, get_pixel_rows, (j_compress_ptr cinfo,
 | 
			
		||||
				       cjpeg_source_ptr sinfo));
 | 
			
		||||
  JMETHOD(void, finish_input, (j_compress_ptr cinfo,
 | 
			
		||||
			       cjpeg_source_ptr sinfo));
 | 
			
		||||
 | 
			
		||||
  FILE *input_file;
 | 
			
		||||
 | 
			
		||||
  JSAMPARRAY buffer;
 | 
			
		||||
  JDIMENSION buffer_height;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Object interface for djpeg's output file encoding modules
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef struct djpeg_dest_struct * djpeg_dest_ptr;
 | 
			
		||||
 | 
			
		||||
struct djpeg_dest_struct {
 | 
			
		||||
  /* start_output is called after jpeg_start_decompress finishes.
 | 
			
		||||
   * The color map will be ready at this time, if one is needed.
 | 
			
		||||
   */
 | 
			
		||||
  JMETHOD(void, start_output, (j_decompress_ptr cinfo,
 | 
			
		||||
			       djpeg_dest_ptr dinfo));
 | 
			
		||||
  /* Emit the specified number of pixel rows from the buffer. */
 | 
			
		||||
  JMETHOD(void, put_pixel_rows, (j_decompress_ptr cinfo,
 | 
			
		||||
				 djpeg_dest_ptr dinfo,
 | 
			
		||||
				 JDIMENSION rows_supplied));
 | 
			
		||||
  /* Finish up at the end of the image. */
 | 
			
		||||
  JMETHOD(void, finish_output, (j_decompress_ptr cinfo,
 | 
			
		||||
				djpeg_dest_ptr dinfo));
 | 
			
		||||
 | 
			
		||||
  /* Target file spec; filled in by djpeg.c after object is created. */
 | 
			
		||||
  FILE * output_file;
 | 
			
		||||
 | 
			
		||||
  /* Output pixel-row buffer.  Created by module init or start_output.
 | 
			
		||||
   * Width is cinfo->output_width * cinfo->output_components;
 | 
			
		||||
   * height is buffer_height.
 | 
			
		||||
   */
 | 
			
		||||
  JSAMPARRAY buffer;
 | 
			
		||||
  JDIMENSION buffer_height;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * cjpeg/djpeg may need to perform extra passes to convert to or from
 | 
			
		||||
 * the source/destination file format.  The JPEG library does not know
 | 
			
		||||
 * about these passes, but we'd like them to be counted by the progress
 | 
			
		||||
 * monitor.  We use an expanded progress monitor object to hold the
 | 
			
		||||
 * additional pass count.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
struct cdjpeg_progress_mgr {
 | 
			
		||||
  struct jpeg_progress_mgr pub;	/* fields known to JPEG library */
 | 
			
		||||
  int completed_extra_passes;	/* extra passes completed */
 | 
			
		||||
  int total_extra_passes;	/* total extra */
 | 
			
		||||
  /* last printed percentage stored here to avoid multiple printouts */
 | 
			
		||||
  int percent_done;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct cdjpeg_progress_mgr * cd_progress_ptr;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Short forms of external names for systems with brain-damaged linkers. */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SHORT_EXTERNAL_NAMES
 | 
			
		||||
#define jinit_read_bmp		jIRdBMP
 | 
			
		||||
#define jinit_write_bmp		jIWrBMP
 | 
			
		||||
#define jinit_read_gif		jIRdGIF
 | 
			
		||||
#define jinit_write_gif		jIWrGIF
 | 
			
		||||
#define jinit_read_ppm		jIRdPPM
 | 
			
		||||
#define jinit_write_ppm		jIWrPPM
 | 
			
		||||
#define jinit_read_rle		jIRdRLE
 | 
			
		||||
#define jinit_write_rle		jIWrRLE
 | 
			
		||||
#define jinit_read_targa	jIRdTarga
 | 
			
		||||
#define jinit_write_targa	jIWrTarga
 | 
			
		||||
#define read_quant_tables	RdQTables
 | 
			
		||||
#define read_scan_script	RdScnScript
 | 
			
		||||
#define set_quality_ratings     SetQRates
 | 
			
		||||
#define set_quant_slots		SetQSlots
 | 
			
		||||
#define set_sample_factors	SetSFacts
 | 
			
		||||
#define read_color_map		RdCMap
 | 
			
		||||
#define enable_signal_catcher	EnSigCatcher
 | 
			
		||||
#define start_progress_monitor	StProgMon
 | 
			
		||||
#define end_progress_monitor	EnProgMon
 | 
			
		||||
#define read_stdin		RdStdin
 | 
			
		||||
#define write_stdout		WrStdout
 | 
			
		||||
#endif /* NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
 | 
			
		||||
/* Module selection routines for I/O modules. */
 | 
			
		||||
 | 
			
		||||
EXTERN(cjpeg_source_ptr) jinit_read_bmp JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(djpeg_dest_ptr) jinit_write_bmp JPP((j_decompress_ptr cinfo,
 | 
			
		||||
					    boolean is_os2));
 | 
			
		||||
EXTERN(cjpeg_source_ptr) jinit_read_gif JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(djpeg_dest_ptr) jinit_write_gif JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(cjpeg_source_ptr) jinit_read_ppm JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(djpeg_dest_ptr) jinit_write_ppm JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(cjpeg_source_ptr) jinit_read_rle JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(djpeg_dest_ptr) jinit_write_rle JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(cjpeg_source_ptr) jinit_read_targa JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(djpeg_dest_ptr) jinit_write_targa JPP((j_decompress_ptr cinfo));
 | 
			
		||||
 | 
			
		||||
/* cjpeg support routines (in rdswitch.c) */
 | 
			
		||||
 | 
			
		||||
EXTERN(boolean) read_quant_tables JPP((j_compress_ptr cinfo, char * filename,
 | 
			
		||||
				       boolean force_baseline));
 | 
			
		||||
EXTERN(boolean) read_scan_script JPP((j_compress_ptr cinfo, char * filename));
 | 
			
		||||
EXTERN(boolean) set_quality_ratings JPP((j_compress_ptr cinfo, char *arg,
 | 
			
		||||
					 boolean force_baseline));
 | 
			
		||||
EXTERN(boolean) set_quant_slots JPP((j_compress_ptr cinfo, char *arg));
 | 
			
		||||
EXTERN(boolean) set_sample_factors JPP((j_compress_ptr cinfo, char *arg));
 | 
			
		||||
 | 
			
		||||
/* djpeg support routines (in rdcolmap.c) */
 | 
			
		||||
 | 
			
		||||
EXTERN(void) read_color_map JPP((j_decompress_ptr cinfo, FILE * infile));
 | 
			
		||||
 | 
			
		||||
/* common support routines (in cdjpeg.c) */
 | 
			
		||||
 | 
			
		||||
EXTERN(void) enable_signal_catcher JPP((j_common_ptr cinfo));
 | 
			
		||||
EXTERN(void) start_progress_monitor JPP((j_common_ptr cinfo,
 | 
			
		||||
					 cd_progress_ptr progress));
 | 
			
		||||
EXTERN(void) end_progress_monitor JPP((j_common_ptr cinfo));
 | 
			
		||||
EXTERN(boolean) keymatch JPP((char * arg, const char * keyword, int minchars));
 | 
			
		||||
EXTERN(FILE *) read_stdin JPP((void));
 | 
			
		||||
EXTERN(FILE *) write_stdout JPP((void));
 | 
			
		||||
 | 
			
		||||
/* miscellaneous useful macros */
 | 
			
		||||
 | 
			
		||||
#ifdef DONT_USE_B_MODE		/* define mode parameters for fopen() */
 | 
			
		||||
#define READ_BINARY	"r"
 | 
			
		||||
#define WRITE_BINARY	"w"
 | 
			
		||||
#else
 | 
			
		||||
#ifdef VMS			/* VMS is very nonstandard */
 | 
			
		||||
#define READ_BINARY	"rb", "ctx=stm"
 | 
			
		||||
#define WRITE_BINARY	"wb", "ctx=stm"
 | 
			
		||||
#else				/* standard ANSI-compliant case */
 | 
			
		||||
#define READ_BINARY	"rb"
 | 
			
		||||
#define WRITE_BINARY	"wb"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef EXIT_FAILURE		/* define exit() codes if not provided */
 | 
			
		||||
#define EXIT_FAILURE  1
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef EXIT_SUCCESS
 | 
			
		||||
#ifdef VMS
 | 
			
		||||
#define EXIT_SUCCESS  1		/* VMS is very nonstandard */
 | 
			
		||||
#else
 | 
			
		||||
#define EXIT_SUCCESS  0
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef EXIT_WARNING
 | 
			
		||||
#ifdef VMS
 | 
			
		||||
#define EXIT_WARNING  1		/* VMS is very nonstandard */
 | 
			
		||||
#else
 | 
			
		||||
#define EXIT_WARNING  2
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										54
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jconfig.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jconfig.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,54 @@
 | 
			
		||||
/* jconfig.h.  Generated from jconfig.cfg by configure.  */
 | 
			
		||||
/* jconfig.cfg --- source file edited by configure script */
 | 
			
		||||
/* see jconfig.txt for explanations */
 | 
			
		||||
 | 
			
		||||
#define HAVE_PROTOTYPES 1
 | 
			
		||||
#define HAVE_UNSIGNED_CHAR 1
 | 
			
		||||
#define HAVE_UNSIGNED_SHORT 1
 | 
			
		||||
/* #undef void */
 | 
			
		||||
/* #undef const */
 | 
			
		||||
/* #undef CHAR_IS_UNSIGNED */
 | 
			
		||||
#define HAVE_STDDEF_H 1
 | 
			
		||||
#define HAVE_STDLIB_H 1
 | 
			
		||||
#define HAVE_LOCALE_H 1
 | 
			
		||||
/* #undef NEED_BSD_STRINGS */
 | 
			
		||||
/* #undef NEED_SYS_TYPES_H */
 | 
			
		||||
/* #undef NEED_FAR_POINTERS */
 | 
			
		||||
/* #undef NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
/* Define this if you get warnings about undefined structures. */
 | 
			
		||||
/* #undef INCOMPLETE_TYPES_BROKEN */
 | 
			
		||||
 | 
			
		||||
/* Define "boolean" as unsigned char, not int, on Windows systems. */
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#ifndef __RPCNDR_H__		/* don't conflict if rpcndr.h already read */
 | 
			
		||||
typedef unsigned char boolean;
 | 
			
		||||
#endif
 | 
			
		||||
#define HAVE_BOOLEAN		/* prevent jmorecfg.h from redefining it */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef JPEG_INTERNALS
 | 
			
		||||
 | 
			
		||||
/* #undef RIGHT_SHIFT_IS_UNSIGNED */
 | 
			
		||||
#define INLINE __inline__
 | 
			
		||||
/* These are for configuring the JPEG memory manager. */
 | 
			
		||||
/* #undef DEFAULT_MAX_MEM */
 | 
			
		||||
/* #undef NO_MKTEMP */
 | 
			
		||||
 | 
			
		||||
#endif /* JPEG_INTERNALS */
 | 
			
		||||
 | 
			
		||||
#ifdef JPEG_CJPEG_DJPEG
 | 
			
		||||
 | 
			
		||||
#define BMP_SUPPORTED		/* BMP image file format */
 | 
			
		||||
#define GIF_SUPPORTED		/* GIF image file format */
 | 
			
		||||
#define PPM_SUPPORTED		/* PBMPLUS PPM/PGM image file format */
 | 
			
		||||
/* #undef RLE_SUPPORTED */
 | 
			
		||||
#define TARGA_SUPPORTED		/* Targa image file format */
 | 
			
		||||
 | 
			
		||||
/* #undef TWO_FILE_COMMANDLINE */
 | 
			
		||||
/* #undef NEED_SIGNAL_CATCHER */
 | 
			
		||||
/* #undef DONT_USE_B_MODE */
 | 
			
		||||
 | 
			
		||||
/* Define this if you want percent-done progress reports from cjpeg/djpeg. */
 | 
			
		||||
/* #undef PROGRESS_REPORT */
 | 
			
		||||
 | 
			
		||||
#endif /* JPEG_CJPEG_DJPEG */
 | 
			
		||||
							
								
								
									
										393
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jdct.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										393
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jdct.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,393 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jdct.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1994-1996, Thomas G. Lane.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This include file contains common declarations for the forward and
 | 
			
		||||
 * inverse DCT modules.  These declarations are private to the DCT managers
 | 
			
		||||
 * (jcdctmgr.c, jddctmgr.c) and the individual DCT algorithms.
 | 
			
		||||
 * The individual DCT algorithms are kept in separate files to ease 
 | 
			
		||||
 * machine-dependent tuning (e.g., assembly coding).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * A forward DCT routine is given a pointer to an input sample array and
 | 
			
		||||
 * a pointer to a work area of type DCTELEM[]; the DCT is to be performed
 | 
			
		||||
 * in-place in that buffer.  Type DCTELEM is int for 8-bit samples, INT32
 | 
			
		||||
 * for 12-bit samples.  (NOTE: Floating-point DCT implementations use an
 | 
			
		||||
 * array of type FAST_FLOAT, instead.)
 | 
			
		||||
 * The input data is to be fetched from the sample array starting at a
 | 
			
		||||
 * specified column.  (Any row offset needed will be applied to the array
 | 
			
		||||
 * pointer before it is passed to the FDCT code.)
 | 
			
		||||
 * Note that the number of samples fetched by the FDCT routine is
 | 
			
		||||
 * DCT_h_scaled_size * DCT_v_scaled_size.
 | 
			
		||||
 * The DCT outputs are returned scaled up by a factor of 8; they therefore
 | 
			
		||||
 * have a range of +-8K for 8-bit data, +-128K for 12-bit data.  This
 | 
			
		||||
 * convention improves accuracy in integer implementations and saves some
 | 
			
		||||
 * work in floating-point ones.
 | 
			
		||||
 * Quantization of the output coefficients is done by jcdctmgr.c.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if BITS_IN_JSAMPLE == 8
 | 
			
		||||
typedef int DCTELEM;		/* 16 or 32 bits is fine */
 | 
			
		||||
#else
 | 
			
		||||
typedef INT32 DCTELEM;		/* must have 32 bits */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef JMETHOD(void, forward_DCT_method_ptr, (DCTELEM * data,
 | 
			
		||||
					       JSAMPARRAY sample_data,
 | 
			
		||||
					       JDIMENSION start_col));
 | 
			
		||||
typedef JMETHOD(void, float_DCT_method_ptr, (FAST_FLOAT * data,
 | 
			
		||||
					     JSAMPARRAY sample_data,
 | 
			
		||||
					     JDIMENSION start_col));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * An inverse DCT routine is given a pointer to the input JBLOCK and a pointer
 | 
			
		||||
 * to an output sample array.  The routine must dequantize the input data as
 | 
			
		||||
 * well as perform the IDCT; for dequantization, it uses the multiplier table
 | 
			
		||||
 * pointed to by compptr->dct_table.  The output data is to be placed into the
 | 
			
		||||
 * sample array starting at a specified column.  (Any row offset needed will
 | 
			
		||||
 * be applied to the array pointer before it is passed to the IDCT code.)
 | 
			
		||||
 * Note that the number of samples emitted by the IDCT routine is
 | 
			
		||||
 * DCT_h_scaled_size * DCT_v_scaled_size.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* typedef inverse_DCT_method_ptr is declared in jpegint.h */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Each IDCT routine has its own ideas about the best dct_table element type.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef MULTIPLIER ISLOW_MULT_TYPE; /* short or int, whichever is faster */
 | 
			
		||||
#if BITS_IN_JSAMPLE == 8
 | 
			
		||||
typedef MULTIPLIER IFAST_MULT_TYPE; /* 16 bits is OK, use short if faster */
 | 
			
		||||
#define IFAST_SCALE_BITS  2	/* fractional bits in scale factors */
 | 
			
		||||
#else
 | 
			
		||||
typedef INT32 IFAST_MULT_TYPE;	/* need 32 bits for scaled quantizers */
 | 
			
		||||
#define IFAST_SCALE_BITS  13	/* fractional bits in scale factors */
 | 
			
		||||
#endif
 | 
			
		||||
typedef FAST_FLOAT FLOAT_MULT_TYPE; /* preferred floating type */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Each IDCT routine is responsible for range-limiting its results and
 | 
			
		||||
 * converting them to unsigned form (0..MAXJSAMPLE).  The raw outputs could
 | 
			
		||||
 * be quite far out of range if the input data is corrupt, so a bulletproof
 | 
			
		||||
 * range-limiting step is required.  We use a mask-and-table-lookup method
 | 
			
		||||
 * to do the combined operations quickly.  See the comments with
 | 
			
		||||
 * prepare_range_limit_table (in jdmaster.c) for more info.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define IDCT_range_limit(cinfo)  ((cinfo)->sample_range_limit + CENTERJSAMPLE)
 | 
			
		||||
 | 
			
		||||
#define RANGE_MASK  (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Short forms of external names for systems with brain-damaged linkers. */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SHORT_EXTERNAL_NAMES
 | 
			
		||||
#define jpeg_fdct_islow		jFDislow
 | 
			
		||||
#define jpeg_fdct_ifast		jFDifast
 | 
			
		||||
#define jpeg_fdct_float		jFDfloat
 | 
			
		||||
#define jpeg_fdct_7x7		jFD7x7
 | 
			
		||||
#define jpeg_fdct_6x6		jFD6x6
 | 
			
		||||
#define jpeg_fdct_5x5		jFD5x5
 | 
			
		||||
#define jpeg_fdct_4x4		jFD4x4
 | 
			
		||||
#define jpeg_fdct_3x3		jFD3x3
 | 
			
		||||
#define jpeg_fdct_2x2		jFD2x2
 | 
			
		||||
#define jpeg_fdct_1x1		jFD1x1
 | 
			
		||||
#define jpeg_fdct_9x9		jFD9x9
 | 
			
		||||
#define jpeg_fdct_10x10		jFD10x10
 | 
			
		||||
#define jpeg_fdct_11x11		jFD11x11
 | 
			
		||||
#define jpeg_fdct_12x12		jFD12x12
 | 
			
		||||
#define jpeg_fdct_13x13		jFD13x13
 | 
			
		||||
#define jpeg_fdct_14x14		jFD14x14
 | 
			
		||||
#define jpeg_fdct_15x15		jFD15x15
 | 
			
		||||
#define jpeg_fdct_16x16		jFD16x16
 | 
			
		||||
#define jpeg_fdct_16x8		jFD16x8
 | 
			
		||||
#define jpeg_fdct_14x7		jFD14x7
 | 
			
		||||
#define jpeg_fdct_12x6		jFD12x6
 | 
			
		||||
#define jpeg_fdct_10x5		jFD10x5
 | 
			
		||||
#define jpeg_fdct_8x4		jFD8x4
 | 
			
		||||
#define jpeg_fdct_6x3		jFD6x3
 | 
			
		||||
#define jpeg_fdct_4x2		jFD4x2
 | 
			
		||||
#define jpeg_fdct_2x1		jFD2x1
 | 
			
		||||
#define jpeg_fdct_8x16		jFD8x16
 | 
			
		||||
#define jpeg_fdct_7x14		jFD7x14
 | 
			
		||||
#define jpeg_fdct_6x12		jFD6x12
 | 
			
		||||
#define jpeg_fdct_5x10		jFD5x10
 | 
			
		||||
#define jpeg_fdct_4x8		jFD4x8
 | 
			
		||||
#define jpeg_fdct_3x6		jFD3x6
 | 
			
		||||
#define jpeg_fdct_2x4		jFD2x4
 | 
			
		||||
#define jpeg_fdct_1x2		jFD1x2
 | 
			
		||||
#define jpeg_idct_islow		jRDislow
 | 
			
		||||
#define jpeg_idct_ifast		jRDifast
 | 
			
		||||
#define jpeg_idct_float		jRDfloat
 | 
			
		||||
#define jpeg_idct_7x7		jRD7x7
 | 
			
		||||
#define jpeg_idct_6x6		jRD6x6
 | 
			
		||||
#define jpeg_idct_5x5		jRD5x5
 | 
			
		||||
#define jpeg_idct_4x4		jRD4x4
 | 
			
		||||
#define jpeg_idct_3x3		jRD3x3
 | 
			
		||||
#define jpeg_idct_2x2		jRD2x2
 | 
			
		||||
#define jpeg_idct_1x1		jRD1x1
 | 
			
		||||
#define jpeg_idct_9x9		jRD9x9
 | 
			
		||||
#define jpeg_idct_10x10		jRD10x10
 | 
			
		||||
#define jpeg_idct_11x11		jRD11x11
 | 
			
		||||
#define jpeg_idct_12x12		jRD12x12
 | 
			
		||||
#define jpeg_idct_13x13		jRD13x13
 | 
			
		||||
#define jpeg_idct_14x14		jRD14x14
 | 
			
		||||
#define jpeg_idct_15x15		jRD15x15
 | 
			
		||||
#define jpeg_idct_16x16		jRD16x16
 | 
			
		||||
#define jpeg_idct_16x8		jRD16x8
 | 
			
		||||
#define jpeg_idct_14x7		jRD14x7
 | 
			
		||||
#define jpeg_idct_12x6		jRD12x6
 | 
			
		||||
#define jpeg_idct_10x5		jRD10x5
 | 
			
		||||
#define jpeg_idct_8x4		jRD8x4
 | 
			
		||||
#define jpeg_idct_6x3		jRD6x3
 | 
			
		||||
#define jpeg_idct_4x2		jRD4x2
 | 
			
		||||
#define jpeg_idct_2x1		jRD2x1
 | 
			
		||||
#define jpeg_idct_8x16		jRD8x16
 | 
			
		||||
#define jpeg_idct_7x14		jRD7x14
 | 
			
		||||
#define jpeg_idct_6x12		jRD6x12
 | 
			
		||||
#define jpeg_idct_5x10		jRD5x10
 | 
			
		||||
#define jpeg_idct_4x8		jRD4x8
 | 
			
		||||
#define jpeg_idct_3x6		jRD3x8
 | 
			
		||||
#define jpeg_idct_2x4		jRD2x4
 | 
			
		||||
#define jpeg_idct_1x2		jRD1x2
 | 
			
		||||
#endif /* NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
 | 
			
		||||
/* Extern declarations for the forward and inverse DCT routines. */
 | 
			
		||||
 | 
			
		||||
EXTERN(void) jpeg_fdct_islow
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_ifast
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_float
 | 
			
		||||
    JPP((FAST_FLOAT * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_7x7
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_6x6
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_5x5
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_4x4
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_3x3
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_2x2
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_1x1
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_9x9
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_10x10
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_11x11
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_12x12
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_13x13
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_14x14
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_15x15
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_16x16
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_16x8
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_14x7
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_12x6
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_10x5
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_8x4
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_6x3
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_4x2
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_2x1
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_8x16
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_7x14
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_6x12
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_5x10
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_4x8
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_3x6
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_2x4
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
EXTERN(void) jpeg_fdct_1x2
 | 
			
		||||
    JPP((DCTELEM * data, JSAMPARRAY sample_data, JDIMENSION start_col));
 | 
			
		||||
 | 
			
		||||
EXTERN(void) jpeg_idct_islow
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_ifast
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_float
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_7x7
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_6x6
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_5x5
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_4x4
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_3x3
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_2x2
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_1x1
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_9x9
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_10x10
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_11x11
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_12x12
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_13x13
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_14x14
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_15x15
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_16x16
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_16x8
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_14x7
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_12x6
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_10x5
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_8x4
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_6x3
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_4x2
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_2x1
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_8x16
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_7x14
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_6x12
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_5x10
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_4x8
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_3x6
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_2x4
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
EXTERN(void) jpeg_idct_1x2
 | 
			
		||||
    JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
	 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Macros for handling fixed-point arithmetic; these are used by many
 | 
			
		||||
 * but not all of the DCT/IDCT modules.
 | 
			
		||||
 *
 | 
			
		||||
 * All values are expected to be of type INT32.
 | 
			
		||||
 * Fractional constants are scaled left by CONST_BITS bits.
 | 
			
		||||
 * CONST_BITS is defined within each module using these macros,
 | 
			
		||||
 * and may differ from one module to the next.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define ONE	((INT32) 1)
 | 
			
		||||
#define CONST_SCALE (ONE << CONST_BITS)
 | 
			
		||||
 | 
			
		||||
/* Convert a positive real constant to an integer scaled by CONST_SCALE.
 | 
			
		||||
 * Caution: some C compilers fail to reduce "FIX(constant)" at compile time,
 | 
			
		||||
 * thus causing a lot of useless floating-point operations at run time.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define FIX(x)	((INT32) ((x) * CONST_SCALE + 0.5))
 | 
			
		||||
 | 
			
		||||
/* Descale and correctly round an INT32 value that's scaled by N bits.
 | 
			
		||||
 * We assume RIGHT_SHIFT rounds towards minus infinity, so adding
 | 
			
		||||
 * the fudge factor is correct for either sign of X.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define DESCALE(x,n)  RIGHT_SHIFT((x) + (ONE << ((n)-1)), n)
 | 
			
		||||
 | 
			
		||||
/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result.
 | 
			
		||||
 * This macro is used only when the two inputs will actually be no more than
 | 
			
		||||
 * 16 bits wide, so that a 16x16->32 bit multiply can be used instead of a
 | 
			
		||||
 * full 32x32 multiply.  This provides a useful speedup on many machines.
 | 
			
		||||
 * Unfortunately there is no way to specify a 16x16->32 multiply portably
 | 
			
		||||
 * in C, but some C compilers will do the right thing if you provide the
 | 
			
		||||
 * correct combination of casts.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef SHORTxSHORT_32		/* may work if 'int' is 32 bits */
 | 
			
		||||
#define MULTIPLY16C16(var,const)  (((INT16) (var)) * ((INT16) (const)))
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SHORTxLCONST_32		/* known to work with Microsoft C 6.0 */
 | 
			
		||||
#define MULTIPLY16C16(var,const)  (((INT16) (var)) * ((INT32) (const)))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MULTIPLY16C16		/* default definition */
 | 
			
		||||
#define MULTIPLY16C16(var,const)  ((var) * (const))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Same except both inputs are variables. */
 | 
			
		||||
 | 
			
		||||
#ifdef SHORTxSHORT_32		/* may work if 'int' is 32 bits */
 | 
			
		||||
#define MULTIPLY16V16(var1,var2)  (((INT16) (var1)) * ((INT16) (var2)))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MULTIPLY16V16		/* default definition */
 | 
			
		||||
#define MULTIPLY16V16(var1,var2)  ((var1) * (var2))
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										304
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jerror.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										304
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jerror.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,304 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jerror.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1994-1997, Thomas G. Lane.
 | 
			
		||||
 * Modified 1997-2009 by Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file defines the error and message codes for the JPEG library.
 | 
			
		||||
 * Edit this file to add new codes, or to translate the message strings to
 | 
			
		||||
 * some other language.
 | 
			
		||||
 * A set of error-reporting macros are defined too.  Some applications using
 | 
			
		||||
 * the JPEG library may wish to include this file to get the error codes
 | 
			
		||||
 * and/or the macros.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * To define the enum list of message codes, include this file without
 | 
			
		||||
 * defining macro JMESSAGE.  To create a message string table, include it
 | 
			
		||||
 * again with a suitable JMESSAGE definition (see jerror.c for an example).
 | 
			
		||||
 */
 | 
			
		||||
#ifndef JMESSAGE
 | 
			
		||||
#ifndef JERROR_H
 | 
			
		||||
/* First time through, define the enum list */
 | 
			
		||||
#define JMAKE_ENUM_LIST
 | 
			
		||||
#else
 | 
			
		||||
/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
 | 
			
		||||
#define JMESSAGE(code,string)
 | 
			
		||||
#endif /* JERROR_H */
 | 
			
		||||
#endif /* JMESSAGE */
 | 
			
		||||
 | 
			
		||||
#ifdef JMAKE_ENUM_LIST
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
 | 
			
		||||
#define JMESSAGE(code,string)	code ,
 | 
			
		||||
 | 
			
		||||
#endif /* JMAKE_ENUM_LIST */
 | 
			
		||||
 | 
			
		||||
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
 | 
			
		||||
 | 
			
		||||
/* For maintenance convenience, list is alphabetical by message code name */
 | 
			
		||||
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
 | 
			
		||||
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
 | 
			
		||||
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
 | 
			
		||||
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
 | 
			
		||||
JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request")
 | 
			
		||||
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
 | 
			
		||||
JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported")
 | 
			
		||||
JMESSAGE(JERR_BAD_DROP_SAMPLING,
 | 
			
		||||
	 "Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
 | 
			
		||||
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
 | 
			
		||||
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
 | 
			
		||||
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
 | 
			
		||||
JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length")
 | 
			
		||||
JMESSAGE(JERR_BAD_LIB_VERSION,
 | 
			
		||||
	 "Wrong JPEG library version: library is %d, caller expects %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan")
 | 
			
		||||
JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_PROGRESSION,
 | 
			
		||||
	 "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d")
 | 
			
		||||
JMESSAGE(JERR_BAD_PROG_SCRIPT,
 | 
			
		||||
	 "Invalid progressive parameters at scan script entry %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors")
 | 
			
		||||
JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d")
 | 
			
		||||
JMESSAGE(JERR_BAD_STRUCT_SIZE,
 | 
			
		||||
	 "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u")
 | 
			
		||||
JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access")
 | 
			
		||||
JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small")
 | 
			
		||||
JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here")
 | 
			
		||||
JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet")
 | 
			
		||||
JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d")
 | 
			
		||||
JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request")
 | 
			
		||||
JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d")
 | 
			
		||||
JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x")
 | 
			
		||||
JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d")
 | 
			
		||||
JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d")
 | 
			
		||||
JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)")
 | 
			
		||||
JMESSAGE(JERR_EMS_READ, "Read from EMS failed")
 | 
			
		||||
JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed")
 | 
			
		||||
JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan")
 | 
			
		||||
JMESSAGE(JERR_FILE_READ, "Input file read error")
 | 
			
		||||
JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?")
 | 
			
		||||
JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet")
 | 
			
		||||
JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow")
 | 
			
		||||
JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry")
 | 
			
		||||
JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels")
 | 
			
		||||
JMESSAGE(JERR_INPUT_EMPTY, "Empty input file")
 | 
			
		||||
JMESSAGE(JERR_INPUT_EOF, "Premature end of input file")
 | 
			
		||||
JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
 | 
			
		||||
	 "Cannot transcode due to multiple use of quantization table %d")
 | 
			
		||||
JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
 | 
			
		||||
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
 | 
			
		||||
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
 | 
			
		||||
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
 | 
			
		||||
JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined")
 | 
			
		||||
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
 | 
			
		||||
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
 | 
			
		||||
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
 | 
			
		||||
JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
 | 
			
		||||
JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x")
 | 
			
		||||
JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)")
 | 
			
		||||
JMESSAGE(JERR_QUANT_COMPONENTS,
 | 
			
		||||
	 "Cannot quantize more than %d color components")
 | 
			
		||||
JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors")
 | 
			
		||||
JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors")
 | 
			
		||||
JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers")
 | 
			
		||||
JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker")
 | 
			
		||||
JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x")
 | 
			
		||||
JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers")
 | 
			
		||||
JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF")
 | 
			
		||||
JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s")
 | 
			
		||||
JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file")
 | 
			
		||||
JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file")
 | 
			
		||||
JMESSAGE(JERR_TFILE_WRITE,
 | 
			
		||||
	 "Write failed on temporary file --- out of disk space?")
 | 
			
		||||
JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines")
 | 
			
		||||
JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x")
 | 
			
		||||
JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up")
 | 
			
		||||
JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation")
 | 
			
		||||
JMESSAGE(JERR_XMS_READ, "Read from XMS failed")
 | 
			
		||||
JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed")
 | 
			
		||||
JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT)
 | 
			
		||||
JMESSAGE(JMSG_VERSION, JVERSION)
 | 
			
		||||
JMESSAGE(JTRC_16BIT_TABLES,
 | 
			
		||||
	 "Caution: quantization tables are too coarse for baseline JPEG")
 | 
			
		||||
JMESSAGE(JTRC_ADOBE,
 | 
			
		||||
	 "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d")
 | 
			
		||||
JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u")
 | 
			
		||||
JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u")
 | 
			
		||||
JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x")
 | 
			
		||||
JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x")
 | 
			
		||||
JMESSAGE(JTRC_DQT, "Define Quantization Table %d  precision %d")
 | 
			
		||||
JMESSAGE(JTRC_DRI, "Define Restart Interval %u")
 | 
			
		||||
JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u")
 | 
			
		||||
JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u")
 | 
			
		||||
JMESSAGE(JTRC_EOI, "End Of Image")
 | 
			
		||||
JMESSAGE(JTRC_HUFFBITS, "        %3d %3d %3d %3d %3d %3d %3d %3d")
 | 
			
		||||
JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d  %d")
 | 
			
		||||
JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE,
 | 
			
		||||
	 "Warning: thumbnail image size does not match data length %u")
 | 
			
		||||
JMESSAGE(JTRC_JFIF_EXTENSION,
 | 
			
		||||
	 "JFIF extension marker: type 0x%02x, length %u")
 | 
			
		||||
JMESSAGE(JTRC_JFIF_THUMBNAIL, "    with %d x %d thumbnail image")
 | 
			
		||||
JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u")
 | 
			
		||||
JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x")
 | 
			
		||||
JMESSAGE(JTRC_QUANTVALS, "        %4u %4u %4u %4u %4u %4u %4u %4u")
 | 
			
		||||
JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors")
 | 
			
		||||
JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors")
 | 
			
		||||
JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization")
 | 
			
		||||
JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d")
 | 
			
		||||
JMESSAGE(JTRC_RST, "RST%d")
 | 
			
		||||
JMESSAGE(JTRC_SMOOTH_NOTIMPL,
 | 
			
		||||
	 "Smoothing not supported with nonstandard sampling ratios")
 | 
			
		||||
JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d")
 | 
			
		||||
JMESSAGE(JTRC_SOF_COMPONENT, "    Component %d: %dhx%dv q=%d")
 | 
			
		||||
JMESSAGE(JTRC_SOI, "Start of Image")
 | 
			
		||||
JMESSAGE(JTRC_SOS, "Start Of Scan: %d components")
 | 
			
		||||
JMESSAGE(JTRC_SOS_COMPONENT, "    Component %d: dc=%d ac=%d")
 | 
			
		||||
JMESSAGE(JTRC_SOS_PARAMS, "  Ss=%d, Se=%d, Ah=%d, Al=%d")
 | 
			
		||||
JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s")
 | 
			
		||||
JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s")
 | 
			
		||||
JMESSAGE(JTRC_THUMB_JPEG,
 | 
			
		||||
	 "JFIF extension marker: JPEG-compressed thumbnail image, length %u")
 | 
			
		||||
JMESSAGE(JTRC_THUMB_PALETTE,
 | 
			
		||||
	 "JFIF extension marker: palette thumbnail image, length %u")
 | 
			
		||||
JMESSAGE(JTRC_THUMB_RGB,
 | 
			
		||||
	 "JFIF extension marker: RGB thumbnail image, length %u")
 | 
			
		||||
JMESSAGE(JTRC_UNKNOWN_IDS,
 | 
			
		||||
	 "Unrecognized component IDs %d %d %d, assuming YCbCr")
 | 
			
		||||
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
 | 
			
		||||
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
 | 
			
		||||
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
 | 
			
		||||
JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
 | 
			
		||||
JMESSAGE(JWRN_BOGUS_PROGRESSION,
 | 
			
		||||
	 "Inconsistent progression sequence for component %d coefficient %d")
 | 
			
		||||
JMESSAGE(JWRN_EXTRANEOUS_DATA,
 | 
			
		||||
	 "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x")
 | 
			
		||||
JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment")
 | 
			
		||||
JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code")
 | 
			
		||||
JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d")
 | 
			
		||||
JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file")
 | 
			
		||||
JMESSAGE(JWRN_MUST_RESYNC,
 | 
			
		||||
	 "Corrupt JPEG data: found marker 0x%02x instead of RST%d")
 | 
			
		||||
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
 | 
			
		||||
JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
 | 
			
		||||
 | 
			
		||||
#ifdef JMAKE_ENUM_LIST
 | 
			
		||||
 | 
			
		||||
  JMSG_LASTMSGCODE
 | 
			
		||||
} J_MESSAGE_CODE;
 | 
			
		||||
 | 
			
		||||
#undef JMAKE_ENUM_LIST
 | 
			
		||||
#endif /* JMAKE_ENUM_LIST */
 | 
			
		||||
 | 
			
		||||
/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
 | 
			
		||||
#undef JMESSAGE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef JERROR_H
 | 
			
		||||
#define JERROR_H
 | 
			
		||||
 | 
			
		||||
/* Macros to simplify using the error and trace message stuff */
 | 
			
		||||
/* The first parameter is either type of cinfo pointer */
 | 
			
		||||
 | 
			
		||||
/* Fatal errors (print message and exit) */
 | 
			
		||||
#define ERREXIT(cinfo,code)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXIT1(cinfo,code,p1)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXIT2(cinfo,code,p1,p2)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXIT3(cinfo,code,p1,p2,p3)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[2] = (p3), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXIT4(cinfo,code,p1,p2,p3,p4)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[2] = (p3), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[3] = (p4), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[2] = (p3), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[3] = (p4), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[4] = (p5), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[5] = (p6), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
#define ERREXITS(cinfo,code,str)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
 | 
			
		||||
   (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
 | 
			
		||||
 | 
			
		||||
#define MAKESTMT(stuff)		do { stuff } while (0)
 | 
			
		||||
 | 
			
		||||
/* Nonfatal errors (we can keep going, but the data is probably corrupt) */
 | 
			
		||||
#define WARNMS(cinfo,code)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
 | 
			
		||||
#define WARNMS1(cinfo,code,p1)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
 | 
			
		||||
#define WARNMS2(cinfo,code,p1,p2)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
 | 
			
		||||
 | 
			
		||||
/* Informational/debugging messages */
 | 
			
		||||
#define TRACEMS(cinfo,lvl,code)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
 | 
			
		||||
#define TRACEMS1(cinfo,lvl,code,p1)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
 | 
			
		||||
#define TRACEMS2(cinfo,lvl,code,p1,p2)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[0] = (p1), \
 | 
			
		||||
   (cinfo)->err->msg_parm.i[1] = (p2), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
 | 
			
		||||
#define TRACEMS3(cinfo,lvl,code,p1,p2,p3)  \
 | 
			
		||||
  MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
 | 
			
		||||
	   _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \
 | 
			
		||||
	   (cinfo)->err->msg_code = (code); \
 | 
			
		||||
	   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
 | 
			
		||||
#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4)  \
 | 
			
		||||
  MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
 | 
			
		||||
	   _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
 | 
			
		||||
	   (cinfo)->err->msg_code = (code); \
 | 
			
		||||
	   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
 | 
			
		||||
#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5)  \
 | 
			
		||||
  MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
 | 
			
		||||
	   _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
 | 
			
		||||
	   _mp[4] = (p5); \
 | 
			
		||||
	   (cinfo)->err->msg_code = (code); \
 | 
			
		||||
	   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
 | 
			
		||||
#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8)  \
 | 
			
		||||
  MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
 | 
			
		||||
	   _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
 | 
			
		||||
	   _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \
 | 
			
		||||
	   (cinfo)->err->msg_code = (code); \
 | 
			
		||||
	   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
 | 
			
		||||
#define TRACEMSS(cinfo,lvl,code,str)  \
 | 
			
		||||
  ((cinfo)->err->msg_code = (code), \
 | 
			
		||||
   strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
 | 
			
		||||
   (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
 | 
			
		||||
 | 
			
		||||
#endif /* JERROR_H */
 | 
			
		||||
							
								
								
									
										91
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jinclude.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jinclude.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,91 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jinclude.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1991-1994, Thomas G. Lane.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file exists to provide a single place to fix any problems with
 | 
			
		||||
 * including the wrong system include files.  (Common problems are taken
 | 
			
		||||
 * care of by the standard jconfig symbols, but on really weird systems
 | 
			
		||||
 * you may have to edit this file.)
 | 
			
		||||
 *
 | 
			
		||||
 * NOTE: this file is NOT intended to be included by applications using the
 | 
			
		||||
 * JPEG library.  Most applications need only include jpeglib.h.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Include auto-config file to find out which system include files we need. */
 | 
			
		||||
 | 
			
		||||
#include "jconfig.h"		/* auto configuration options */
 | 
			
		||||
#define JCONFIG_INCLUDED	/* so that jpeglib.h doesn't do it again */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * We need the NULL macro and size_t typedef.
 | 
			
		||||
 * On an ANSI-conforming system it is sufficient to include <stddef.h>.
 | 
			
		||||
 * Otherwise, we get them from <stdlib.h> or <stdio.h>; we may have to
 | 
			
		||||
 * pull in <sys/types.h> as well.
 | 
			
		||||
 * Note that the core JPEG library does not require <stdio.h>;
 | 
			
		||||
 * only the default error handler and data source/destination modules do.
 | 
			
		||||
 * But we must pull it in because of the references to FILE in jpeglib.h.
 | 
			
		||||
 * You can remove those references if you want to compile without <stdio.h>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_STDDEF_H
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_STDLIB_H
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SYS_TYPES_H
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * We need memory copying and zeroing functions, plus strncpy().
 | 
			
		||||
 * ANSI and System V implementations declare these in <string.h>.
 | 
			
		||||
 * BSD doesn't have the mem() functions, but it does have bcopy()/bzero().
 | 
			
		||||
 * Some systems may declare memset and memcpy in <memory.h>.
 | 
			
		||||
 *
 | 
			
		||||
 * NOTE: we assume the size parameters to these functions are of type size_t.
 | 
			
		||||
 * Change the casts in these macros if not!
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_BSD_STRINGS
 | 
			
		||||
 | 
			
		||||
#include <strings.h>
 | 
			
		||||
#define MEMZERO(target,size)	bzero((void *)(target), (size_t)(size))
 | 
			
		||||
#define MEMCOPY(dest,src,size)	bcopy((const void *)(src), (void *)(dest), (size_t)(size))
 | 
			
		||||
 | 
			
		||||
#else /* not BSD, assume ANSI/SysV string lib */
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#define MEMZERO(target,size)	memset((void *)(target), 0, (size_t)(size))
 | 
			
		||||
#define MEMCOPY(dest,src,size)	memcpy((void *)(dest), (const void *)(src), (size_t)(size))
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * In ANSI C, and indeed any rational implementation, size_t is also the
 | 
			
		||||
 * type returned by sizeof().  However, it seems there are some irrational
 | 
			
		||||
 * implementations out there, in which sizeof() returns an int even though
 | 
			
		||||
 * size_t is defined as long or unsigned long.  To ensure consistent results
 | 
			
		||||
 * we always use this SIZEOF() macro in place of using sizeof() directly.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define SIZEOF(object)	((size_t) sizeof(object))
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The modules that use fread() and fwrite() always invoke them through
 | 
			
		||||
 * these macros.  On some systems you may need to twiddle the argument casts.
 | 
			
		||||
 * CAUTION: argument order is different from underlying functions!
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define JFREAD(file,buf,sizeofbuf)  \
 | 
			
		||||
  ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
 | 
			
		||||
#define JFWRITE(file,buf,sizeofbuf)  \
 | 
			
		||||
  ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
 | 
			
		||||
							
								
								
									
										198
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jmemsys.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										198
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jmemsys.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,198 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jmemsys.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1992-1997, Thomas G. Lane.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This include file defines the interface between the system-independent
 | 
			
		||||
 * and system-dependent portions of the JPEG memory manager.  No other
 | 
			
		||||
 * modules need include it.  (The system-independent portion is jmemmgr.c;
 | 
			
		||||
 * there are several different versions of the system-dependent portion.)
 | 
			
		||||
 *
 | 
			
		||||
 * This file works as-is for the system-dependent memory managers supplied
 | 
			
		||||
 * in the IJG distribution.  You may need to modify it if you write a
 | 
			
		||||
 * custom memory manager.  If system-dependent changes are needed in
 | 
			
		||||
 * this file, the best method is to #ifdef them based on a configuration
 | 
			
		||||
 * symbol supplied in jconfig.h, as we have done with USE_MSDOS_MEMMGR
 | 
			
		||||
 * and USE_MAC_MEMMGR.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Short forms of external names for systems with brain-damaged linkers. */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SHORT_EXTERNAL_NAMES
 | 
			
		||||
#define jpeg_get_small		jGetSmall
 | 
			
		||||
#define jpeg_free_small		jFreeSmall
 | 
			
		||||
#define jpeg_get_large		jGetLarge
 | 
			
		||||
#define jpeg_free_large		jFreeLarge
 | 
			
		||||
#define jpeg_mem_available	jMemAvail
 | 
			
		||||
#define jpeg_open_backing_store	jOpenBackStore
 | 
			
		||||
#define jpeg_mem_init		jMemInit
 | 
			
		||||
#define jpeg_mem_term		jMemTerm
 | 
			
		||||
#endif /* NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * These two functions are used to allocate and release small chunks of
 | 
			
		||||
 * memory.  (Typically the total amount requested through jpeg_get_small is
 | 
			
		||||
 * no more than 20K or so; this will be requested in chunks of a few K each.)
 | 
			
		||||
 * Behavior should be the same as for the standard library functions malloc
 | 
			
		||||
 * and free; in particular, jpeg_get_small must return NULL on failure.
 | 
			
		||||
 * On most systems, these ARE malloc and free.  jpeg_free_small is passed the
 | 
			
		||||
 * size of the object being freed, just in case it's needed.
 | 
			
		||||
 * On an 80x86 machine using small-data memory model, these manage near heap.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EXTERN(void *) jpeg_get_small JPP((j_common_ptr cinfo, size_t sizeofobject));
 | 
			
		||||
EXTERN(void) jpeg_free_small JPP((j_common_ptr cinfo, void * object,
 | 
			
		||||
				  size_t sizeofobject));
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * These two functions are used to allocate and release large chunks of
 | 
			
		||||
 * memory (up to the total free space designated by jpeg_mem_available).
 | 
			
		||||
 * The interface is the same as above, except that on an 80x86 machine,
 | 
			
		||||
 * far pointers are used.  On most other machines these are identical to
 | 
			
		||||
 * the jpeg_get/free_small routines; but we keep them separate anyway,
 | 
			
		||||
 * in case a different allocation strategy is desirable for large chunks.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EXTERN(void FAR *) jpeg_get_large JPP((j_common_ptr cinfo,
 | 
			
		||||
				       size_t sizeofobject));
 | 
			
		||||
EXTERN(void) jpeg_free_large JPP((j_common_ptr cinfo, void FAR * object,
 | 
			
		||||
				  size_t sizeofobject));
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The macro MAX_ALLOC_CHUNK designates the maximum number of bytes that may
 | 
			
		||||
 * be requested in a single call to jpeg_get_large (and jpeg_get_small for that
 | 
			
		||||
 * matter, but that case should never come into play).  This macro is needed
 | 
			
		||||
 * to model the 64Kb-segment-size limit of far addressing on 80x86 machines.
 | 
			
		||||
 * On those machines, we expect that jconfig.h will provide a proper value.
 | 
			
		||||
 * On machines with 32-bit flat address spaces, any large constant may be used.
 | 
			
		||||
 *
 | 
			
		||||
 * NB: jmemmgr.c expects that MAX_ALLOC_CHUNK will be representable as type
 | 
			
		||||
 * size_t and will be a multiple of sizeof(align_type).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef MAX_ALLOC_CHUNK		/* may be overridden in jconfig.h */
 | 
			
		||||
#define MAX_ALLOC_CHUNK  1000000000L
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This routine computes the total space still available for allocation by
 | 
			
		||||
 * jpeg_get_large.  If more space than this is needed, backing store will be
 | 
			
		||||
 * used.  NOTE: any memory already allocated must not be counted.
 | 
			
		||||
 *
 | 
			
		||||
 * There is a minimum space requirement, corresponding to the minimum
 | 
			
		||||
 * feasible buffer sizes; jmemmgr.c will request that much space even if
 | 
			
		||||
 * jpeg_mem_available returns zero.  The maximum space needed, enough to hold
 | 
			
		||||
 * all working storage in memory, is also passed in case it is useful.
 | 
			
		||||
 * Finally, the total space already allocated is passed.  If no better
 | 
			
		||||
 * method is available, cinfo->mem->max_memory_to_use - already_allocated
 | 
			
		||||
 * is often a suitable calculation.
 | 
			
		||||
 *
 | 
			
		||||
 * It is OK for jpeg_mem_available to underestimate the space available
 | 
			
		||||
 * (that'll just lead to more backing-store access than is really necessary).
 | 
			
		||||
 * However, an overestimate will lead to failure.  Hence it's wise to subtract
 | 
			
		||||
 * a slop factor from the true available space.  5% should be enough.
 | 
			
		||||
 *
 | 
			
		||||
 * On machines with lots of virtual memory, any large constant may be returned.
 | 
			
		||||
 * Conversely, zero may be returned to always use the minimum amount of memory.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EXTERN(long) jpeg_mem_available JPP((j_common_ptr cinfo,
 | 
			
		||||
				     long min_bytes_needed,
 | 
			
		||||
				     long max_bytes_needed,
 | 
			
		||||
				     long already_allocated));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This structure holds whatever state is needed to access a single
 | 
			
		||||
 * backing-store object.  The read/write/close method pointers are called
 | 
			
		||||
 * by jmemmgr.c to manipulate the backing-store object; all other fields
 | 
			
		||||
 * are private to the system-dependent backing store routines.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define TEMP_NAME_LENGTH   64	/* max length of a temporary file's name */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef USE_MSDOS_MEMMGR		/* DOS-specific junk */
 | 
			
		||||
 | 
			
		||||
typedef unsigned short XMSH;	/* type of extended-memory handles */
 | 
			
		||||
typedef unsigned short EMSH;	/* type of expanded-memory handles */
 | 
			
		||||
 | 
			
		||||
typedef union {
 | 
			
		||||
  short file_handle;		/* DOS file handle if it's a temp file */
 | 
			
		||||
  XMSH xms_handle;		/* handle if it's a chunk of XMS */
 | 
			
		||||
  EMSH ems_handle;		/* handle if it's a chunk of EMS */
 | 
			
		||||
} handle_union;
 | 
			
		||||
 | 
			
		||||
#endif /* USE_MSDOS_MEMMGR */
 | 
			
		||||
 | 
			
		||||
#ifdef USE_MAC_MEMMGR		/* Mac-specific junk */
 | 
			
		||||
#include <Files.h>
 | 
			
		||||
#endif /* USE_MAC_MEMMGR */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typedef struct backing_store_struct * backing_store_ptr;
 | 
			
		||||
 | 
			
		||||
typedef struct backing_store_struct {
 | 
			
		||||
  /* Methods for reading/writing/closing this backing-store object */
 | 
			
		||||
  JMETHOD(void, read_backing_store, (j_common_ptr cinfo,
 | 
			
		||||
				     backing_store_ptr info,
 | 
			
		||||
				     void FAR * buffer_address,
 | 
			
		||||
				     long file_offset, long byte_count));
 | 
			
		||||
  JMETHOD(void, write_backing_store, (j_common_ptr cinfo,
 | 
			
		||||
				      backing_store_ptr info,
 | 
			
		||||
				      void FAR * buffer_address,
 | 
			
		||||
				      long file_offset, long byte_count));
 | 
			
		||||
  JMETHOD(void, close_backing_store, (j_common_ptr cinfo,
 | 
			
		||||
				      backing_store_ptr info));
 | 
			
		||||
 | 
			
		||||
  /* Private fields for system-dependent backing-store management */
 | 
			
		||||
#ifdef USE_MSDOS_MEMMGR
 | 
			
		||||
  /* For the MS-DOS manager (jmemdos.c), we need: */
 | 
			
		||||
  handle_union handle;		/* reference to backing-store storage object */
 | 
			
		||||
  char temp_name[TEMP_NAME_LENGTH]; /* name if it's a file */
 | 
			
		||||
#else
 | 
			
		||||
#ifdef USE_MAC_MEMMGR
 | 
			
		||||
  /* For the Mac manager (jmemmac.c), we need: */
 | 
			
		||||
  short temp_file;		/* file reference number to temp file */
 | 
			
		||||
  FSSpec tempSpec;		/* the FSSpec for the temp file */
 | 
			
		||||
  char temp_name[TEMP_NAME_LENGTH]; /* name if it's a file */
 | 
			
		||||
#else
 | 
			
		||||
  /* For a typical implementation with temp files, we need: */
 | 
			
		||||
  FILE * temp_file;		/* stdio reference to temp file */
 | 
			
		||||
  char temp_name[TEMP_NAME_LENGTH]; /* name of temp file */
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
} backing_store_info;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Initial opening of a backing-store object.  This must fill in the
 | 
			
		||||
 * read/write/close pointers in the object.  The read/write routines
 | 
			
		||||
 * may take an error exit if the specified maximum file size is exceeded.
 | 
			
		||||
 * (If jpeg_mem_available always returns a large value, this routine can
 | 
			
		||||
 * just take an error exit.)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EXTERN(void) jpeg_open_backing_store JPP((j_common_ptr cinfo,
 | 
			
		||||
					  backing_store_ptr info,
 | 
			
		||||
					  long total_bytes_needed));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * These routines take care of any system-dependent initialization and
 | 
			
		||||
 * cleanup required.  jpeg_mem_init will be called before anything is
 | 
			
		||||
 * allocated (and, therefore, nothing in cinfo is of use except the error
 | 
			
		||||
 * manager pointer).  It should return a suitable default value for
 | 
			
		||||
 * max_memory_to_use; this may subsequently be overridden by the surrounding
 | 
			
		||||
 * application.  (Note that max_memory_to_use is only important if
 | 
			
		||||
 * jpeg_mem_available chooses to consult it ... no one else will.)
 | 
			
		||||
 * jpeg_mem_term may assume that all requested memory has been freed and that
 | 
			
		||||
 * all opened backing-store objects have been closed.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EXTERN(long) jpeg_mem_init JPP((j_common_ptr cinfo));
 | 
			
		||||
EXTERN(void) jpeg_mem_term JPP((j_common_ptr cinfo));
 | 
			
		||||
							
								
								
									
										369
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jmorecfg.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										369
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jmorecfg.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,369 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jmorecfg.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1991-1997, Thomas G. Lane.
 | 
			
		||||
 * Modified 1997-2011 by Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file contains additional configuration options that customize the
 | 
			
		||||
 * JPEG software for special applications or support machine-dependent
 | 
			
		||||
 * optimizations.  Most users will not need to touch this file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Define BITS_IN_JSAMPLE as either
 | 
			
		||||
 *   8   for 8-bit sample values (the usual setting)
 | 
			
		||||
 *   12  for 12-bit sample values
 | 
			
		||||
 * Only 8 and 12 are legal data precisions for lossy JPEG according to the
 | 
			
		||||
 * JPEG standard, and the IJG code does not support anything else!
 | 
			
		||||
 * We do not support run-time selection of data precision, sorry.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define BITS_IN_JSAMPLE  8	/* use 8 or 12 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Maximum number of components (color channels) allowed in JPEG image.
 | 
			
		||||
 * To meet the letter of the JPEG spec, set this to 255.  However, darn
 | 
			
		||||
 * few applications need more than 4 channels (maybe 5 for CMYK + alpha
 | 
			
		||||
 * mask).  We recommend 10 as a reasonable compromise; use 4 if you are
 | 
			
		||||
 * really short on memory.  (Each allowed component costs a hundred or so
 | 
			
		||||
 * bytes of storage, whether actually used in an image or not.)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define MAX_COMPONENTS  10	/* maximum number of image components */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Basic data types.
 | 
			
		||||
 * You may need to change these if you have a machine with unusual data
 | 
			
		||||
 * type sizes; for example, "char" not 8 bits, "short" not 16 bits,
 | 
			
		||||
 * or "long" not 32 bits.  We don't care whether "int" is 16 or 32 bits,
 | 
			
		||||
 * but it had better be at least 16.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Representation of a single sample (pixel element value).
 | 
			
		||||
 * We frequently allocate large arrays of these, so it's important to keep
 | 
			
		||||
 * them small.  But if you have memory to burn and access to char or short
 | 
			
		||||
 * arrays is very slow on your hardware, you might want to change these.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if BITS_IN_JSAMPLE == 8
 | 
			
		||||
/* JSAMPLE should be the smallest type that will hold the values 0..255.
 | 
			
		||||
 * You can use a signed char by having GETJSAMPLE mask it with 0xFF.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UNSIGNED_CHAR
 | 
			
		||||
 | 
			
		||||
typedef unsigned char JSAMPLE;
 | 
			
		||||
#define GETJSAMPLE(value)  ((int) (value))
 | 
			
		||||
 | 
			
		||||
#else /* not HAVE_UNSIGNED_CHAR */
 | 
			
		||||
 | 
			
		||||
typedef char JSAMPLE;
 | 
			
		||||
#ifdef CHAR_IS_UNSIGNED
 | 
			
		||||
#define GETJSAMPLE(value)  ((int) (value))
 | 
			
		||||
#else
 | 
			
		||||
#define GETJSAMPLE(value)  ((int) (value) & 0xFF)
 | 
			
		||||
#endif /* CHAR_IS_UNSIGNED */
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_UNSIGNED_CHAR */
 | 
			
		||||
 | 
			
		||||
#define MAXJSAMPLE	255
 | 
			
		||||
#define CENTERJSAMPLE	128
 | 
			
		||||
 | 
			
		||||
#endif /* BITS_IN_JSAMPLE == 8 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if BITS_IN_JSAMPLE == 12
 | 
			
		||||
/* JSAMPLE should be the smallest type that will hold the values 0..4095.
 | 
			
		||||
 * On nearly all machines "short" will do nicely.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef short JSAMPLE;
 | 
			
		||||
#define GETJSAMPLE(value)  ((int) (value))
 | 
			
		||||
 | 
			
		||||
#define MAXJSAMPLE	4095
 | 
			
		||||
#define CENTERJSAMPLE	2048
 | 
			
		||||
 | 
			
		||||
#endif /* BITS_IN_JSAMPLE == 12 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Representation of a DCT frequency coefficient.
 | 
			
		||||
 * This should be a signed value of at least 16 bits; "short" is usually OK.
 | 
			
		||||
 * Again, we allocate large arrays of these, but you can change to int
 | 
			
		||||
 * if you have memory to burn and "short" is really slow.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef short JCOEF;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Compressed datastreams are represented as arrays of JOCTET.
 | 
			
		||||
 * These must be EXACTLY 8 bits wide, at least once they are written to
 | 
			
		||||
 * external storage.  Note that when using the stdio data source/destination
 | 
			
		||||
 * managers, this is also the data type passed to fread/fwrite.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UNSIGNED_CHAR
 | 
			
		||||
 | 
			
		||||
typedef unsigned char JOCTET;
 | 
			
		||||
#define GETJOCTET(value)  (value)
 | 
			
		||||
 | 
			
		||||
#else /* not HAVE_UNSIGNED_CHAR */
 | 
			
		||||
 | 
			
		||||
typedef char JOCTET;
 | 
			
		||||
#ifdef CHAR_IS_UNSIGNED
 | 
			
		||||
#define GETJOCTET(value)  (value)
 | 
			
		||||
#else
 | 
			
		||||
#define GETJOCTET(value)  ((value) & 0xFF)
 | 
			
		||||
#endif /* CHAR_IS_UNSIGNED */
 | 
			
		||||
 | 
			
		||||
#endif /* HAVE_UNSIGNED_CHAR */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* These typedefs are used for various table entries and so forth.
 | 
			
		||||
 * They must be at least as wide as specified; but making them too big
 | 
			
		||||
 * won't cost a huge amount of memory, so we don't provide special
 | 
			
		||||
 * extraction code like we did for JSAMPLE.  (In other words, these
 | 
			
		||||
 * typedefs live at a different point on the speed/space tradeoff curve.)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* UINT8 must hold at least the values 0..255. */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UNSIGNED_CHAR
 | 
			
		||||
typedef unsigned char UINT8;
 | 
			
		||||
#else /* not HAVE_UNSIGNED_CHAR */
 | 
			
		||||
#ifdef CHAR_IS_UNSIGNED
 | 
			
		||||
typedef char UINT8;
 | 
			
		||||
#else /* not CHAR_IS_UNSIGNED */
 | 
			
		||||
typedef short UINT8;
 | 
			
		||||
#endif /* CHAR_IS_UNSIGNED */
 | 
			
		||||
#endif /* HAVE_UNSIGNED_CHAR */
 | 
			
		||||
 | 
			
		||||
/* UINT16 must hold at least the values 0..65535. */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_UNSIGNED_SHORT
 | 
			
		||||
typedef unsigned short UINT16;
 | 
			
		||||
#else /* not HAVE_UNSIGNED_SHORT */
 | 
			
		||||
typedef unsigned int UINT16;
 | 
			
		||||
#endif /* HAVE_UNSIGNED_SHORT */
 | 
			
		||||
 | 
			
		||||
/* INT16 must hold at least the values -32768..32767. */
 | 
			
		||||
 | 
			
		||||
#ifndef XMD_H			/* X11/xmd.h correctly defines INT16 */
 | 
			
		||||
typedef short INT16;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* INT32 must hold at least signed 32-bit values. */
 | 
			
		||||
 | 
			
		||||
#ifndef XMD_H			/* X11/xmd.h correctly defines INT32 */
 | 
			
		||||
#ifndef _BASETSD_H_		/* Microsoft defines it in basetsd.h */
 | 
			
		||||
#ifndef _BASETSD_H		/* MinGW is slightly different */
 | 
			
		||||
#ifndef QGLOBAL_H		/* Qt defines it in qglobal.h */
 | 
			
		||||
typedef long INT32;
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Datatype used for image dimensions.  The JPEG standard only supports
 | 
			
		||||
 * images up to 64K*64K due to 16-bit fields in SOF markers.  Therefore
 | 
			
		||||
 * "unsigned int" is sufficient on all machines.  However, if you need to
 | 
			
		||||
 * handle larger images and you don't mind deviating from the spec, you
 | 
			
		||||
 * can change this datatype.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef unsigned int JDIMENSION;
 | 
			
		||||
 | 
			
		||||
#define JPEG_MAX_DIMENSION  65500L  /* a tad under 64K to prevent overflows */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* These macros are used in all function definitions and extern declarations.
 | 
			
		||||
 * You could modify them if you need to change function linkage conventions;
 | 
			
		||||
 * in particular, you'll need to do that to make the library a Windows DLL.
 | 
			
		||||
 * Another application is to make all functions global for use with debuggers
 | 
			
		||||
 * or code profilers that require it.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* a function called through method pointers: */
 | 
			
		||||
#define METHODDEF(type)		static type
 | 
			
		||||
/* a function used only in its module: */
 | 
			
		||||
#define LOCAL(type)		static type
 | 
			
		||||
/* a function referenced thru EXTERNs: */
 | 
			
		||||
#define GLOBAL(type)		type
 | 
			
		||||
/* a reference to a GLOBAL function: */
 | 
			
		||||
#define EXTERN(type)		extern type
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* This macro is used to declare a "method", that is, a function pointer.
 | 
			
		||||
 * We want to supply prototype parameters if the compiler can cope.
 | 
			
		||||
 * Note that the arglist parameter must be parenthesized!
 | 
			
		||||
 * Again, you can customize this if you need special linkage keywords.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_PROTOTYPES
 | 
			
		||||
#define JMETHOD(type,methodname,arglist)  type (*methodname) arglist
 | 
			
		||||
#else
 | 
			
		||||
#define JMETHOD(type,methodname,arglist)  type (*methodname) ()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Here is the pseudo-keyword for declaring pointers that must be "far"
 | 
			
		||||
 * on 80x86 machines.  Most of the specialized coding for 80x86 is handled
 | 
			
		||||
 * by just saying "FAR *" where such a pointer is needed.  In a few places
 | 
			
		||||
 * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef FAR
 | 
			
		||||
#ifdef NEED_FAR_POINTERS
 | 
			
		||||
#define FAR  far
 | 
			
		||||
#else
 | 
			
		||||
#define FAR
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * On a few systems, type boolean and/or its values FALSE, TRUE may appear
 | 
			
		||||
 * in standard header files.  Or you may have conflicts with application-
 | 
			
		||||
 * specific header files that you want to include together with these files.
 | 
			
		||||
 * Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef HAVE_BOOLEAN
 | 
			
		||||
typedef int boolean;
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef FALSE			/* in case these macros already exist */
 | 
			
		||||
#define FALSE	0		/* values of boolean */
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TRUE
 | 
			
		||||
#define TRUE	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The remaining options affect code selection within the JPEG library,
 | 
			
		||||
 * but they don't need to be visible to most applications using the library.
 | 
			
		||||
 * To minimize application namespace pollution, the symbols won't be
 | 
			
		||||
 * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef JPEG_INTERNALS
 | 
			
		||||
#define JPEG_INTERNAL_OPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef JPEG_INTERNAL_OPTIONS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * These defines indicate whether to include various optional functions.
 | 
			
		||||
 * Undefining some of these symbols will produce a smaller but less capable
 | 
			
		||||
 * library.  Note that you can leave certain source files out of the
 | 
			
		||||
 * compilation/linking process if you've #undef'd the corresponding symbols.
 | 
			
		||||
 * (You may HAVE to do that if your compiler doesn't like null source files.)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Capability options common to encoder and decoder: */
 | 
			
		||||
 | 
			
		||||
#define DCT_ISLOW_SUPPORTED	/* slow but accurate integer algorithm */
 | 
			
		||||
#define DCT_IFAST_SUPPORTED	/* faster, less accurate integer method */
 | 
			
		||||
#define DCT_FLOAT_SUPPORTED	/* floating-point: accurate, fast on fast HW */
 | 
			
		||||
 | 
			
		||||
/* Encoder capability options: */
 | 
			
		||||
 | 
			
		||||
#define C_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
 | 
			
		||||
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
 | 
			
		||||
#define C_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
 | 
			
		||||
#define DCT_SCALING_SUPPORTED	    /* Input rescaling via DCT? (Requires DCT_ISLOW)*/
 | 
			
		||||
#define ENTROPY_OPT_SUPPORTED	    /* Optimization of entropy coding parms? */
 | 
			
		||||
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
 | 
			
		||||
 * ENTROPY_OPT_SUPPORTED.  The standard Huffman tables are only good for 8-bit
 | 
			
		||||
 * precision, so jchuff.c normally uses entropy optimization to compute
 | 
			
		||||
 * usable tables for higher precision.  If you don't want to do optimization,
 | 
			
		||||
 * you'll have to supply different default Huffman tables.
 | 
			
		||||
 * The exact same statements apply for progressive JPEG: the default tables
 | 
			
		||||
 * don't work for progressive mode.  (This may get fixed, however.)
 | 
			
		||||
 */
 | 
			
		||||
#define INPUT_SMOOTHING_SUPPORTED   /* Input image smoothing option? */
 | 
			
		||||
 | 
			
		||||
/* Decoder capability options: */
 | 
			
		||||
 | 
			
		||||
#define D_ARITH_CODING_SUPPORTED    /* Arithmetic coding back end? */
 | 
			
		||||
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
 | 
			
		||||
#define D_PROGRESSIVE_SUPPORTED	    /* Progressive JPEG? (Requires MULTISCAN)*/
 | 
			
		||||
#define IDCT_SCALING_SUPPORTED	    /* Output rescaling via IDCT? */
 | 
			
		||||
#define SAVE_MARKERS_SUPPORTED	    /* jpeg_save_markers() needed? */
 | 
			
		||||
#define BLOCK_SMOOTHING_SUPPORTED   /* Block smoothing? (Progressive only) */
 | 
			
		||||
#undef  UPSAMPLE_SCALING_SUPPORTED  /* Output rescaling at upsample stage? */
 | 
			
		||||
#define UPSAMPLE_MERGING_SUPPORTED  /* Fast path for sloppy upsampling? */
 | 
			
		||||
#define QUANT_1PASS_SUPPORTED	    /* 1-pass color quantization? */
 | 
			
		||||
#define QUANT_2PASS_SUPPORTED	    /* 2-pass color quantization? */
 | 
			
		||||
 | 
			
		||||
/* more capability options later, no doubt */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Ordering of RGB data in scanlines passed to or from the application.
 | 
			
		||||
 * If your application wants to deal with data in the order B,G,R, just
 | 
			
		||||
 * change these macros.  You can also deal with formats such as R,G,B,X
 | 
			
		||||
 * (one extra byte per pixel) by changing RGB_PIXELSIZE.  Note that changing
 | 
			
		||||
 * the offsets will also change the order in which colormap data is organized.
 | 
			
		||||
 * RESTRICTIONS:
 | 
			
		||||
 * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats.
 | 
			
		||||
 * 2. The color quantizer modules will not behave desirably if RGB_PIXELSIZE
 | 
			
		||||
 *    is not 3 (they don't understand about dummy color components!).  So you
 | 
			
		||||
 *    can't use color quantization if you change that value.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define RGB_RED		2	/* Offset of Red in an RGB scanline element */
 | 
			
		||||
#define RGB_GREEN	1	/* Offset of Green */
 | 
			
		||||
#define RGB_BLUE	0	/* Offset of Blue */
 | 
			
		||||
#define RGB_PIXELSIZE	3	/* JSAMPLEs per RGB scanline element */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Definitions for speed-related optimizations. */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* If your compiler supports inline functions, define INLINE
 | 
			
		||||
 * as the inline keyword; otherwise define it as empty.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef INLINE
 | 
			
		||||
#ifdef __GNUC__			/* for instance, GNU C knows about inline */
 | 
			
		||||
#define INLINE __inline__
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef INLINE
 | 
			
		||||
#define INLINE			/* default is to define it as empty */
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying
 | 
			
		||||
 * two 16-bit shorts is faster than multiplying two ints.  Define MULTIPLIER
 | 
			
		||||
 * as short on such a machine.  MULTIPLIER must be at least 16 bits wide.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef MULTIPLIER
 | 
			
		||||
#define MULTIPLIER  int		/* type for fastest integer multiply */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* FAST_FLOAT should be either float or double, whichever is done faster
 | 
			
		||||
 * by your compiler.  (Note that this type is only used in the floating point
 | 
			
		||||
 * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.)
 | 
			
		||||
 * Typically, float is faster in ANSI C compilers, while double is faster in
 | 
			
		||||
 * pre-ANSI compilers (because they insist on converting to double anyway).
 | 
			
		||||
 * The code below therefore chooses float if we have ANSI-style prototypes.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef FAST_FLOAT
 | 
			
		||||
#ifdef HAVE_PROTOTYPES
 | 
			
		||||
#define FAST_FLOAT  float
 | 
			
		||||
#else
 | 
			
		||||
#define FAST_FLOAT  double
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* JPEG_INTERNAL_OPTIONS */
 | 
			
		||||
							
								
								
									
										426
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jpegint.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										426
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jpegint.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,426 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jpegint.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1991-1997, Thomas G. Lane.
 | 
			
		||||
 * Modified 1997-2011 by Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file provides common declarations for the various JPEG modules.
 | 
			
		||||
 * These declarations are considered internal to the JPEG library; most
 | 
			
		||||
 * applications using the library shouldn't need to include this file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Declarations for both compression & decompression */
 | 
			
		||||
 | 
			
		||||
typedef enum {			/* Operating modes for buffer controllers */
 | 
			
		||||
	JBUF_PASS_THRU,		/* Plain stripwise operation */
 | 
			
		||||
	/* Remaining modes require a full-image buffer to have been created */
 | 
			
		||||
	JBUF_SAVE_SOURCE,	/* Run source subobject only, save output */
 | 
			
		||||
	JBUF_CRANK_DEST,	/* Run dest subobject only, using saved data */
 | 
			
		||||
	JBUF_SAVE_AND_PASS	/* Run both subobjects, save output */
 | 
			
		||||
} J_BUF_MODE;
 | 
			
		||||
 | 
			
		||||
/* Values of global_state field (jdapi.c has some dependencies on ordering!) */
 | 
			
		||||
#define CSTATE_START	100	/* after create_compress */
 | 
			
		||||
#define CSTATE_SCANNING	101	/* start_compress done, write_scanlines OK */
 | 
			
		||||
#define CSTATE_RAW_OK	102	/* start_compress done, write_raw_data OK */
 | 
			
		||||
#define CSTATE_WRCOEFS	103	/* jpeg_write_coefficients done */
 | 
			
		||||
#define DSTATE_START	200	/* after create_decompress */
 | 
			
		||||
#define DSTATE_INHEADER	201	/* reading header markers, no SOS yet */
 | 
			
		||||
#define DSTATE_READY	202	/* found SOS, ready for start_decompress */
 | 
			
		||||
#define DSTATE_PRELOAD	203	/* reading multiscan file in start_decompress*/
 | 
			
		||||
#define DSTATE_PRESCAN	204	/* performing dummy pass for 2-pass quant */
 | 
			
		||||
#define DSTATE_SCANNING	205	/* start_decompress done, read_scanlines OK */
 | 
			
		||||
#define DSTATE_RAW_OK	206	/* start_decompress done, read_raw_data OK */
 | 
			
		||||
#define DSTATE_BUFIMAGE	207	/* expecting jpeg_start_output */
 | 
			
		||||
#define DSTATE_BUFPOST	208	/* looking for SOS/EOI in jpeg_finish_output */
 | 
			
		||||
#define DSTATE_RDCOEFS	209	/* reading file in jpeg_read_coefficients */
 | 
			
		||||
#define DSTATE_STOPPING	210	/* looking for EOI in jpeg_finish_decompress */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Declarations for compression modules */
 | 
			
		||||
 | 
			
		||||
/* Master control module */
 | 
			
		||||
struct jpeg_comp_master {
 | 
			
		||||
  JMETHOD(void, prepare_for_pass, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, pass_startup, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, finish_pass, (j_compress_ptr cinfo));
 | 
			
		||||
 | 
			
		||||
  /* State variables made visible to other modules */
 | 
			
		||||
  boolean call_pass_startup;	/* True if pass_startup must be called */
 | 
			
		||||
  boolean is_last_pass;		/* True during last pass */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Main buffer control (downsampled-data buffer) */
 | 
			
		||||
struct jpeg_c_main_controller {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
 | 
			
		||||
  JMETHOD(void, process_data, (j_compress_ptr cinfo,
 | 
			
		||||
			       JSAMPARRAY input_buf, JDIMENSION *in_row_ctr,
 | 
			
		||||
			       JDIMENSION in_rows_avail));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Compression preprocessing (downsampling input buffer control) */
 | 
			
		||||
struct jpeg_c_prep_controller {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
 | 
			
		||||
  JMETHOD(void, pre_process_data, (j_compress_ptr cinfo,
 | 
			
		||||
				   JSAMPARRAY input_buf,
 | 
			
		||||
				   JDIMENSION *in_row_ctr,
 | 
			
		||||
				   JDIMENSION in_rows_avail,
 | 
			
		||||
				   JSAMPIMAGE output_buf,
 | 
			
		||||
				   JDIMENSION *out_row_group_ctr,
 | 
			
		||||
				   JDIMENSION out_row_groups_avail));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Coefficient buffer control */
 | 
			
		||||
struct jpeg_c_coef_controller {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
 | 
			
		||||
  JMETHOD(boolean, compress_data, (j_compress_ptr cinfo,
 | 
			
		||||
				   JSAMPIMAGE input_buf));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Colorspace conversion */
 | 
			
		||||
struct jpeg_color_converter {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, color_convert, (j_compress_ptr cinfo,
 | 
			
		||||
				JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
 | 
			
		||||
				JDIMENSION output_row, int num_rows));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Downsampling */
 | 
			
		||||
struct jpeg_downsampler {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, downsample, (j_compress_ptr cinfo,
 | 
			
		||||
			     JSAMPIMAGE input_buf, JDIMENSION in_row_index,
 | 
			
		||||
			     JSAMPIMAGE output_buf,
 | 
			
		||||
			     JDIMENSION out_row_group_index));
 | 
			
		||||
 | 
			
		||||
  boolean need_context_rows;	/* TRUE if need rows above & below */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Forward DCT (also controls coefficient quantization) */
 | 
			
		||||
typedef JMETHOD(void, forward_DCT_ptr,
 | 
			
		||||
		(j_compress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
		 JSAMPARRAY sample_data, JBLOCKROW coef_blocks,
 | 
			
		||||
		 JDIMENSION start_row, JDIMENSION start_col,
 | 
			
		||||
		 JDIMENSION num_blocks));
 | 
			
		||||
 | 
			
		||||
struct jpeg_forward_dct {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo));
 | 
			
		||||
  /* It is useful to allow each component to have a separate FDCT method. */
 | 
			
		||||
  forward_DCT_ptr forward_DCT[MAX_COMPONENTS];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Entropy encoding */
 | 
			
		||||
struct jpeg_entropy_encoder {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_compress_ptr cinfo, boolean gather_statistics));
 | 
			
		||||
  JMETHOD(boolean, encode_mcu, (j_compress_ptr cinfo, JBLOCKROW *MCU_data));
 | 
			
		||||
  JMETHOD(void, finish_pass, (j_compress_ptr cinfo));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Marker writing */
 | 
			
		||||
struct jpeg_marker_writer {
 | 
			
		||||
  JMETHOD(void, write_file_header, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, write_frame_header, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, write_scan_header, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, write_file_trailer, (j_compress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, write_tables_only, (j_compress_ptr cinfo));
 | 
			
		||||
  /* These routines are exported to allow insertion of extra markers */
 | 
			
		||||
  /* Probably only COM and APPn markers should be written this way */
 | 
			
		||||
  JMETHOD(void, write_marker_header, (j_compress_ptr cinfo, int marker,
 | 
			
		||||
				      unsigned int datalen));
 | 
			
		||||
  JMETHOD(void, write_marker_byte, (j_compress_ptr cinfo, int val));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Declarations for decompression modules */
 | 
			
		||||
 | 
			
		||||
/* Master control module */
 | 
			
		||||
struct jpeg_decomp_master {
 | 
			
		||||
  JMETHOD(void, prepare_for_output_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, finish_output_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
 | 
			
		||||
  /* State variables made visible to other modules */
 | 
			
		||||
  boolean is_dummy_pass;	/* True during 1st pass for 2-pass quant */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Input control module */
 | 
			
		||||
struct jpeg_input_controller {
 | 
			
		||||
  JMETHOD(int, consume_input, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, reset_input_controller, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, finish_input_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
 | 
			
		||||
  /* State variables made visible to other modules */
 | 
			
		||||
  boolean has_multiple_scans;	/* True if file has multiple scans */
 | 
			
		||||
  boolean eoi_reached;		/* True when EOI has been consumed */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Main buffer control (downsampled-data buffer) */
 | 
			
		||||
struct jpeg_d_main_controller {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode));
 | 
			
		||||
  JMETHOD(void, process_data, (j_decompress_ptr cinfo,
 | 
			
		||||
			       JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
			
		||||
			       JDIMENSION out_rows_avail));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Coefficient buffer control */
 | 
			
		||||
struct jpeg_d_coef_controller {
 | 
			
		||||
  JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(int, consume_data, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, start_output_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(int, decompress_data, (j_decompress_ptr cinfo,
 | 
			
		||||
				 JSAMPIMAGE output_buf));
 | 
			
		||||
  /* Pointer to array of coefficient virtual arrays, or NULL if none */
 | 
			
		||||
  jvirt_barray_ptr *coef_arrays;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Decompression postprocessing (color quantization buffer control) */
 | 
			
		||||
struct jpeg_d_post_controller {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode));
 | 
			
		||||
  JMETHOD(void, post_process_data, (j_decompress_ptr cinfo,
 | 
			
		||||
				    JSAMPIMAGE input_buf,
 | 
			
		||||
				    JDIMENSION *in_row_group_ctr,
 | 
			
		||||
				    JDIMENSION in_row_groups_avail,
 | 
			
		||||
				    JSAMPARRAY output_buf,
 | 
			
		||||
				    JDIMENSION *out_row_ctr,
 | 
			
		||||
				    JDIMENSION out_rows_avail));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Marker reading & parsing */
 | 
			
		||||
struct jpeg_marker_reader {
 | 
			
		||||
  JMETHOD(void, reset_marker_reader, (j_decompress_ptr cinfo));
 | 
			
		||||
  /* Read markers until SOS or EOI.
 | 
			
		||||
   * Returns same codes as are defined for jpeg_consume_input:
 | 
			
		||||
   * JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI.
 | 
			
		||||
   */
 | 
			
		||||
  JMETHOD(int, read_markers, (j_decompress_ptr cinfo));
 | 
			
		||||
  /* Read a restart marker --- exported for use by entropy decoder only */
 | 
			
		||||
  jpeg_marker_parser_method read_restart_marker;
 | 
			
		||||
 | 
			
		||||
  /* State of marker reader --- nominally internal, but applications
 | 
			
		||||
   * supplying COM or APPn handlers might like to know the state.
 | 
			
		||||
   */
 | 
			
		||||
  boolean saw_SOI;		/* found SOI? */
 | 
			
		||||
  boolean saw_SOF;		/* found SOF? */
 | 
			
		||||
  int next_restart_num;		/* next restart number expected (0-7) */
 | 
			
		||||
  unsigned int discarded_bytes;	/* # of bytes skipped looking for a marker */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Entropy decoding */
 | 
			
		||||
struct jpeg_entropy_decoder {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(boolean, decode_mcu, (j_decompress_ptr cinfo,
 | 
			
		||||
				JBLOCKROW *MCU_data));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Inverse DCT (also performs dequantization) */
 | 
			
		||||
typedef JMETHOD(void, inverse_DCT_method_ptr,
 | 
			
		||||
		(j_decompress_ptr cinfo, jpeg_component_info * compptr,
 | 
			
		||||
		 JCOEFPTR coef_block,
 | 
			
		||||
		 JSAMPARRAY output_buf, JDIMENSION output_col));
 | 
			
		||||
 | 
			
		||||
struct jpeg_inverse_dct {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  /* It is useful to allow each component to have a separate IDCT method. */
 | 
			
		||||
  inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Upsampling (note that upsampler must also call color converter) */
 | 
			
		||||
struct jpeg_upsampler {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, upsample, (j_decompress_ptr cinfo,
 | 
			
		||||
			   JSAMPIMAGE input_buf,
 | 
			
		||||
			   JDIMENSION *in_row_group_ctr,
 | 
			
		||||
			   JDIMENSION in_row_groups_avail,
 | 
			
		||||
			   JSAMPARRAY output_buf,
 | 
			
		||||
			   JDIMENSION *out_row_ctr,
 | 
			
		||||
			   JDIMENSION out_rows_avail));
 | 
			
		||||
 | 
			
		||||
  boolean need_context_rows;	/* TRUE if need rows above & below */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Colorspace conversion */
 | 
			
		||||
struct jpeg_color_deconverter {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
 | 
			
		||||
				JSAMPIMAGE input_buf, JDIMENSION input_row,
 | 
			
		||||
				JSAMPARRAY output_buf, int num_rows));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Color quantization or color precision reduction */
 | 
			
		||||
struct jpeg_color_quantizer {
 | 
			
		||||
  JMETHOD(void, start_pass, (j_decompress_ptr cinfo, boolean is_pre_scan));
 | 
			
		||||
  JMETHOD(void, color_quantize, (j_decompress_ptr cinfo,
 | 
			
		||||
				 JSAMPARRAY input_buf, JSAMPARRAY output_buf,
 | 
			
		||||
				 int num_rows));
 | 
			
		||||
  JMETHOD(void, finish_pass, (j_decompress_ptr cinfo));
 | 
			
		||||
  JMETHOD(void, new_color_map, (j_decompress_ptr cinfo));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Miscellaneous useful macros */
 | 
			
		||||
 | 
			
		||||
#undef MAX
 | 
			
		||||
#define MAX(a,b)	((a) > (b) ? (a) : (b))
 | 
			
		||||
#undef MIN
 | 
			
		||||
#define MIN(a,b)	((a) < (b) ? (a) : (b))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* We assume that right shift corresponds to signed division by 2 with
 | 
			
		||||
 * rounding towards minus infinity.  This is correct for typical "arithmetic
 | 
			
		||||
 * shift" instructions that shift in copies of the sign bit.  But some
 | 
			
		||||
 * C compilers implement >> with an unsigned shift.  For these machines you
 | 
			
		||||
 * must define RIGHT_SHIFT_IS_UNSIGNED.
 | 
			
		||||
 * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity.
 | 
			
		||||
 * It is only applied with constant shift counts.  SHIFT_TEMPS must be
 | 
			
		||||
 * included in the variables of any routine using RIGHT_SHIFT.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef RIGHT_SHIFT_IS_UNSIGNED
 | 
			
		||||
#define SHIFT_TEMPS	INT32 shift_temp;
 | 
			
		||||
#define RIGHT_SHIFT(x,shft)  \
 | 
			
		||||
	((shift_temp = (x)) < 0 ? \
 | 
			
		||||
	 (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \
 | 
			
		||||
	 (shift_temp >> (shft)))
 | 
			
		||||
#else
 | 
			
		||||
#define SHIFT_TEMPS
 | 
			
		||||
#define RIGHT_SHIFT(x,shft)	((x) >> (shft))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Short forms of external names for systems with brain-damaged linkers. */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SHORT_EXTERNAL_NAMES
 | 
			
		||||
#define jinit_compress_master	jICompress
 | 
			
		||||
#define jinit_c_master_control	jICMaster
 | 
			
		||||
#define jinit_c_main_controller	jICMainC
 | 
			
		||||
#define jinit_c_prep_controller	jICPrepC
 | 
			
		||||
#define jinit_c_coef_controller	jICCoefC
 | 
			
		||||
#define jinit_color_converter	jICColor
 | 
			
		||||
#define jinit_downsampler	jIDownsampler
 | 
			
		||||
#define jinit_forward_dct	jIFDCT
 | 
			
		||||
#define jinit_huff_encoder	jIHEncoder
 | 
			
		||||
#define jinit_arith_encoder	jIAEncoder
 | 
			
		||||
#define jinit_marker_writer	jIMWriter
 | 
			
		||||
#define jinit_master_decompress	jIDMaster
 | 
			
		||||
#define jinit_d_main_controller	jIDMainC
 | 
			
		||||
#define jinit_d_coef_controller	jIDCoefC
 | 
			
		||||
#define jinit_d_post_controller	jIDPostC
 | 
			
		||||
#define jinit_input_controller	jIInCtlr
 | 
			
		||||
#define jinit_marker_reader	jIMReader
 | 
			
		||||
#define jinit_huff_decoder	jIHDecoder
 | 
			
		||||
#define jinit_arith_decoder	jIADecoder
 | 
			
		||||
#define jinit_inverse_dct	jIIDCT
 | 
			
		||||
#define jinit_upsampler		jIUpsampler
 | 
			
		||||
#define jinit_color_deconverter	jIDColor
 | 
			
		||||
#define jinit_1pass_quantizer	jI1Quant
 | 
			
		||||
#define jinit_2pass_quantizer	jI2Quant
 | 
			
		||||
#define jinit_merged_upsampler	jIMUpsampler
 | 
			
		||||
#define jinit_memory_mgr	jIMemMgr
 | 
			
		||||
#define jdiv_round_up		jDivRound
 | 
			
		||||
#define jround_up		jRound
 | 
			
		||||
#define jzero_far		jZeroFar
 | 
			
		||||
#define jcopy_sample_rows	jCopySamples
 | 
			
		||||
#define jcopy_block_row		jCopyBlocks
 | 
			
		||||
#define jpeg_zigzag_order	jZIGTable
 | 
			
		||||
#define jpeg_natural_order	jZAGTable
 | 
			
		||||
#define jpeg_natural_order7	jZAG7Table
 | 
			
		||||
#define jpeg_natural_order6	jZAG6Table
 | 
			
		||||
#define jpeg_natural_order5	jZAG5Table
 | 
			
		||||
#define jpeg_natural_order4	jZAG4Table
 | 
			
		||||
#define jpeg_natural_order3	jZAG3Table
 | 
			
		||||
#define jpeg_natural_order2	jZAG2Table
 | 
			
		||||
#define jpeg_aritab		jAriTab
 | 
			
		||||
#endif /* NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* On normal machines we can apply MEMCOPY() and MEMZERO() to sample arrays
 | 
			
		||||
 * and coefficient-block arrays.  This won't work on 80x86 because the arrays
 | 
			
		||||
 * are FAR and we're assuming a small-pointer memory model.  However, some
 | 
			
		||||
 * DOS compilers provide far-pointer versions of memcpy() and memset() even
 | 
			
		||||
 * in the small-model libraries.  These will be used if USE_FMEM is defined.
 | 
			
		||||
 * Otherwise, the routines in jutils.c do it the hard way.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef NEED_FAR_POINTERS	/* normal case, same as regular macro */
 | 
			
		||||
#define FMEMZERO(target,size)	MEMZERO(target,size)
 | 
			
		||||
#else				/* 80x86 case */
 | 
			
		||||
#ifdef USE_FMEM
 | 
			
		||||
#define FMEMZERO(target,size)	_fmemset((void FAR *)(target), 0, (size_t)(size))
 | 
			
		||||
#else
 | 
			
		||||
EXTERN(void) jzero_far JPP((void FAR * target, size_t bytestozero));
 | 
			
		||||
#define FMEMZERO(target,size)	jzero_far(target, size)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Compression module initialization routines */
 | 
			
		||||
EXTERN(void) jinit_compress_master JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_c_master_control JPP((j_compress_ptr cinfo,
 | 
			
		||||
					 boolean transcode_only));
 | 
			
		||||
EXTERN(void) jinit_c_main_controller JPP((j_compress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_c_prep_controller JPP((j_compress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_c_coef_controller JPP((j_compress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_color_converter JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_downsampler JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_forward_dct JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_huff_encoder JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_arith_encoder JPP((j_compress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_marker_writer JPP((j_compress_ptr cinfo));
 | 
			
		||||
/* Decompression module initialization routines */
 | 
			
		||||
EXTERN(void) jinit_master_decompress JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_d_main_controller JPP((j_decompress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_d_coef_controller JPP((j_decompress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_d_post_controller JPP((j_decompress_ptr cinfo,
 | 
			
		||||
					  boolean need_full_buffer));
 | 
			
		||||
EXTERN(void) jinit_input_controller JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_marker_reader JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_huff_decoder JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_arith_decoder JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_inverse_dct JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_upsampler JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_color_deconverter JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_1pass_quantizer JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_2pass_quantizer JPP((j_decompress_ptr cinfo));
 | 
			
		||||
EXTERN(void) jinit_merged_upsampler JPP((j_decompress_ptr cinfo));
 | 
			
		||||
/* Memory manager initialization */
 | 
			
		||||
EXTERN(void) jinit_memory_mgr JPP((j_common_ptr cinfo));
 | 
			
		||||
 | 
			
		||||
/* Utility routines in jutils.c */
 | 
			
		||||
EXTERN(long) jdiv_round_up JPP((long a, long b));
 | 
			
		||||
EXTERN(long) jround_up JPP((long a, long b));
 | 
			
		||||
EXTERN(void) jcopy_sample_rows JPP((JSAMPARRAY input_array, int source_row,
 | 
			
		||||
				    JSAMPARRAY output_array, int dest_row,
 | 
			
		||||
				    int num_rows, JDIMENSION num_cols));
 | 
			
		||||
EXTERN(void) jcopy_block_row JPP((JBLOCKROW input_row, JBLOCKROW output_row,
 | 
			
		||||
				  JDIMENSION num_blocks));
 | 
			
		||||
/* Constant tables in jutils.c */
 | 
			
		||||
#if 0				/* This table is not actually needed in v6a */
 | 
			
		||||
extern const int jpeg_zigzag_order[]; /* natural coef order to zigzag order */
 | 
			
		||||
#endif
 | 
			
		||||
extern const int jpeg_natural_order[]; /* zigzag coef order to natural order */
 | 
			
		||||
extern const int jpeg_natural_order7[]; /* zz to natural order for 7x7 block */
 | 
			
		||||
extern const int jpeg_natural_order6[]; /* zz to natural order for 6x6 block */
 | 
			
		||||
extern const int jpeg_natural_order5[]; /* zz to natural order for 5x5 block */
 | 
			
		||||
extern const int jpeg_natural_order4[]; /* zz to natural order for 4x4 block */
 | 
			
		||||
extern const int jpeg_natural_order3[]; /* zz to natural order for 3x3 block */
 | 
			
		||||
extern const int jpeg_natural_order2[]; /* zz to natural order for 2x2 block */
 | 
			
		||||
 | 
			
		||||
/* Arithmetic coding probability estimation tables in jaricom.c */
 | 
			
		||||
extern const INT32 jpeg_aritab[];
 | 
			
		||||
 | 
			
		||||
/* Suppress undefined-structure complaints if necessary. */
 | 
			
		||||
 | 
			
		||||
#ifdef INCOMPLETE_TYPES_BROKEN
 | 
			
		||||
#ifndef AM_MEMORY_MANAGER	/* only jmemmgr.c defines these */
 | 
			
		||||
struct jvirt_sarray_control { long dummy; };
 | 
			
		||||
struct jvirt_barray_control { long dummy; };
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* INCOMPLETE_TYPES_BROKEN */
 | 
			
		||||
							
								
								
									
										1160
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jpeglib.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1160
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jpeglib.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jversion.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/jversion.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jversion.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1991-2012, Thomas G. Lane, Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file contains software version identification.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define JVERSION	"8d  15-Jan-2012"
 | 
			
		||||
 | 
			
		||||
#define JCOPYRIGHT	"Copyright (C) 2012, Thomas G. Lane, Guido Vollbeding"
 | 
			
		||||
							
								
								
									
										213
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/transupp.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/include/transupp.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,213 @@
 | 
			
		||||
/*
 | 
			
		||||
 * transupp.h
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1997-2011, Thomas G. Lane, Guido Vollbeding.
 | 
			
		||||
 * This file is part of the Independent JPEG Group's software.
 | 
			
		||||
 * For conditions of distribution and use, see the accompanying README file.
 | 
			
		||||
 *
 | 
			
		||||
 * This file contains declarations for image transformation routines and
 | 
			
		||||
 * other utility code used by the jpegtran sample application.  These are
 | 
			
		||||
 * NOT part of the core JPEG library.  But we keep these routines separate
 | 
			
		||||
 * from jpegtran.c to ease the task of maintaining jpegtran-like programs
 | 
			
		||||
 * that have other user interfaces.
 | 
			
		||||
 *
 | 
			
		||||
 * NOTE: all the routines declared here have very specific requirements
 | 
			
		||||
 * about when they are to be executed during the reading and writing of the
 | 
			
		||||
 * source and destination files.  See the comments in transupp.c, or see
 | 
			
		||||
 * jpegtran.c for an example of correct usage.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* If you happen not to want the image transform support, disable it here */
 | 
			
		||||
#ifndef TRANSFORMS_SUPPORTED
 | 
			
		||||
#define TRANSFORMS_SUPPORTED 1		/* 0 disables transform code */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Although rotating and flipping data expressed as DCT coefficients is not
 | 
			
		||||
 * hard, there is an asymmetry in the JPEG format specification for images
 | 
			
		||||
 * whose dimensions aren't multiples of the iMCU size.  The right and bottom
 | 
			
		||||
 * image edges are padded out to the next iMCU boundary with junk data; but
 | 
			
		||||
 * no padding is possible at the top and left edges.  If we were to flip
 | 
			
		||||
 * the whole image including the pad data, then pad garbage would become
 | 
			
		||||
 * visible at the top and/or left, and real pixels would disappear into the
 | 
			
		||||
 * pad margins --- perhaps permanently, since encoders & decoders may not
 | 
			
		||||
 * bother to preserve DCT blocks that appear to be completely outside the
 | 
			
		||||
 * nominal image area.  So, we have to exclude any partial iMCUs from the
 | 
			
		||||
 * basic transformation.
 | 
			
		||||
 *
 | 
			
		||||
 * Transpose is the only transformation that can handle partial iMCUs at the
 | 
			
		||||
 * right and bottom edges completely cleanly.  flip_h can flip partial iMCUs
 | 
			
		||||
 * at the bottom, but leaves any partial iMCUs at the right edge untouched.
 | 
			
		||||
 * Similarly flip_v leaves any partial iMCUs at the bottom edge untouched.
 | 
			
		||||
 * The other transforms are defined as combinations of these basic transforms
 | 
			
		||||
 * and process edge blocks in a way that preserves the equivalence.
 | 
			
		||||
 *
 | 
			
		||||
 * The "trim" option causes untransformable partial iMCUs to be dropped;
 | 
			
		||||
 * this is not strictly lossless, but it usually gives the best-looking
 | 
			
		||||
 * result for odd-size images.  Note that when this option is active,
 | 
			
		||||
 * the expected mathematical equivalences between the transforms may not hold.
 | 
			
		||||
 * (For example, -rot 270 -trim trims only the bottom edge, but -rot 90 -trim
 | 
			
		||||
 * followed by -rot 180 -trim trims both edges.)
 | 
			
		||||
 *
 | 
			
		||||
 * We also offer a lossless-crop option, which discards data outside a given
 | 
			
		||||
 * image region but losslessly preserves what is inside.  Like the rotate and
 | 
			
		||||
 * flip transforms, lossless crop is restricted by the JPEG format: the upper
 | 
			
		||||
 * left corner of the selected region must fall on an iMCU boundary.  If this
 | 
			
		||||
 * does not hold for the given crop parameters, we silently move the upper left
 | 
			
		||||
 * corner up and/or left to make it so, simultaneously increasing the region
 | 
			
		||||
 * dimensions to keep the lower right crop corner unchanged.  (Thus, the
 | 
			
		||||
 * output image covers at least the requested region, but may cover more.)
 | 
			
		||||
 * The adjustment of the region dimensions may be optionally disabled.
 | 
			
		||||
 *
 | 
			
		||||
 * We also provide a lossless-resize option, which is kind of a lossless-crop
 | 
			
		||||
 * operation in the DCT coefficient block domain - it discards higher-order
 | 
			
		||||
 * coefficients and losslessly preserves lower-order coefficients of a
 | 
			
		||||
 * sub-block.
 | 
			
		||||
 *
 | 
			
		||||
 * Rotate/flip transform, resize, and crop can be requested together in a
 | 
			
		||||
 * single invocation.  The crop is applied last --- that is, the crop region
 | 
			
		||||
 * is specified in terms of the destination image after transform/resize.
 | 
			
		||||
 *
 | 
			
		||||
 * We also offer a "force to grayscale" option, which simply discards the
 | 
			
		||||
 * chrominance channels of a YCbCr image.  This is lossless in the sense that
 | 
			
		||||
 * the luminance channel is preserved exactly.  It's not the same kind of
 | 
			
		||||
 * thing as the rotate/flip transformations, but it's convenient to handle it
 | 
			
		||||
 * as part of this package, mainly because the transformation routines have to
 | 
			
		||||
 * be aware of the option to know how many components to work on.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Short forms of external names for systems with brain-damaged linkers. */
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_SHORT_EXTERNAL_NAMES
 | 
			
		||||
#define jtransform_parse_crop_spec	jTrParCrop
 | 
			
		||||
#define jtransform_request_workspace	jTrRequest
 | 
			
		||||
#define jtransform_adjust_parameters	jTrAdjust
 | 
			
		||||
#define jtransform_execute_transform	jTrExec
 | 
			
		||||
#define jtransform_perfect_transform	jTrPerfect
 | 
			
		||||
#define jcopy_markers_setup		jCMrkSetup
 | 
			
		||||
#define jcopy_markers_execute		jCMrkExec
 | 
			
		||||
#endif /* NEED_SHORT_EXTERNAL_NAMES */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Codes for supported types of image transformations.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
	JXFORM_NONE,		/* no transformation */
 | 
			
		||||
	JXFORM_FLIP_H,		/* horizontal flip */
 | 
			
		||||
	JXFORM_FLIP_V,		/* vertical flip */
 | 
			
		||||
	JXFORM_TRANSPOSE,	/* transpose across UL-to-LR axis */
 | 
			
		||||
	JXFORM_TRANSVERSE,	/* transpose across UR-to-LL axis */
 | 
			
		||||
	JXFORM_ROT_90,		/* 90-degree clockwise rotation */
 | 
			
		||||
	JXFORM_ROT_180,		/* 180-degree rotation */
 | 
			
		||||
	JXFORM_ROT_270		/* 270-degree clockwise (or 90 ccw) */
 | 
			
		||||
} JXFORM_CODE;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Codes for crop parameters, which can individually be unspecified,
 | 
			
		||||
 * positive or negative for xoffset or yoffset,
 | 
			
		||||
 * positive or forced for width or height.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
        JCROP_UNSET,
 | 
			
		||||
        JCROP_POS,
 | 
			
		||||
        JCROP_NEG,
 | 
			
		||||
        JCROP_FORCE
 | 
			
		||||
} JCROP_CODE;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Transform parameters struct.
 | 
			
		||||
 * NB: application must not change any elements of this struct after
 | 
			
		||||
 * calling jtransform_request_workspace.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
  /* Options: set by caller */
 | 
			
		||||
  JXFORM_CODE transform;	/* image transform operator */
 | 
			
		||||
  boolean perfect;		/* if TRUE, fail if partial MCUs are requested */
 | 
			
		||||
  boolean trim;			/* if TRUE, trim partial MCUs as needed */
 | 
			
		||||
  boolean force_grayscale;	/* if TRUE, convert color image to grayscale */
 | 
			
		||||
  boolean crop;			/* if TRUE, crop source image */
 | 
			
		||||
 | 
			
		||||
  /* Crop parameters: application need not set these unless crop is TRUE.
 | 
			
		||||
   * These can be filled in by jtransform_parse_crop_spec().
 | 
			
		||||
   */
 | 
			
		||||
  JDIMENSION crop_width;	/* Width of selected region */
 | 
			
		||||
  JCROP_CODE crop_width_set;	/* (forced disables adjustment) */
 | 
			
		||||
  JDIMENSION crop_height;	/* Height of selected region */
 | 
			
		||||
  JCROP_CODE crop_height_set;	/* (forced disables adjustment) */
 | 
			
		||||
  JDIMENSION crop_xoffset;	/* X offset of selected region */
 | 
			
		||||
  JCROP_CODE crop_xoffset_set;	/* (negative measures from right edge) */
 | 
			
		||||
  JDIMENSION crop_yoffset;	/* Y offset of selected region */
 | 
			
		||||
  JCROP_CODE crop_yoffset_set;	/* (negative measures from bottom edge) */
 | 
			
		||||
 | 
			
		||||
  /* Internal workspace: caller should not touch these */
 | 
			
		||||
  int num_components;		/* # of components in workspace */
 | 
			
		||||
  jvirt_barray_ptr * workspace_coef_arrays; /* workspace for transformations */
 | 
			
		||||
  JDIMENSION output_width;	/* cropped destination dimensions */
 | 
			
		||||
  JDIMENSION output_height;
 | 
			
		||||
  JDIMENSION x_crop_offset;	/* destination crop offsets measured in iMCUs */
 | 
			
		||||
  JDIMENSION y_crop_offset;
 | 
			
		||||
  int iMCU_sample_width;	/* destination iMCU size */
 | 
			
		||||
  int iMCU_sample_height;
 | 
			
		||||
} jpeg_transform_info;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if TRANSFORMS_SUPPORTED
 | 
			
		||||
 | 
			
		||||
/* Parse a crop specification (written in X11 geometry style) */
 | 
			
		||||
EXTERN(boolean) jtransform_parse_crop_spec
 | 
			
		||||
	JPP((jpeg_transform_info *info, const char *spec));
 | 
			
		||||
/* Request any required workspace */
 | 
			
		||||
EXTERN(boolean) jtransform_request_workspace
 | 
			
		||||
	JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info));
 | 
			
		||||
/* Adjust output image parameters */
 | 
			
		||||
EXTERN(jvirt_barray_ptr *) jtransform_adjust_parameters
 | 
			
		||||
	JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
 | 
			
		||||
	     jvirt_barray_ptr *src_coef_arrays,
 | 
			
		||||
	     jpeg_transform_info *info));
 | 
			
		||||
/* Execute the actual transformation, if any */
 | 
			
		||||
EXTERN(void) jtransform_execute_transform
 | 
			
		||||
	JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
 | 
			
		||||
	     jvirt_barray_ptr *src_coef_arrays,
 | 
			
		||||
	     jpeg_transform_info *info));
 | 
			
		||||
/* Determine whether lossless transformation is perfectly
 | 
			
		||||
 * possible for a specified image and transformation.
 | 
			
		||||
 */
 | 
			
		||||
EXTERN(boolean) jtransform_perfect_transform
 | 
			
		||||
	JPP((JDIMENSION image_width, JDIMENSION image_height,
 | 
			
		||||
	     int MCU_width, int MCU_height,
 | 
			
		||||
	     JXFORM_CODE transform));
 | 
			
		||||
 | 
			
		||||
/* jtransform_execute_transform used to be called
 | 
			
		||||
 * jtransform_execute_transformation, but some compilers complain about
 | 
			
		||||
 * routine names that long.  This macro is here to avoid breaking any
 | 
			
		||||
 * old source code that uses the original name...
 | 
			
		||||
 */
 | 
			
		||||
#define jtransform_execute_transformation	jtransform_execute_transform
 | 
			
		||||
 | 
			
		||||
#endif /* TRANSFORMS_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Support for copying optional markers from source to destination file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
	JCOPYOPT_NONE,		/* copy no optional markers */
 | 
			
		||||
	JCOPYOPT_COMMENTS,	/* copy only comment (COM) markers */
 | 
			
		||||
	JCOPYOPT_ALL		/* copy all optional markers */
 | 
			
		||||
} JCOPY_OPTION;
 | 
			
		||||
 | 
			
		||||
#define JCOPYOPT_DEFAULT  JCOPYOPT_COMMENTS	/* recommended default */
 | 
			
		||||
 | 
			
		||||
/* Setup decompression object to save desired markers in memory */
 | 
			
		||||
EXTERN(void) jcopy_markers_setup
 | 
			
		||||
	JPP((j_decompress_ptr srcinfo, JCOPY_OPTION option));
 | 
			
		||||
/* Copy markers saved in the given source object to the destination object */
 | 
			
		||||
EXTERN(void) jcopy_markers_execute
 | 
			
		||||
	JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
 | 
			
		||||
	     JCOPY_OPTION option));
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/linux/libjpeg.a
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/linux/libjpeg.a
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.a
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.a
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.dll
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.dll
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.lib
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TouchGFX/Middlewares/ST/touchgfx/3rdparty/libjpeg/lib/win32/libjpeg-8.lib
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user