Libav
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
ff_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
FF_MPV_GENERIC_CLASS
(rv10)
60
61
AVCodec
ff_rv10_encoder
= {
62
.
name
=
"rv10"
,
63
.long_name =
NULL_IF_CONFIG_SMALL
(
"RealVideo 1.0"
),
64
.type =
AVMEDIA_TYPE_VIDEO
,
65
.id =
AV_CODEC_ID_RV10
,
66
.priv_data_size =
sizeof
(
MpegEncContext
),
67
.
init
=
ff_mpv_encode_init
,
68
.encode2 =
ff_mpv_encode_picture
,
69
.
close
=
ff_mpv_encode_end
,
70
.pix_fmts = (
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_YUV420P
,
AV_PIX_FMT_NONE
},
71
.priv_class = &rv10_class,
72
};
AV_PIX_FMT_NONE
Definition:
pixfmt.h:64
FF_MPV_GENERIC_CLASS
#define FF_MPV_GENERIC_CLASS(name)
Definition:
mpegvideo.h:679
avpriv_align_put_bits
void avpriv_align_put_bits(PutBitContext *s)
Pad the bitstream with zeros up to the next byte boundary.
Definition:
bitstream.c:45
mpegvideo.h
mpegvideo header.
AVCodec
AVCodec.
Definition:
avcodec.h:2796
MpegEncContext::qscale
int qscale
QP.
Definition:
mpegvideo.h:332
ff_rv10_encoder
AVCodec ff_rv10_encoder
Definition:
rv10enc.c:61
MpegEncContext::mb_height
int mb_height
number of MBs horizontally & vertically
Definition:
mpegvideo.h:255
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition:
internal.h:150
AVCodec::name
const char * name
Name of the codec implementation.
Definition:
avcodec.h:2803
put_bits
static void put_bits(PutBitContext *s, int n, unsigned int value)
Write up to 31 bits into a bitstream.
Definition:
put_bits.h:134
AV_PICTURE_TYPE_I
Intra.
Definition:
avutil.h:253
AV_CODEC_ID_RV10
Definition:
avcodec.h:116
MpegEncContext::mb_width
int mb_width
Definition:
mpegvideo.h:255
close
static void close(AVCodecParserContext *s)
Definition:
h264_parser.c:490
ff_mpv_encode_init
int ff_mpv_encode_init(AVCodecContext *avctx)
Definition:
mpegvideo_enc.c:237
MpegEncContext::pict_type
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
Definition:
mpegvideo.h:339
MpegEncContext
MpegEncContext.
Definition:
mpegvideo.h:204
MpegEncContext::pb
PutBitContext pb
bit output
Definition:
mpegvideo.h:277
AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition:
pixfmt.h:65
ff_mpv_encode_end
int ff_mpv_encode_end(AVCodecContext *avctx)
Definition:
mpegvideo_enc.c:845
init
static av_cold int init(AVCodecParserContext *s)
Definition:
h264_parser.c:499
ff_rv10_encode_picture_header
void ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number)
Definition:
rv10enc.c:31
AVMEDIA_TYPE_VIDEO
Definition:
avutil.h:187
ff_mpv_encode_picture
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
Definition:
mpegvideo_enc.c:1533
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:63
AV_PICTURE_TYPE_P
Predicted.
Definition:
avutil.h:254
put_bits.h
bitstream writer API
Generated on Fri Oct 24 2014 21:40:24 for Libav by
1.8.8