comparison mpegvideo.h @ 162:de80712db90b libavcodec

- Preliminary RTP friendly mode for H.263. - GOB headers for H.263 coding on RTP mode. - Improved GOB header detection for H.263 decoder.
author pulento
date Mon, 19 Nov 2001 02:13:14 +0000
parents f914f710b8d0
children 883f184537e6
comparison
equal deleted inserted replaced
161:7ce36cf13055 162:de80712db90b
129 INT64 wanted_bits; 129 INT64 wanted_bits;
130 INT64 total_bits; 130 INT64 total_bits;
131 131
132 /* H.263 specific */ 132 /* H.263 specific */
133 int gob_number; 133 int gob_number;
134 int gob_index;
134 int first_gob_line; 135 int first_gob_line;
135 136
136 /* H.263+ specific */ 137 /* H.263+ specific */
137 int umvplus; 138 int umvplus;
138 int umvplus_dec; 139 int umvplus_dec;
183 int mpeg2; 184 int mpeg2;
184 int full_pel[2]; 185 int full_pel[2];
185 int interlaced_dct; 186 int interlaced_dct;
186 int last_qscale; 187 int last_qscale;
187 int first_slice; 188 int first_slice;
188 189
190 /* RTP specific */
191 int rtp_mode;
192 int rtp_payload_size;
193 UINT8 *ptr_lastgob;
194 UINT8 *ptr_last_mb_line;
195 UINT32 mb_line_avgsize;
196
189 DCTELEM block[6][64] __align8; 197 DCTELEM block[6][64] __align8;
190 void (*dct_unquantize)(struct MpegEncContext *s, 198 void (*dct_unquantize)(struct MpegEncContext *s,
191 DCTELEM *block, int n, int qscale); 199 DCTELEM *block, int n, int qscale);
192 } MpegEncContext; 200 } MpegEncContext;
193 201
234 } RLTable; 242 } RLTable;
235 243
236 void init_rl(RLTable *rl); 244 void init_rl(RLTable *rl);
237 void init_vlc_rl(RLTable *rl); 245 void init_vlc_rl(RLTable *rl);
238 246
239 static inline int get_rl_index(const RLTable *rl, int last, int run, int level) 247 extern inline int get_rl_index(const RLTable *rl, int last, int run, int level)
240 { 248 {
241 int index; 249 int index;
242 index = rl->index_run[last][run]; 250 index = rl->index_run[last][run];
243 if (index >= rl->n) 251 if (index >= rl->n)
244 return rl->n; 252 return rl->n;
249 257
250 void h263_encode_mb(MpegEncContext *s, 258 void h263_encode_mb(MpegEncContext *s,
251 DCTELEM block[6][64], 259 DCTELEM block[6][64],
252 int motion_x, int motion_y); 260 int motion_x, int motion_y);
253 void h263_encode_picture_header(MpegEncContext *s, int picture_number); 261 void h263_encode_picture_header(MpegEncContext *s, int picture_number);
262 int h263_encode_gob_header(MpegEncContext * s, int mb_line);
254 void h263_dc_scale(MpegEncContext *s); 263 void h263_dc_scale(MpegEncContext *s);
255 INT16 *h263_pred_motion(MpegEncContext * s, int block, 264 INT16 *h263_pred_motion(MpegEncContext * s, int block,
256 int *px, int *py); 265 int *px, int *py);
257 void mpeg4_pred_ac(MpegEncContext * s, INT16 *block, int n, 266 void mpeg4_pred_ac(MpegEncContext * s, INT16 *block, int n,
258 int dir); 267 int dir);
259 void mpeg4_encode_picture_header(MpegEncContext *s, int picture_number); 268 void mpeg4_encode_picture_header(MpegEncContext *s, int picture_number);
260 void h263_encode_init_vlc(MpegEncContext *s); 269 void h263_encode_init_vlc(MpegEncContext *s);
261 270
262 void h263_decode_init_vlc(MpegEncContext *s); 271 void h263_decode_init_vlc(MpegEncContext *s);
263 int h263_decode_picture_header(MpegEncContext *s); 272 int h263_decode_picture_header(MpegEncContext *s);
273 int h263_decode_gob_header(MpegEncContext *s);
264 int mpeg4_decode_picture_header(MpegEncContext * s); 274 int mpeg4_decode_picture_header(MpegEncContext * s);
265 int intel_h263_decode_picture_header(MpegEncContext *s); 275 int intel_h263_decode_picture_header(MpegEncContext *s);
266 int h263_decode_mb(MpegEncContext *s, 276 int h263_decode_mb(MpegEncContext *s,
267 DCTELEM block[6][64]); 277 DCTELEM block[6][64]);
268 int h263_get_picture_format(int width, int height); 278 int h263_get_picture_format(int width, int height);