Mercurial > libavcodec.hg
comparison rv10.c @ 10017:988e20e4da2f libavcodec
Split RV20 encoder into its own file.
author | diego |
---|---|
date | Mon, 03 Aug 2009 23:07:08 +0000 |
parents | fef7b43f0d22 |
children | 46f8d58fbdfb |
comparison
equal
deleted
inserted
replaced
10016:0649c00003a1 | 10017:988e20e4da2f |
---|---|
228 } | 228 } |
229 return -code; | 229 return -code; |
230 } | 230 } |
231 | 231 |
232 | 232 |
233 #if CONFIG_RV10_ENCODER || CONFIG_RV20_ENCODER | 233 #if CONFIG_RV10_ENCODER |
234 /* write RV 1.0 compatible frame header */ | 234 /* write RV 1.0 compatible frame header */ |
235 void rv10_encode_picture_header(MpegEncContext *s, int picture_number) | 235 void rv10_encode_picture_header(MpegEncContext *s, int picture_number) |
236 { | 236 { |
237 int full_frame= 0; | 237 int full_frame= 0; |
238 | 238 |
257 put_bits(&s->pb, 12, s->mb_width * s->mb_height); | 257 put_bits(&s->pb, 12, s->mb_width * s->mb_height); |
258 } | 258 } |
259 | 259 |
260 put_bits(&s->pb, 3, 0); /* ignored */ | 260 put_bits(&s->pb, 3, 0); /* ignored */ |
261 } | 261 } |
262 | 262 #endif /* CONFIG_RV10_ENCODER */ |
263 void rv20_encode_picture_header(MpegEncContext *s, int picture_number){ | |
264 put_bits(&s->pb, 2, s->pict_type); //I 0 vs. 1 ? | |
265 put_bits(&s->pb, 1, 0); /* unknown bit */ | |
266 put_bits(&s->pb, 5, s->qscale); | |
267 | |
268 put_sbits(&s->pb, 8, picture_number); //FIXME wrong, but correct is not known | |
269 s->mb_x= s->mb_y= 0; | |
270 ff_h263_encode_mba(s); | |
271 | |
272 put_bits(&s->pb, 1, s->no_rounding); | |
273 | |
274 assert(s->f_code == 1); | |
275 assert(s->unrestricted_mv == 1); | |
276 assert(s->alt_inter_vlc == 0); | |
277 assert(s->umvplus == 0); | |
278 assert(s->modified_quant==1); | |
279 assert(s->loop_filter==1); | |
280 | |
281 s->h263_aic= s->pict_type == FF_I_TYPE; | |
282 if(s->h263_aic){ | |
283 s->y_dc_scale_table= | |
284 s->c_dc_scale_table= ff_aic_dc_scale_table; | |
285 }else{ | |
286 s->y_dc_scale_table= | |
287 s->c_dc_scale_table= ff_mpeg1_dc_scale_table; | |
288 } | |
289 } | |
290 | |
291 #endif /* CONFIG_RV10_ENCODER || CONFIG_RV20_ENCODER */ | |
292 | 263 |
293 /* read RV 1.0 compatible frame header */ | 264 /* read RV 1.0 compatible frame header */ |
294 static int rv10_decode_picture_header(MpegEncContext *s) | 265 static int rv10_decode_picture_header(MpegEncContext *s) |
295 { | 266 { |
296 int mb_count, pb_frame, marker, unk, mb_xy; | 267 int mb_count, pb_frame, marker, unk, mb_xy; |
790 MPV_encode_picture, | 761 MPV_encode_picture, |
791 MPV_encode_end, | 762 MPV_encode_end, |
792 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE}, | 763 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE}, |
793 .long_name= NULL_IF_CONFIG_SMALL("RealVideo 1.0"), | 764 .long_name= NULL_IF_CONFIG_SMALL("RealVideo 1.0"), |
794 }; | 765 }; |
795 | |
796 AVCodec rv20_encoder = { | |
797 "rv20", | |
798 CODEC_TYPE_VIDEO, | |
799 CODEC_ID_RV20, | |
800 sizeof(MpegEncContext), | |
801 MPV_encode_init, | |
802 MPV_encode_picture, | |
803 MPV_encode_end, | |
804 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE}, | |
805 .long_name= NULL_IF_CONFIG_SMALL("RealVideo 2.0"), | |
806 }; |