Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
rv10enc.c
Go to the documentation of this file.
1
/*
2
* RV10 encoder
3
* Copyright (c) 2000,2001 Fabrice Bellard
4
* Copyright (c) 2002-2004 Michael Niedermayer
5
*
6
* This file is part of Libav.
7
*
8
* Libav 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
* Libav 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 Libav; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
28
#include "
mpegvideo.h
"
29
#include "
put_bits.h
"
30
31
void
rv10_encode_picture_header
(
MpegEncContext
*s,
int
picture_number)
32
{
33
int
full_frame= 0;
34
35
avpriv_align_put_bits
(&s->
pb
);
36
37
put_bits
(&s->
pb
, 1, 1);
/* marker */
38
39
put_bits
(&s->
pb
, 1, (s->
pict_type
==
AV_PICTURE_TYPE_P
));
40
41
put_bits
(&s->
pb
, 1, 0);
/* not PB frame */
42
43
put_bits
(&s->
pb
, 5, s->
qscale
);
44
45
if
(s->
pict_type
==
AV_PICTURE_TYPE_I
) {
46
/* specific MPEG like DC coding not used */
47
}
48
/* if multiple packets per frame are sent, the position at which
49
to display the macroblocks is coded here */
50
if
(!full_frame){
51
put_bits
(&s->
pb
, 6, 0);
/* mb_x */
52
put_bits
(&s->
pb
, 6, 0);
/* mb_y */
53
put_bits
(&s->
pb
, 12, s->
mb_width
* s->
mb_height
);
54
}
55
56
put_bits
(&s->
pb
, 3, 0);
/* ignored */
57
}
58
59
AVCodec
ff_rv10_encoder
= {
60
.
name
=
"rv10"
,
61
.type =
AVMEDIA_TYPE_VIDEO
,
62
.id =
CODEC_ID_RV10
,
63
.priv_data_size =
sizeof
(
MpegEncContext
),
64
.
init
=
MPV_encode_init
,
65
.encode =
MPV_encode_picture
,
66
.
close
=
MPV_encode_end
,
67
.pix_fmts= (
const
enum
PixelFormat
[]){
PIX_FMT_YUV420P
,
PIX_FMT_NONE
},
68
.long_name=
NULL_IF_CONFIG_SMALL
(
"RealVideo 1.0"
),
69
};