FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
mpeg4videoenc.h
Go to the documentation of this file.
1
/*
2
* MPEG-4 encoder internal header.
3
* Copyright (c) 2000,2001 Fabrice Bellard
4
* Copyright (c) 2002-2010 Michael Niedermayer <michaelni@gmx.at>
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
#ifndef AVCODEC_MPEG4VIDEOENC_H
24
#define AVCODEC_MPEG4VIDEOENC_H
25
26
#include <stdint.h>
27
28
#include "
put_bits.h
"
29
30
enum
{
31
MAX_PB2_INTRA_SIZE
= 1
/* ac_pred */
+ 5
/* max cbpy len */
+
32
2
/* dquant */
+ 1
/* interlaced dct */
33
+ 4 * (8
/* longest luma dct_dc_size */
+
34
9
/* longest dc diff */
+ 1
/* marker */
)
35
+ 2 * (9 + 9 + 1),
36
MAX_PB2_INTER_SIZE
= 5
/* max cbpy len */
+
37
2
/* dquant */
+ 1
/* interlaced_dct */
+ 1,
38
MAX_PB2_MB_SIZE
= (
FFMAX
(
MAX_PB2_INTER_SIZE
,
MAX_PB2_INTRA_SIZE
) + 7) / 8,
39
MAX_AC_TEX_MB_SIZE
= 64 * 6 * 30
/* longest escape code */
/ 8,
40
};
41
42
typedef
struct
MPVEncContext
MPVEncContext
;
43
44
void
ff_set_mpeg4_time
(
MPVEncContext
*
s
);
45
46
void
ff_mpeg4_encode_video_packet_header
(
MPVEncContext
*
s
);
47
void
ff_mpeg4_stuffing
(
PutBitContext
*pbc);
48
void
ff_mpeg4_init_partitions
(
MPVEncContext
*
s
);
49
void
ff_mpeg4_merge_partitions
(
MPVEncContext
*
s
);
50
void
ff_clean_mpeg4_qscales
(
MPVEncContext
*
s
);
51
52
#endif
MAX_PB2_MB_SIZE
@ MAX_PB2_MB_SIZE
Definition:
mpeg4videoenc.h:38
MPVEncContext
Definition:
mpegvideoenc.h:45
FFMAX
#define FFMAX(a, b)
Definition:
macros.h:47
MAX_PB2_INTER_SIZE
@ MAX_PB2_INTER_SIZE
Definition:
mpeg4videoenc.h:36
MAX_PB2_INTRA_SIZE
@ MAX_PB2_INTRA_SIZE
Definition:
mpeg4videoenc.h:31
ff_mpeg4_stuffing
void ff_mpeg4_stuffing(PutBitContext *pbc)
add MPEG-4 stuffing bits (01...1)
Definition:
mpeg4videoenc.c:834
ff_mpeg4_encode_video_packet_header
void ff_mpeg4_encode_video_packet_header(MPVEncContext *s)
Definition:
mpeg4videoenc.c:1325
s
#define s(width, name)
Definition:
cbs_vp9.c:198
PutBitContext
Definition:
put_bits.h:50
ff_set_mpeg4_time
void ff_set_mpeg4_time(MPVEncContext *s)
Definition:
mpeg4videoenc.c:842
MAX_AC_TEX_MB_SIZE
@ MAX_AC_TEX_MB_SIZE
Definition:
mpeg4videoenc.h:39
ff_mpeg4_init_partitions
void ff_mpeg4_init_partitions(MPVEncContext *s)
Definition:
mpeg4videoenc.c:1286
ff_clean_mpeg4_qscales
void ff_clean_mpeg4_qscales(MPVEncContext *s)
modify mb_type & qscale so that encoding is actually possible in MPEG-4
Definition:
mpeg4videoenc.c:269
ff_mpeg4_merge_partitions
void ff_mpeg4_merge_partitions(MPVEncContext *s)
Definition:
mpeg4videoenc.c:1299
put_bits.h
Generated on Wed Jun 25 2025 19:22:16 for FFmpeg by
1.8.17