Mercurial > libavcodec.hg
annotate rv20enc.c @ 11519:c091ab3b4135 libavcodec
Split DCT-II and DCT-III in different functions, they do not share any code.
author | vitor |
---|---|
date | Sun, 21 Mar 2010 11:35:05 +0000 |
parents | 86bf7e0db6ea |
children | 8a4984c5cacc |
rev | line source |
---|---|
10017 | 1 /* |
2 * RV20 encoder | |
3 * Copyright (c) 2000,2001 Fabrice Bellard | |
4 * Copyright (c) 2002-2004 Michael Niedermayer | |
5 * | |
6 * This file is part of FFmpeg. | |
7 * | |
8 * FFmpeg is free software; you can redistribute it and/or | |
9 * modify it under the terms of the GNU Lesser General Public | |
10 * License as published by the Free Software Foundation; either | |
11 * version 2.1 of the License, or (at your option) any later version. | |
12 * | |
13 * FFmpeg is distributed in the hope that it will be useful, | |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 * Lesser General Public License for more details. | |
17 * | |
18 * You should have received a copy of the GNU Lesser General Public | |
19 * License along with FFmpeg; if not, write to the Free Software | |
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
21 */ | |
22 | |
23 /** | |
24 * @file libavcodec/rv20enc.c | |
25 * RV20 encoder | |
26 */ | |
27 | |
28 #include "mpegvideo.h" | |
11066
86bf7e0db6ea
Add include to fix implicit declaration of ff_mpeg4_init_direct_mv and
reimar
parents:
10146
diff
changeset
|
29 #include "h263.h" |
10017 | 30 #include "put_bits.h" |
31 | |
32 void rv20_encode_picture_header(MpegEncContext *s, int picture_number){ | |
33 put_bits(&s->pb, 2, s->pict_type); //I 0 vs. 1 ? | |
34 put_bits(&s->pb, 1, 0); /* unknown bit */ | |
35 put_bits(&s->pb, 5, s->qscale); | |
36 | |
37 put_sbits(&s->pb, 8, picture_number); //FIXME wrong, but correct is not known | |
38 s->mb_x= s->mb_y= 0; | |
39 ff_h263_encode_mba(s); | |
40 | |
41 put_bits(&s->pb, 1, s->no_rounding); | |
42 | |
43 assert(s->f_code == 1); | |
44 assert(s->unrestricted_mv == 1); | |
45 assert(s->alt_inter_vlc == 0); | |
46 assert(s->umvplus == 0); | |
47 assert(s->modified_quant==1); | |
48 assert(s->loop_filter==1); | |
49 | |
50 s->h263_aic= s->pict_type == FF_I_TYPE; | |
51 if(s->h263_aic){ | |
52 s->y_dc_scale_table= | |
53 s->c_dc_scale_table= ff_aic_dc_scale_table; | |
54 }else{ | |
55 s->y_dc_scale_table= | |
56 s->c_dc_scale_table= ff_mpeg1_dc_scale_table; | |
57 } | |
58 } | |
59 | |
60 AVCodec rv20_encoder = { | |
61 "rv20", | |
62 CODEC_TYPE_VIDEO, | |
63 CODEC_ID_RV20, | |
64 sizeof(MpegEncContext), | |
65 MPV_encode_init, | |
66 MPV_encode_picture, | |
67 MPV_encode_end, | |
10146
38cfe222e1a4
Mark all pix_fmts and supported_framerates compound literals as const.
reimar
parents:
10017
diff
changeset
|
68 .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE}, |
10017 | 69 .long_name= NULL_IF_CONFIG_SMALL("RealVideo 2.0"), |
70 }; |