Mercurial > libavcodec.hg
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;\ |