FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
rv20enc.c
Go to the documentation of this file.
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
25
* RV20 encoder
26
*/
27
28
#include "
mpegvideo.h
"
29
#include "
h263.h
"
30
#include "
put_bits.h
"
31
32
void
ff_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
av_assert0
(s->
f_code
== 1);
44
av_assert0
(s->
unrestricted_mv
== 0);
45
av_assert0
(s->
alt_inter_vlc
== 0);
46
av_assert0
(s->
umvplus
== 0);
47
av_assert0
(s->
modified_quant
==1);
48
av_assert0
(s->
loop_filter
==1);
49
50
s->
h263_aic
= s->
pict_type
==
AV_PICTURE_TYPE_I
;
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
FF_MPV_GENERIC_CLASS
(rv20)
61
62
AVCodec
ff_rv20_encoder
= {
63
.
name
=
"rv20"
,
64
.long_name =
NULL_IF_CONFIG_SMALL
(
"RealVideo 2.0"
),
65
.type =
AVMEDIA_TYPE_VIDEO
,
66
.id =
AV_CODEC_ID_RV20
,
67
.priv_data_size =
sizeof
(
MpegEncContext
),
68
.
init
=
ff_MPV_encode_init
,
69
.encode2 =
ff_MPV_encode_picture
,
70
.
close
=
ff_MPV_encode_end
,
71
.pix_fmts = (
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_YUV420P
,
AV_PIX_FMT_NONE
},
72
.priv_class = &rv20_class,
73
};
Generated on Sun Mar 23 2014 23:50:02 for FFmpeg by
1.8.2