[cvs] / xvidcore / src / decoder.h Repository:
ViewVC logotype

Annotation of /xvidcore/src/decoder.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13.2.3 - (view) (download)

1 : edgomez 1.7 /*****************************************************************************
2 :     *
3 :     * XVID MPEG-4 VIDEO CODEC
4 : edgomez 1.13.2.3 * - Decoder related header -
5 : edgomez 1.7 *
6 : edgomez 1.13.2.3 * Copyright(C) 2002-2003 Peter Ross <pross@xvid.org>
7 : edgomez 1.13 *
8 :     * This program is free software ; you can redistribute it and/or modify
9 :     * it under the terms of the GNU General Public License as published by
10 :     * the Free Software Foundation ; either version 2 of the License, or
11 : edgomez 1.7 * (at your option) any later version.
12 :     *
13 :     * This program is distributed in the hope that it will be useful,
14 : edgomez 1.13 * but WITHOUT ANY WARRANTY ; without even the implied warranty of
15 : edgomez 1.7 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 :     * GNU General Public License for more details.
17 :     *
18 :     * You should have received a copy of the GNU General Public License
19 : edgomez 1.13 * along with this program ; if not, write to the Free Software
20 : edgomez 1.7 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 :     *
22 : edgomez 1.13.2.3 * $Id$
23 : edgomez 1.7 *
24 :     ****************************************************************************/
25 :    
26 : Isibaar 1.1 #ifndef _DECODER_H_
27 :     #define _DECODER_H_
28 :    
29 :     #include "xvid.h"
30 :     #include "portab.h"
31 :     #include "global.h"
32 :     #include "image/image.h"
33 :    
34 : edgomez 1.7 /*****************************************************************************
35 :     * Structures
36 :     ****************************************************************************/
37 : Isibaar 1.1
38 : edgomez 1.13 /* complexity estimation toggles */
39 :     typedef struct
40 :     {
41 :     int method;
42 :    
43 :     int opaque;
44 :     int transparent;
45 :     int intra_cae;
46 :     int inter_cae;
47 :     int no_update;
48 :     int upsampling;
49 :    
50 :     int intra_blocks;
51 :     int inter_blocks;
52 :     int inter4v_blocks;
53 :     int gmc_blocks;
54 :     int not_coded_blocks;
55 :    
56 :     int dct_coefs;
57 :     int dct_lines;
58 :     int vlc_symbols;
59 :     int vlc_bits;
60 :    
61 :     int apm;
62 :     int npm;
63 :     int interpolate_mc_q;
64 :     int forw_back_mc_q;
65 :     int halfpel2;
66 :     int halfpel4;
67 :    
68 :     int sadct;
69 :     int quarterpel;
70 :     } ESTIMATION;
71 :    
72 :    
73 : Isibaar 1.1 typedef struct
74 :     {
75 : edgomez 1.13.2.2 /* vol bitstream */
76 : edgomez 1.13
77 :     int time_inc_resolution;
78 :     int fixed_time_inc;
79 :     uint32_t time_inc_bits;
80 : Isibaar 1.1
81 :     uint32_t shape;
82 :     uint32_t quant_bits;
83 :     uint32_t quant_type;
84 : edgomez 1.13 int32_t quarterpel;
85 :     int complexity_estimation_disable;
86 :     ESTIMATION estimation;
87 : Isibaar 1.1
88 : edgomez 1.13 int interlacing;
89 : h 1.2 uint32_t top_field_first;
90 :     uint32_t alternate_vertical_scan;
91 :    
92 : edgomez 1.13 int aspect_ratio;
93 :     int par_width;
94 :     int par_height;
95 :    
96 :     int sprite_enable;
97 :     int sprite_warping_points;
98 :     int sprite_warping_accuracy;
99 :     int sprite_brightness_change;
100 :    
101 :     int newpred_enable;
102 :     int reduced_resolution_enable;
103 :    
104 : edgomez 1.13.2.2 /* image */
105 : Isibaar 1.1
106 : edgomez 1.13 int fixed_dimensions;
107 : Isibaar 1.1 uint32_t width;
108 :     uint32_t height;
109 :     uint32_t edged_width;
110 :     uint32_t edged_height;
111 : edgomez 1.6
112 : Isibaar 1.1 IMAGE cur;
113 : edgomez 1.13.2.2 IMAGE refn[2]; /* 0 -- last I or P VOP */
114 :     /* 1 -- first I or P */
115 : edgomez 1.13 IMAGE tmp; /* bframe interpolation, and post processing tmp buffer */
116 :     IMAGE qtmp; /* quarter pel tmp buffer */
117 : Isibaar 1.1
118 : edgomez 1.13.2.2 /* macroblock */
119 : Isibaar 1.1
120 :     uint32_t mb_width;
121 :     uint32_t mb_height;
122 : edgomez 1.6 MACROBLOCK *mbs;
123 : Isibaar 1.1
124 : edgomez 1.13.2.2 /*
125 :     * for B-frame & low_delay==0
126 :     * XXX: should move frame based stuff into a DECODER_FRAMEINFO struct
127 :     */
128 :     MACROBLOCK *last_mbs; /* last MB */
129 :     int last_coding_type; /* last coding type value */
130 :     int last_reduced_resolution; /* last reduced_resolution value */
131 :     int32_t frames; /* total frame number */
132 :     int32_t packed_mode; /* bframes packed bitstream? (1 = yes) */
133 : edgomez 1.6 int8_t scalability;
134 : edgomez 1.13.2.2 VECTOR p_fmv, p_bmv; /* pred forward & backward motion vector */
135 :     int64_t time; /* for record time */
136 : edgomez 1.6 int64_t time_base;
137 :     int64_t last_time_base;
138 :     int64_t last_non_b_time;
139 :     uint32_t time_pp;
140 :     uint32_t time_bp;
141 : edgomez 1.13.2.2 uint32_t low_delay; /* low_delay flage (1 means no B_VOP) */
142 :     uint32_t low_delay_default; /* default value for low_delay flag */
143 : albeu 1.10
144 : edgomez 1.13.2.2 /* for GMC: central place for all parameters */
145 : edgomez 1.13
146 :     IMAGE gmc; /* gmc tmp buffer, remove for blockbased compensation */
147 :     GMC_DATA gmc_data;
148 :    
149 : edgomez 1.13.2.2 xvid_image_t* out_frm; /* This is used for slice rendering */
150 : edgomez 1.6 }
151 :     DECODER;
152 : Isibaar 1.1
153 : edgomez 1.7 /*****************************************************************************
154 :     * Decoder prototypes
155 :     ****************************************************************************/
156 :    
157 : Isibaar 1.1 void init_decoder(uint32_t cpu_flags);
158 :    
159 : suxen_drol 1.13.2.1 int decoder_create(xvid_dec_create_t * param);
160 : Isibaar 1.1 int decoder_destroy(DECODER * dec);
161 : edgomez 1.6 int decoder_decode(DECODER * dec,
162 : suxen_drol 1.13.2.1 xvid_dec_frame_t * frame, xvid_dec_stats_t * stats);
163 : Isibaar 1.1
164 :    
165 : edgomez 1.7 #endif

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4