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