FFmpeg
2.1.1
Main Page
Related Pages
Modules
Namespaces
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 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
* RV10 encoder
26
*/
27
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
};
s
const char * s
Definition:
avisynth_c.h:668
FF_MPV_GENERIC_CLASS
#define FF_MPV_GENERIC_CLASS(name)
Definition:
mpegvideo.h:777
put_bits
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
Definition:
j2kenc.c:160
init
static av_cold int init(AVCodecContext *avctx)
Definition:
avrndec.c:35
ff_MPV_encode_end
int ff_MPV_encode_end(AVCodecContext *avctx)
Definition:
mpegvideo_enc.c:882
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:47
mpegvideo.h
mpegvideo header.
AV_PIX_FMT_NONE
Pixel format.
Definition:
avcodec.h:4533
AVCodec
AVCodec.
Definition:
avcodec.h:2922
MpegEncContext::qscale
int qscale
QP.
Definition:
mpegvideo.h:373
AV_PICTURE_TYPE_P
Predicted.
Definition:
avcodec.h:2305
AVCodec::name
const char * name
Name of the codec implementation.
Definition:
avcodec.h:2929
ff_rv10_encoder
AVCodec ff_rv10_encoder
Definition:
rv10enc.c:61
ff_rv10_encode_picture_header
void ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number)
Definition:
rv10enc.c:31
MpegEncContext::mb_height
int mb_height
number of MBs horizontally & vertically
Definition:
mpegvideo.h:281
ff_MPV_encode_init
int ff_MPV_encode_init(AVCodecContext *avctx)
Definition:
mpegvideo_enc.c:236
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:151
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:66
AV_CODEC_ID_RV10
Definition:
avcodec.h:111
MpegEncContext::mb_width
int mb_width
Definition:
mpegvideo.h:281
AV_PICTURE_TYPE_I
Intra.
Definition:
avcodec.h:2304
AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition:
avcodec.h:4534
close
static void close(AVCodecParserContext *s)
Definition:
h264_parser.c:538
MpegEncContext::pict_type
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
Definition:
mpegvideo.h:381
MpegEncContext
MpegEncContext.
Definition:
mpegvideo.h:245
MpegEncContext::pb
PutBitContext pb
bit output
Definition:
mpegvideo.h:318
ff_MPV_encode_picture
int ff_MPV_encode_picture(AVCodecContext *avctx, AVPacket *pkt, AVFrame *frame, int *got_packet)
Definition:
mpegvideo_enc.c:1434
AVMEDIA_TYPE_VIDEO
Definition:
avcodec.h:2231
put_bits.h
bitstream writer API
Generated on Wed Nov 20 2013 08:50:00 for FFmpeg by
1.8.5