annotate libmpeg2/mpeg2_internal.h @ 27815:f92271dc5f17

Remove X11 backing store: this is now a useless flag. Also, it is mandatory for Xserver 1.5.x (part of Xorg 7.4, shipped on all Linux distributions starting from Oct. 08) and will be removed from Xserver 1.6 anyhow ... Patch by Stephane Marchesin (marchesin at icps dot u dash strasbg dot fr). For more info, see long flame thread at: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2008-August/058323.html
author ben
date Wed, 29 Oct 2008 22:03:36 +0000
parents 83d915449a10
children 25337a2147e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 * mpeg2_internal.h
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
3 * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
1
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.
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
7 * See http://libmpeg2.sourceforge.net/ for updates.
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 * mpeg2dec is free software; you can redistribute it and/or modify
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 * (at your option) any later version.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 * mpeg2dec is distributed in the hope that it will be useful,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 * GNU General Public License for more details.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14732
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13123
diff changeset
22 *
27571
fd18fa10de53 libmpeg-0.4.1.diff was renamed to libmpeg2_changes.diff.
diego
parents: 26393
diff changeset
23 * Modified for use with MPlayer, see libmpeg2_changes.diff for the exact changes.
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 14732
diff changeset
24 * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
14732
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13123
diff changeset
25 * $Id$
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
28 #ifndef LIBMPEG2_MPEG2_INTERNAL_H
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
29 #define LIBMPEG2_MPEG2_INTERNAL_H
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
30
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
31 #define STATE_INTERNAL_NORETURN ((mpeg2_state_t)-1)
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
32
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
33 /* macroblock modes */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 #define MACROBLOCK_INTRA 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 #define MACROBLOCK_PATTERN 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 #define MACROBLOCK_MOTION_BACKWARD 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 #define MACROBLOCK_MOTION_FORWARD 8
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 #define MACROBLOCK_QUANT 16
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
39 #define DCT_TYPE_INTERLACED 32
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
40 /* motion_type */
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
41 #define MOTION_TYPE_SHIFT 6
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
42 #define MC_FIELD 1
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
43 #define MC_FRAME 2
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
44 #define MC_16X8 2
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
45 #define MC_DMV 3
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
47 /* picture structure */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48 #define TOP_FIELD 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 #define BOTTOM_FIELD 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 #define FRAME_PICTURE 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
52 /* picture coding type */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 #define I_TYPE 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 #define P_TYPE 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 #define B_TYPE 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 #define D_TYPE 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
58 typedef void mpeg2_mc_fct (uint8_t *, const uint8_t *, int, int);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
59
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
60 typedef struct {
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 uint8_t * ref[2][3];
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
62 uint8_t ** ref2[2];
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 int pmv[2][2];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 int f_code[2];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 } motion_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
67 typedef void motion_parser_t (mpeg2_decoder_t * decoder,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
68 motion_t * motion,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
69 mpeg2_mc_fct * const * table);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
70
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
71 struct mpeg2_decoder_s {
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
72 /* first, state that carries information from one macroblock to the */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
73 /* next inside a slice, and is never used outside of mpeg2_slice() */
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
74
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
75 /* bit parsing stuff */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
76 uint32_t bitstream_buf; /* current 32 bit working set */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
77 int bitstream_bits; /* used bits in working set */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
78 const uint8_t * bitstream_ptr; /* buffer with stream data */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
79
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
80 uint8_t * dest[3];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
81
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
82 int offset;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
83 int stride;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
84 int uv_stride;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
85 int slice_stride;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
86 int slice_uv_stride;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
87 int stride_frame;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
88 unsigned int limit_x;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
89 unsigned int limit_y_16;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
90 unsigned int limit_y_8;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
91 unsigned int limit_y;
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
92
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
93 /* Motion vectors */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
94 /* The f_ and b_ correspond to the forward and backward motion */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
95 /* predictors */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 motion_t b_motion;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97 motion_t f_motion;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
98 motion_parser_t * motion_parser[5];
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
100 /* predictor for DC coefficients in intra blocks */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 int16_t dc_dct_pred[3];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
103 /* DCT coefficients */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
104 int16_t DCTblock[64] ATTR_ALIGN(64);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
105
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
106 uint8_t * picture_dest[3];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
107 void (* convert) (void * convert_id, uint8_t * const * src,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
108 unsigned int v_offset);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
109 void * convert_id;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
110
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
111 int dmv_offset;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
112 unsigned int v_offset;
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
113
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
114 /* now non-slice-specific information */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
115
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
116 /* sequence header stuff */
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
117 uint16_t * quantizer_matrix[4];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
118 uint16_t (* chroma_quantizer[2])[64];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
119 uint16_t quantizer_prescale[4][32][64];
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
120
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
121 /* The width and height of the picture snapped to macroblock units */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
122 int width;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
123 int height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
124 int vertical_position_extension;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
125 int chroma_format;
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
126
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
127 /* picture header stuff */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
128
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
129 /* what type of picture this is (I, P, B, D) */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
130 int coding_type;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
131
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
132 /* picture coding extension stuff */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
133
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
134 /* quantization factor for intra dc coefficients */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
135 int intra_dc_precision;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
136 /* top/bottom/both fields */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
137 int picture_structure;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
138 /* bool to indicate all predictions are frame based */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
139 int frame_pred_frame_dct;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
140 /* bool to indicate whether intra blocks have motion vectors */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
141 /* (for concealment) */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
142 int concealment_motion_vectors;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
143 /* bool to use different vlc tables */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
144 int intra_vlc_format;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
145 /* used for DMV MC */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
146 int top_field_first;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
147
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
148 /* stuff derived from bitstream */
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
149
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
150 /* pointer to the zigzag scan we're supposed to be using */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
151 const uint8_t * scan;
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
152
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
153 int second_field;
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
154
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
155 int mpeg1;
12935
cda4ad0d3e70 forgotten libmpeg2 postprocessing
henry
parents: 12932
diff changeset
156
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
157 /* XXX: stuff due to xine shit */
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
158 int8_t q_scale_type;
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
159
13123
34df725814e8 postproc fix
henry
parents: 13112
diff changeset
160 int quantizer_scales[32];
12935
cda4ad0d3e70 forgotten libmpeg2 postprocessing
henry
parents: 12932
diff changeset
161 int quantizer_scale;
cda4ad0d3e70 forgotten libmpeg2 postprocessing
henry
parents: 12932
diff changeset
162 char* quant_store;
cda4ad0d3e70 forgotten libmpeg2 postprocessing
henry
parents: 12932
diff changeset
163 int quant_stride;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
164 };
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
165
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
166 typedef struct {
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
167 mpeg2_fbuf_t fbuf;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
168 } fbuf_alloc_t;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
169
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
170 struct mpeg2dec_s {
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
171 mpeg2_decoder_t decoder;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
172
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
173 mpeg2_info_t info;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
174
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
175 uint32_t shift;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
176 int is_display_initialized;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
177 mpeg2_state_t (* action) (struct mpeg2dec_s * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
178 mpeg2_state_t state;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
179 uint32_t ext_state;
79
b7b038ee3fde backward-frame rendering by slices
arpi_esp
parents: 49
diff changeset
180
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
181 /* allocated in init - gcc has problems allocating such big structures */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
182 uint8_t * chunk_buffer;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
183 /* pointer to start of the current chunk */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
184 uint8_t * chunk_start;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
185 /* pointer to current position in chunk_buffer */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
186 uint8_t * chunk_ptr;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
187 /* last start code ? */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
188 uint8_t code;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
189
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
190 /* picture tags */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
191 uint32_t tag_current, tag2_current, tag_previous, tag2_previous;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
192 int num_tags;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
193 int bytes_since_tag;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
194
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
195 int first;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
196 int alloc_index_user;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
197 int alloc_index;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
198 uint8_t first_decode_slice;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
199 uint8_t nb_decode_slices;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
200
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
201 unsigned int user_data_len;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
202
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
203 mpeg2_sequence_t new_sequence;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
204 mpeg2_sequence_t sequence;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
205 mpeg2_gop_t new_gop;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
206 mpeg2_gop_t gop;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
207 mpeg2_picture_t new_picture;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
208 mpeg2_picture_t pictures[4];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
209 mpeg2_picture_t * picture;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
210 /*const*/ mpeg2_fbuf_t * fbuf[3]; /* 0: current fbuf, 1-2: prediction fbufs */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
211
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
212 fbuf_alloc_t fbuf_alloc[3];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
213 int custom_fbuf;
79
b7b038ee3fde backward-frame rendering by slices
arpi_esp
parents: 49
diff changeset
214
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
215 uint8_t * yuv_buf[3][3];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
216 int yuv_index;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
217 mpeg2_convert_t * convert;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
218 void * convert_arg;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
219 unsigned int convert_id_size;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
220 int convert_stride;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
221 void (* convert_start) (void * id, const mpeg2_fbuf_t * fbuf,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
222 const mpeg2_picture_t * picture,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
223 const mpeg2_gop_t * gop);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
225 uint8_t * buf_start;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
226 uint8_t * buf_end;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
227
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
228 int16_t display_offset_x, display_offset_y;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
229
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
230 int copy_matrix;
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
231 int8_t scaled[4]; /* XXX: MOVED */
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
232 //int8_t q_scale_type, scaled[4];
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
233 uint8_t quantizer_matrix[4][64];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
234 uint8_t new_quantizer_matrix[4][64];
13112
3e4bea88c1c1 libmpeg2 B-frame fix
henry
parents: 12935
diff changeset
235
3e4bea88c1c1 libmpeg2 B-frame fix
henry
parents: 12935
diff changeset
236 unsigned char *pending_buffer;
3e4bea88c1c1 libmpeg2 B-frame fix
henry
parents: 12935
diff changeset
237 int pending_length;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
238 };
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
239
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
240 typedef struct {
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
241 #ifdef ARCH_PPC
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
242 uint8_t regv[12*16];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
243 #endif
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
244 int dummy;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
245 } cpu_state_t;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
246
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
247 /* cpu_accel.c */
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
248 uint32_t mpeg2_detect_accel (uint32_t accel);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
249
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
250 /* cpu_state.c */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
251 void mpeg2_cpu_state_init (uint32_t accel);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
252
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
253 /* decode.c */
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
254 mpeg2_state_t mpeg2_seek_header (mpeg2dec_t * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
255 mpeg2_state_t mpeg2_parse_header (mpeg2dec_t * mpeg2dec);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
256
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
257 /* header.c */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
258 void mpeg2_header_state_init (mpeg2dec_t * mpeg2dec);
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
259 void mpeg2_reset_info (mpeg2_info_t * info);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
260 int mpeg2_header_sequence (mpeg2dec_t * mpeg2dec);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
261 int mpeg2_header_gop (mpeg2dec_t * mpeg2dec);
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
262 mpeg2_state_t mpeg2_header_picture_start (mpeg2dec_t * mpeg2dec);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
263 int mpeg2_header_picture (mpeg2dec_t * mpeg2dec);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
264 int mpeg2_header_extension (mpeg2dec_t * mpeg2dec);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
265 int mpeg2_header_user_data (mpeg2dec_t * mpeg2dec);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
266 void mpeg2_header_sequence_finalize (mpeg2dec_t * mpeg2dec);
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
267 void mpeg2_header_gop_finalize (mpeg2dec_t * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
268 void mpeg2_header_picture_finalize (mpeg2dec_t * mpeg2dec, uint32_t accels);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
269 mpeg2_state_t mpeg2_header_slice_start (mpeg2dec_t * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
270 mpeg2_state_t mpeg2_header_end (mpeg2dec_t * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
271 void mpeg2_set_fbuf (mpeg2dec_t * mpeg2dec, int b_type);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
272
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
273 /* idct.c */
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
274 extern void mpeg2_idct_init (uint32_t accel);
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
275 extern uint8_t mpeg2_scan_norm[64];
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
276 extern uint8_t mpeg2_scan_alt[64];
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
277
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
278 /* idct_mmx.c */
26393
2506f1b0bdbe Backport SSE2-optimized IDCT routines from upstream libmpeg2.
diego
parents: 26284
diff changeset
279 void mpeg2_idct_copy_sse2 (int16_t * block, uint8_t * dest, int stride);
2506f1b0bdbe Backport SSE2-optimized IDCT routines from upstream libmpeg2.
diego
parents: 26284
diff changeset
280 void mpeg2_idct_add_sse2 (int last, int16_t * block,
2506f1b0bdbe Backport SSE2-optimized IDCT routines from upstream libmpeg2.
diego
parents: 26284
diff changeset
281 uint8_t * dest, int stride);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
282 void mpeg2_idct_copy_mmxext (int16_t * block, uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
283 void mpeg2_idct_add_mmxext (int last, int16_t * block,
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
284 uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
285 void mpeg2_idct_copy_mmx (int16_t * block, uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
286 void mpeg2_idct_add_mmx (int last, int16_t * block,
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
287 uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
288 void mpeg2_idct_mmx_init (void);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
289
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
290 /* idct_altivec.c */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
291 void mpeg2_idct_copy_altivec (int16_t * block, uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
292 void mpeg2_idct_add_altivec (int last, int16_t * block,
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
293 uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
294 void mpeg2_idct_altivec_init (void);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
295
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
296 /* idct_alpha.c */
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
297 void mpeg2_idct_copy_mvi (int16_t * block, uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
298 void mpeg2_idct_add_mvi (int last, int16_t * block,
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
299 uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
300 void mpeg2_idct_copy_alpha (int16_t * block, uint8_t * dest, int stride);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
301 void mpeg2_idct_add_alpha (int last, int16_t * block,
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
302 uint8_t * dest, int stride);
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
303 void mpeg2_idct_alpha_init (void);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
304
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
305 /* motion_comp.c */
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
306 void mpeg2_mc_init (uint32_t accel);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
307
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
308 typedef struct {
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
309 mpeg2_mc_fct * put [8];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
310 mpeg2_mc_fct * avg [8];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
311 } mpeg2_mc_t;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
312
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
313 #define MPEG2_MC_EXTERN(x) mpeg2_mc_t mpeg2_mc_##x = { \
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
314 {MC_put_o_16_##x, MC_put_x_16_##x, MC_put_y_16_##x, MC_put_xy_16_##x, \
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
315 MC_put_o_8_##x, MC_put_x_8_##x, MC_put_y_8_##x, MC_put_xy_8_##x}, \
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
316 {MC_avg_o_16_##x, MC_avg_x_16_##x, MC_avg_y_16_##x, MC_avg_xy_16_##x, \
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
317 MC_avg_o_8_##x, MC_avg_x_8_##x, MC_avg_y_8_##x, MC_avg_xy_8_##x} \
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
318 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
319
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
320 extern mpeg2_mc_t mpeg2_mc_c;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
321 extern mpeg2_mc_t mpeg2_mc_mmx;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
322 extern mpeg2_mc_t mpeg2_mc_mmxext;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
323 extern mpeg2_mc_t mpeg2_mc_3dnow;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
324 extern mpeg2_mc_t mpeg2_mc_altivec;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 7984
diff changeset
325 extern mpeg2_mc_t mpeg2_mc_alpha;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9855
diff changeset
326 extern mpeg2_mc_t mpeg2_mc_vis;
23236
f0ddd02aec27 iWMMXt-accelerated DCT and motion compensation for ARM processors
gpoirier
parents: 21526
diff changeset
327 extern mpeg2_mc_t mpeg2_mc_arm;
27572
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
328
da2271c341ee Update internal libmpeg2 copy to version 0.5.1.
diego
parents: 27571
diff changeset
329 #endif /* LIBMPEG2_MPEG2_INTERNAL_H */