comparison mjpeg.h @ 5045:f0e079daad30 libavcodec

move MJpegDecodeContext declaration from mjpeg.h to mjpegdec.h
author aurel
date Sat, 19 May 2007 15:06:34 +0000
parents d73237575709
children 470601203f44
comparison
equal deleted inserted replaced
5044:924fdd6175b1 5045:f0e079daad30
33 #ifndef MJPEG_H 33 #ifndef MJPEG_H
34 #define MJPEG_H 34 #define MJPEG_H
35 35
36 #include "avcodec.h" 36 #include "avcodec.h"
37 #include "bitstream.h" 37 #include "bitstream.h"
38 #include "dsputil.h"
39 #include "mpegvideo.h"
40 38
41 39
42 /* JPEG marker codes */ 40 /* JPEG marker codes */
43 typedef enum { 41 typedef enum {
44 /* start of frame */ 42 /* start of frame */
125 { 123 {
126 put_bits(p, 8, 0xff); 124 put_bits(p, 8, 0xff);
127 put_bits(p, 8, code); 125 put_bits(p, 8, code);
128 } 126 }
129 127
130 #define MAX_COMPONENTS 4
131
132 typedef struct MJpegDecodeContext {
133 AVCodecContext *avctx;
134 GetBitContext gb;
135
136 int start_code; /* current start code */
137 int buffer_size;
138 uint8_t *buffer;
139
140 int16_t quant_matrixes[4][64];
141 VLC vlcs[2][4];
142 int qscale[4]; ///< quantizer scale calculated from quant_matrixes
143
144 int org_height; /* size given at codec init */
145 int first_picture; /* true if decoding first picture */
146 int interlaced; /* true if interlaced */
147 int bottom_field; /* true if bottom field */
148 int lossless;
149 int ls;
150 int progressive;
151 int rgb;
152 int rct; /* standard rct */
153 int pegasus_rct; /* pegasus reversible colorspace transform */
154 int bits; /* bits per component */
155
156 int maxval;
157 int near; ///< near lossless bound (si 0 for lossless)
158 int t1,t2,t3;
159 int reset; ///< context halfing intervall ?rename
160
161 int width, height;
162 int mb_width, mb_height;
163 int nb_components;
164 int component_id[MAX_COMPONENTS];
165 int h_count[MAX_COMPONENTS]; /* horizontal and vertical count for each component */
166 int v_count[MAX_COMPONENTS];
167 int comp_index[MAX_COMPONENTS];
168 int dc_index[MAX_COMPONENTS];
169 int ac_index[MAX_COMPONENTS];
170 int nb_blocks[MAX_COMPONENTS];
171 int h_scount[MAX_COMPONENTS];
172 int v_scount[MAX_COMPONENTS];
173 int h_max, v_max; /* maximum h and v counts */
174 int quant_index[4]; /* quant table index for each component */
175 int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */
176 AVFrame picture; /* picture structure */
177 int linesize[MAX_COMPONENTS]; ///< linesize << interlaced
178 int8_t *qscale_table;
179 DECLARE_ALIGNED_8(DCTELEM, block[64]);
180 ScanTable scantable;
181 DSPContext dsp;
182
183 int restart_interval;
184 int restart_count;
185
186 int buggy_avid;
187 int cs_itu601;
188 int interlace_polarity;
189
190 int mjpb_skiptosod;
191
192 int cur_scan; /* current scan, used by JPEG-LS */
193 } MJpegDecodeContext;
194
195 #define PREDICT(ret, topleft, top, left, predictor)\ 128 #define PREDICT(ret, topleft, top, left, predictor)\
196 switch(predictor){\ 129 switch(predictor){\
197 case 1: ret= left; break;\ 130 case 1: ret= left; break;\
198 case 2: ret= top; break;\ 131 case 2: ret= top; break;\
199 case 3: ret= topleft; break;\ 132 case 3: ret= topleft; break;\