Imported Upstream version 3.0.1
[platform/upstream/libjpeg-turbo.git] / jcmaster.h
1 /*
2  * jcmaster.h
3  *
4  * This file was part of the Independent JPEG Group's software:
5  * Copyright (C) 1991-1995, Thomas G. Lane.
6  * libjpeg-turbo Modifications:
7  * Copyright (C) 2016, D. R. Commander.
8  * For conditions of distribution and use, see the accompanying README.ijg
9  * file.
10  *
11  * This file contains master control structure for the JPEG compressor.
12  */
13
14 /* Private state */
15
16 typedef enum {
17   main_pass,                    /* input data, also do first output step */
18   huff_opt_pass,                /* Huffman code optimization pass */
19   output_pass                   /* data output pass */
20 } c_pass_type;
21
22 typedef struct {
23   struct jpeg_comp_master pub;  /* public fields */
24
25   c_pass_type pass_type;        /* the type of the current pass */
26
27   int pass_number;              /* # of passes completed */
28   int total_passes;             /* total # of passes needed */
29
30   int scan_number;              /* current index in scan_info[] */
31
32   /*
33    * This is here so we can add libjpeg-turbo version/build information to the
34    * global string table without introducing a new global symbol.  Adding this
35    * information to the global string table allows one to examine a binary
36    * object and determine which version of libjpeg-turbo it was built from or
37    * linked against.
38    */
39   const char *jpeg_version;
40
41 } my_comp_master;
42
43 typedef my_comp_master *my_master_ptr;