summaryrefslogtreecommitdiffstats
path: root/baseline/source/cjpeg_wrbmp/cdjpeg.h
diff options
context:
space:
mode:
Diffstat (limited to 'baseline/source/cjpeg_wrbmp/cdjpeg.h')
-rw-r--r--baseline/source/cjpeg_wrbmp/cdjpeg.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/baseline/source/cjpeg_wrbmp/cdjpeg.h b/baseline/source/cjpeg_wrbmp/cdjpeg.h
new file mode 100644
index 0000000..6c3fc7b
--- /dev/null
+++ b/baseline/source/cjpeg_wrbmp/cdjpeg.h
@@ -0,0 +1,105 @@
1/*
2
3 This program is part of the TACLeBench benchmark suite.
4 Version V 1.x
5
6 Name: cdjpeg.h
7
8 Author: Thomas G. Lane.
9
10 This file is part of the Independent JPEG Group's software.
11 For conditions of distribution and use, see the accompanying README file.
12
13 This file contains common declarations for the sample applications
14 cjpeg and djpeg. It is NOT used by the core JPEG library.
15
16 Source: Independent JPEG Group's software
17
18 Changes: no major functional changes
19
20 License: See the accompanying README file
21
22*/
23#ifndef CDJPEG_H
24#define CDJPEG_H
25
26#define CJPEG_WRBMP_JPEG_CJPEG_DJPEG /* define proper options in jconfig.h */
27#define CJPEG_WRBMP_JPEG_INTERNAL_OPTIONS /* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */
28
29#include "jpeglib.h"
30#include "jerror.h" /* get library error codes too */
31#include "cderror.h" /* get application-specific error codes */
32
33typedef struct cjpeg_wrbmp_cjpeg_source_struct
34 *cjpeg_wrbmp_cjpeg_source_ptr;
35
36struct cjpeg_wrbmp_cjpeg_source_struct {
37 CJPEG_WRBMP_JMETHOD( void, start_input,
38 ( cjpeg_wrbmp_j_compress_ptr cinfo,
39 cjpeg_wrbmp_cjpeg_source_ptr sinfo ) );
40 CJPEG_WRBMP_JMETHOD( CJPEG_WRBMP_JDIMENSION, get_pixel_rows,
41 ( cjpeg_wrbmp_j_compress_ptr cinfo,
42 cjpeg_wrbmp_cjpeg_source_ptr sinfo ) );
43 CJPEG_WRBMP_JMETHOD( void, finish_input,
44 ( cjpeg_wrbmp_j_compress_ptr cinfo,
45 cjpeg_wrbmp_cjpeg_source_ptr sinfo ) );
46
47 CJPEG_WRBMP_FILE *input_file;
48
49 CJPEG_WRBMP_JSAMPARRAY buffer;
50 CJPEG_WRBMP_JDIMENSION buffer_height;
51};
52
53
54typedef struct cjpeg_wrbmp_djpeg_dest_struct
55 *cjpeg_wrbmp_djpeg_dest_ptr;
56
57struct cjpeg_wrbmp_djpeg_dest_struct {
58 CJPEG_WRBMP_JMETHOD( void, start_output,
59 ( cjpeg_wrbmp_j_decompress_ptr cinfo,
60 cjpeg_wrbmp_djpeg_dest_ptr dinfo ) );
61 /* Emit the specified number of pixel rows from the buffer. */
62 CJPEG_WRBMP_JMETHOD( void, put_pixel_rows,
63 ( cjpeg_wrbmp_j_decompress_ptr cinfo,
64 cjpeg_wrbmp_djpeg_dest_ptr dinfo,
65 CJPEG_WRBMP_JDIMENSION rows_supplied ) );
66 /* Finish up at the end of the image. */
67 CJPEG_WRBMP_JMETHOD( void, finish_output,
68 ( cjpeg_wrbmp_j_decompress_ptr cinfo,
69 cjpeg_wrbmp_djpeg_dest_ptr dinfo ) );
70
71 /* Target file spec; filled in by djpeg.c after object is created. */
72 CJPEG_WRBMP_FILE *output_file;
73
74 /* Output pixel-row buffer. Created by module init or start_output.
75 Width is cinfo->output_width * cinfo->output_components;
76 height is buffer_height.
77 */
78 CJPEG_WRBMP_JSAMPARRAY buffer;
79 CJPEG_WRBMP_JDIMENSION buffer_height;
80} ;
81
82
83
84/*
85 cjpeg/djpeg may need to perform extra passes to convert to or from
86 the source/destination file format. The JPEG library does not know
87 about these passes, but we'd like them to be counted by the progress
88 monitor. We use an expanded progress monitor object to hold the
89 additional pass count.
90*/
91
92struct cjpeg_wrbmp_cdjpeg_progress_mgr {
93 struct cjpeg_wrbmp_jpeg_progress_mgr
94 pub; /* fields known to JPEG library */
95 int completed_extra_passes; /* extra passes completed */
96 int total_extra_passes; /* total extra */
97 /* last printed percentage stored here to avoid multiple printouts */
98 int percent_done;
99};
100
101typedef struct cjpeg_wrbmp_cdjpeg_progress_mgr
102 *cjpeg_wrbmp_cd_progress_ptr;
103
104#endif
105