annotate libmpeg2/mpeg2_internal.h @ 21:9311e47da144

Mi tortenik ha egy szokenek adsz 2 biliardgolyot? Az egyiket elveszti, a masikat elrontja. ;)))
author gabucino
date Tue, 27 Feb 2001 20:58:18 +0000
parents 3b5f5d1c5041
children 846535ace7a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 #include <inttypes.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 * mpeg2_internal.h
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 * mpeg2dec is free software; you can redistribute it and/or modify
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 * (at your option) any later version.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 * mpeg2dec is distributed in the hope that it will be useful,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 * GNU General Public License for more details.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 // hack mode - temporary
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 // 0 = decode B pictures in a small slice buffer, display slice per slice
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 // 1 = decode in a frame buffer, display slice per slice
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 // 2 = decode in a frame buffer, display whole frames
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 #define HACK_MODE 0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 // macroblock modes
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 #define MACROBLOCK_INTRA 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 #define MACROBLOCK_PATTERN 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
32 #define MACROBLOCK_MOTION_BACKWARD 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 #define MACROBLOCK_MOTION_FORWARD 8
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 #define MACROBLOCK_QUANT 16
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 #define DCT_TYPE_INTERLACED 32
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 // motion_type
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 #define MOTION_TYPE_MASK (3*64)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 #define MOTION_TYPE_BASE 64
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
39 #define MC_FIELD (1*64)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
40 #define MC_FRAME (2*64)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 #define MC_16X8 (2*64)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 #define MC_DMV (3*64)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44 //picture structure
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 #define TOP_FIELD 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46 #define BOTTOM_FIELD 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 #define FRAME_PICTURE 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 //picture coding type
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 #define I_TYPE 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 #define P_TYPE 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
52 #define B_TYPE 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 #define D_TYPE 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 //The picture struct contains all of the top level state
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 //information (ie everything except slice and macroblock
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 //state)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 typedef struct picture_s {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 //-- sequence header stuff --
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 uint8_t intra_quantizer_matrix [64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 uint8_t non_intra_quantizer_matrix [64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 //The width and height of the picture snapped to macroblock units
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 int coded_picture_width;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 int coded_picture_height;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 //-- picture header stuff --
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 //what type of picture this is (I,P,or B) D from MPEG-1 isn't supported
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 int picture_coding_type;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 //-- picture coding extension stuff --
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
74 //quantization factor for motion vectors
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75 int f_code[2][2];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
76 //quantization factor for intra dc coefficients
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 int intra_dc_precision;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
78 //top/bottom/both fields
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79 int picture_structure;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 //bool to indicate all predictions are frame based
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 int frame_pred_frame_dct;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
82 //bool to indicate whether intra blocks have motion vectors
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
83 // (for concealment)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
84 int concealment_motion_vectors;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
85 //bit to indicate which quantization table to use
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86 int q_scale_type;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 //bool to use different vlc tables
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88 int intra_vlc_format;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 //last macroblock in the picture
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
91 int last_mba;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
92 //width of picture in macroblocks
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
93 int mb_width;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
94
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
95 //stuff derived from bitstream
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97 //pointer to the zigzag scan we're supposed to be using
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
98 uint8_t * scan;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100 //Pointer to the current planar frame buffer (Y,Cr,CB)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 uint8_t * current_frame[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102 //storage for reference frames plus a b-frame
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 uint8_t * forward_reference_frame[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 uint8_t * backward_reference_frame[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105 uint8_t * throwaway_frame[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
106 uint8_t * pp_frame[3]; // postprocess
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
107 //uint8_t * throwaway_frame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
108
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109 int pp_options; // postprocess
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111 int second_field;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 // MPEG1 - testing
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
114 uint8_t mpeg1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
115
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
116 //these things are not needed by the decoder
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
117 //NOTICE : this is a temporary interface, we will build a better one later.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
118 int aspect_ratio_information;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
119 int frame_rate_code;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
120 int progressive_sequence;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
121 int top_field_first; // this one is actually used for DMV MC
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
122 int repeat_first_field;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
123 int progressive_frame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
124 // added by A'rpi/ESP-team:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
125 int repeat_count;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
126 int bitrate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
127 int frame_rate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
128 int display_picture_width;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
129 int display_picture_height;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130 } picture_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
131
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
132 typedef struct motion_s {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
133 uint8_t * ref[2][3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134 int pmv[2][2];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
135 int f_code[2];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
136 } motion_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
137
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
138 // state that is carried from one macroblock to the next inside of a same slice
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139 typedef struct slice_s {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
140 // bit parsing stuff
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
141 uint32_t bitstream_buf; // current 32 bit working set of buffer
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
142 int bitstream_bits; // used bits in working set
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
143 uint8_t * bitstream_ptr; // buffer with stream data
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
144
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
145 //Motion vectors
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
146 //The f_ and b_ correspond to the forward and backward motion
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
147 //predictors
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
148 motion_t b_motion;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
149 motion_t f_motion;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
150
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
151 // predictor for DC coefficients in intra blocks
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
152 int16_t dc_dct_pred[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
153
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
154 uint16_t quantizer_scale; // remove
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
155 } slice_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
156
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
157 typedef struct mpeg2_config_s {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
158 //Bit flags that enable various things
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
159 uint32_t flags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
160 } mpeg2_config_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
161
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162 //The only global variable,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
163 //the config struct
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164 extern mpeg2_config_t config;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
167
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
168 // slice.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
169 void header_state_init (picture_t * picture);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
170 int header_process_picture_header (picture_t * picture, uint8_t * buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
171 int header_process_sequence_header (picture_t * picture, uint8_t * buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
172 int header_process_extension (picture_t * picture, uint8_t * buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
173
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
174 // idct.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
175 void idct_init (void);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177 // idct_mlib.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178 void idct_block_copy_mlib (int16_t * block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179 void idct_block_add_mlib (int16_t * block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
180
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
181 // idct_mmx.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
182 void idct_block_copy_mmxext (int16_t *block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
183 void idct_block_add_mmxext (int16_t *block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
184 void idct_block_copy_mmx (int16_t *block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
185 void idct_block_add_mmx (int16_t *block, uint8_t * dest, int stride);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 void idct_mmx_init (void);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188 // motion_comp.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
189 void motion_comp_init (void);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
190
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
191 typedef struct mc_functions_s
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
192 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
193 void (* put [8]) (uint8_t *dst, uint8_t *, int32_t, int32_t);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
194 void (* avg [8]) (uint8_t *dst, uint8_t *, int32_t, int32_t);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
195 } mc_functions_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
196
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
197 #define MOTION_COMP_EXTERN(x) mc_functions_t mc_functions_##x = \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
198 { \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
199 {MC_put_16_##x, MC_put_x16_##x, MC_put_y16_##x, MC_put_xy16_##x, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
200 MC_put_8_##x, MC_put_x8_##x, MC_put_y8_##x, MC_put_xy8_##x}, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
201 {MC_avg_16_##x, MC_avg_x16_##x, MC_avg_y16_##x, MC_avg_xy16_##x, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
202 MC_avg_8_##x, MC_avg_x8_##x, MC_avg_y8_##x, MC_avg_xy8_##x} \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
203 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
204
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
205 extern mc_functions_t mc_functions_c;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
206 extern mc_functions_t mc_functions_mmx;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
207 extern mc_functions_t mc_functions_mmxext;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
208 extern mc_functions_t mc_functions_3dnow;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
209 extern mc_functions_t mc_functions_mlib;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
210
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
211 // slice.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
212 int slice_process (picture_t *picture, uint8_t code, uint8_t * buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
213
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
214 // stats.c
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215 void stats_header (uint8_t code, uint8_t * buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
216
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
217 #define MBC 45
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
218 #define MBR 36
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
219 extern int quant_store[MBR+1][MBC+1]; // [Review]
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
220