Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
FFmpeg
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
libremedia
Tethys
FFmpeg
Commits
f5bccd85
Commit
f5bccd85
authored
17 years ago
by
Diego Biurrun
Browse files
Options
Downloads
Patches
Plain Diff
spelling/wording/grammar
Originally committed as revision 8640 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
414425e0
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
libavcodec/avcodec.h
+608
-605
608 additions, 605 deletions
libavcodec/avcodec.h
with
608 additions
and
605 deletions
libavcodec/avcodec.h
+
608
−
605
View file @
f5bccd85
...
...
@@ -23,7 +23,7 @@
/**
* @file avcodec.h
* external
api
header
.
* external
API
header
*/
...
...
@@ -49,14 +49,14 @@ extern "C" {
/**
*
*
i
f you add a codec
id
to this list add it so that
* 1. no value of a existing codec
id
changes (that would break ABI)
* 2.
closest
to similar codecs
*
I
f you add a codec
ID
to this list
,
add it so that
* 1. no value of a existing codec
ID
changes (that would break ABI)
,
* 2.
it is as close as possible
to similar codecs
.
*/
enum
CodecID
{
CODEC_ID_NONE
,
CODEC_ID_MPEG1VIDEO
,
CODEC_ID_MPEG2VIDEO
,
/* prefered ID for MPEG
Video 1 or 2
decoding */
CODEC_ID_MPEG2VIDEO
,
/* prefer
r
ed ID for MPEG
-1/2 video
decoding */
CODEC_ID_MPEG2VIDEO_XVMC
,
CODEC_ID_H261
,
CODEC_ID_H263
,
...
...
@@ -161,7 +161,7 @@ enum CodecID {
CODEC_ID_THP
,
CODEC_ID_SGI
,
/* various
pcm
"codecs" */
/* various
PCM
"codecs" */
CODEC_ID_PCM_S16LE
=
0x10000
,
CODEC_ID_PCM_S16BE
,
CODEC_ID_PCM_U16LE
,
...
...
@@ -180,7 +180,7 @@ enum CodecID {
CODEC_ID_PCM_U24BE
,
CODEC_ID_PCM_S24DAUD
,
/* various
adpcm
codecs */
/* various
ADPCM
codecs */
CODEC_ID_ADPCM_IMA_QT
=
0x11000
,
CODEC_ID_ADPCM_IMA_WAV
,
CODEC_ID_ADPCM_IMA_DK3
,
...
...
@@ -215,7 +215,7 @@ enum CodecID {
CODEC_ID_SOL_DPCM
,
CODEC_ID_MP2
=
0x15000
,
CODEC_ID_MP3
,
/* prefered ID for MPEG
A
udio layer 1, 2 or3
decoding
*/
CODEC_ID_MP3
,
/* prefer
r
ed ID for
decoding
MPEG
a
udio layer 1, 2 or
3 */
CODEC_ID_AAC
,
#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
CODEC_ID_MPEG4AAC
,
...
...
@@ -237,7 +237,7 @@ enum CodecID {
CODEC_ID_SHORTEN
,
CODEC_ID_ALAC
,
CODEC_ID_WESTWOOD_SND1
,
CODEC_ID_GSM
,
/*
A
s in Berlin toast format */
CODEC_ID_GSM
,
/*
a
s in Berlin toast format */
CODEC_ID_QDM2
,
CODEC_ID_COOK
,
CODEC_ID_TRUESPEECH
,
...
...
@@ -249,18 +249,18 @@ enum CodecID {
CODEC_ID_IMC
,
CODEC_ID_MUSEPACK7
,
CODEC_ID_MLP
,
CODEC_ID_GSM_MS
,
/*
A
s found in WAV */
CODEC_ID_GSM_MS
,
/*
a
s found in WAV */
/* subtitle codecs */
CODEC_ID_DVD_SUBTITLE
=
0x17000
,
CODEC_ID_DVB_SUBTITLE
,
CODEC_ID_MPEG2TS
=
0x20000
,
/* _FAKE_ codec to indicate a raw MPEG2
transport
stream (only used by libavformat) */
CODEC_ID_MPEG2TS
=
0x20000
,
/* _FAKE_ codec to indicate a raw MPEG
-
2
TS
*
stream (only used by libavformat) */
};
#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
/* CODEC_ID_MP3LAME is
a
bsolete */
/* CODEC_ID_MP3LAME is
o
bsolete */
#define CODEC_ID_MP3LAME CODEC_ID_MP3
#define CODEC_ID_MPEG4AAC CODEC_ID_AAC
#endif
...
...
@@ -274,8 +274,8 @@ enum CodecType {
CODEC_TYPE_NB
};
/*
c
urrently unused, may be used if 24/32 bits samples ever supported */
/* all in native
endian */
/*
C
urrently unused, may be used if 24/32 bits samples
are
ever supported
.
*/
/* all in native
-
endian
format
*/
enum
SampleFormat
{
SAMPLE_FMT_NONE
=
-
1
,
SAMPLE_FMT_U8
,
///< unsigned 8 bits
...
...
@@ -290,16 +290,16 @@ enum SampleFormat {
/**
* Required number of additionally allocated bytes at the end of the input bitstream for decoding.
*
t
his is mainly needed because some optimized bitstream readers read
* 32 or 64 bit at once and could read over the end<br>
* Note
, i
f the first 23 bits of the additional bytes are not 0 then damaged
* MPEG bitstreams could cause overread and segfault
*
T
his is mainly needed because some optimized bitstream readers read
* 32 or 64 bit at once and could read over the end
.
<br>
* Note
: I
f the first 23 bits of the additional bytes are not 0
,
then damaged
* MPEG bitstreams could cause overread and segfault
.
*/
#define FF_INPUT_BUFFER_PADDING_SIZE 8
/**
* minimum encoding buffer size
.
*
u
sed to avoid some checks during header writing
* minimum encoding buffer size
*
U
sed to avoid some checks during header writing
.
*/
#define FF_MIN_BUFFER_SIZE 16384
...
...
@@ -317,7 +317,8 @@ enum Motion_Est_ID {
};
enum
AVDiscard
{
//we leave some space between them for extensions (drop some keyframes for intra only or drop just some bidir frames)
/* We leave some space between them for extensions (drop some
* keyframes for intra-only or drop just some bidir frames). */
AVDISCARD_NONE
=-
16
,
///< discard nothing
AVDISCARD_DEFAULT
=
0
,
///< discard useless packets like 0 size packets in avi
AVDISCARD_NONREF
=
8
,
///< discard all non reference
...
...
@@ -329,73 +330,74 @@ enum AVDiscard{
typedef
struct
RcOverride
{
int
start_frame
;
int
end_frame
;
int
qscale
;
//
i
f this is 0 then quality_factor will be used instead
int
qscale
;
//
I
f this is 0 then quality_factor will be used instead
.
float
quality_factor
;
}
RcOverride
;
#define FF_MAX_B_FRAMES 16
/* encoding support
t
hese flags can be passed in AVCodecContext.flags before initi
ng
Note:
n
ot everything is supported yet.
T
hese flags can be passed in AVCodecContext.flags before initi
alization.
Note:
N
ot everything is supported yet.
*/
#define CODEC_FLAG_QSCALE 0x0002 ///< use fixed qscale
#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / Advanced prediction for H263
#define CODEC_FLAG_QPEL 0x0010 ///< use qpel MC
#define CODEC_FLAG_GMC 0x0020 ///< use GMC
#define CODEC_FLAG_MV0 0x0040 ///< always try a MB with MV=<0,0>
#define CODEC_FLAG_PART 0x0080 ///< use data partitioning
/* parent program guarantees that the input for b-frame containing streams is not written to
for at least s->max_b_frames+1 frames, if this is not set than the input will be copied */
#define CODEC_FLAG_QSCALE 0x0002 ///< Use fixed qscale.
#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263.
#define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC.
#define CODEC_FLAG_GMC 0x0020 ///< Use GMC.
#define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>.
#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning.
/* The parent program guarantees that the input for B-frames containing
* streams is not written to for at least s->max_b_frames+1 frames, if
* this is not set the input will be copied. */
#define CODEC_FLAG_INPUT_PRESERVED 0x0100
#define CODEC_FLAG_PASS1 0x0200 ///<
u
se internal 2pass ratecontrol in first
pass mode
#define CODEC_FLAG_PASS2 0x0400 ///<
u
se internal 2pass ratecontrol in second pass mode
#define CODEC_FLAG_EXTERN_HUFF 0x1000 ///<
u
se external
h
uffman table (for
mjpeg)
#define CODEC_FLAG_GRAY 0x2000 ///<
o
nly decode/encode grayscale
#define CODEC_FLAG_EMU_EDGE 0x4000///<
d
on't draw edges
#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding
#define CODEC_FLAG_TRUNCATED 0x00010000
/**
i
nput bitstream might be truncated at a random location instead
of only at frame boundaries */
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///<
n
ormalize adaptive quantization
#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///<
u
se interlaced
dct
#define CODEC_FLAG_LOW_DELAY 0x00080000 ///<
f
orce low delay
#define CODEC_FLAG_ALT_SCAN 0x00100000 ///<
u
se alternate scan
#define CODEC_FLAG_TRELLIS_QUANT 0x00200000 ///<
u
se trellis quantization
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///<
p
lace global headers in extradata instead of every keyframe
#define CODEC_FLAG_BITEXACT 0x00800000 ///<
u
se only bitexact stuff (except (
i)dct)
#define CODEC_FLAG_PASS1 0x0200 ///<
U
se internal 2pass ratecontrol in first pass mode
.
#define CODEC_FLAG_PASS2 0x0400 ///<
U
se internal 2pass ratecontrol in second pass mode
.
#define CODEC_FLAG_EXTERN_HUFF 0x1000 ///<
U
se external
H
uffman table (for
MJPEG).
#define CODEC_FLAG_GRAY 0x2000 ///<
O
nly decode/encode grayscale
.
#define CODEC_FLAG_EMU_EDGE 0x4000///<
D
on't draw edges
.
#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding
.
#define CODEC_FLAG_TRUNCATED 0x00010000
/**
I
nput bitstream might be truncated at a random location instead
of only at frame boundaries
.
*/
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///<
N
ormalize adaptive quantization
.
#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///<
U
se interlaced
DCT.
#define CODEC_FLAG_LOW_DELAY 0x00080000 ///<
F
orce low delay
.
#define CODEC_FLAG_ALT_SCAN 0x00100000 ///<
U
se alternate scan
.
#define CODEC_FLAG_TRELLIS_QUANT 0x00200000 ///<
U
se trellis quantization
.
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///<
P
lace global headers in extradata instead of every keyframe
.
#define CODEC_FLAG_BITEXACT 0x00800000 ///<
U
se only bitexact stuff (except (
I)DCT).
/* Fx : Flag for h263+ extra options */
#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
#define CODEC_FLAG_H263P_AIC 0x01000000 ///< H263
A
dvanced intra coding / MPEG4 AC prediction (remove this)
#define CODEC_FLAG_H263P_AIC 0x01000000 ///< H
.
263
a
dvanced intra coding / MPEG
-
4 AC prediction (remove this)
#endif
#define CODEC_FLAG_AC_PRED 0x01000000 ///< H263
A
dvanced intra coding / MPEG4 AC prediction
#define CODEC_FLAG_H263P_UMV 0x02000000 ///<
U
nlimited motion vector
#define CODEC_FLAG_CBP_RD 0x04000000 ///<
u
se rate distortion optimization for cbp
#define CODEC_FLAG_QP_RD 0x08000000 ///<
u
se rate distortion optimization for qp selectioon
#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H263
A
lternative inter
vlc
#define CODEC_FLAG_AC_PRED 0x01000000 ///< H
.
263
a
dvanced intra coding / MPEG
-
4 AC prediction
#define CODEC_FLAG_H263P_UMV 0x02000000 ///<
u
nlimited motion vector
#define CODEC_FLAG_CBP_RD 0x04000000 ///<
U
se rate distortion optimization for cbp
.
#define CODEC_FLAG_QP_RD 0x08000000 ///<
U
se rate distortion optimization for qp selectioon
.
#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H
.
263
a
lternative inter
VLC
#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC
#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter
#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000
#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation
#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///<
w
ill reserve space for SVCD scan offset user data
#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///<
W
ill reserve space for SVCD scan offset user data
.
#define CODEC_FLAG_CLOSED_GOP ((int)0x80000000)
#define CODEC_FLAG2_FAST 0x00000001 ///<
a
llow non spec compliant speedup tricks
#define CODEC_FLAG2_STRICT_GOP 0x00000002 ///<
s
trictly enforce GOP size
#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///<
s
kip bitstream encoding
#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///<
p
lace global headers at every keyframe instead of in extradata
#define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow
b
-frames to be used as references
#define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for
b
-frames
#define CODEC_FLAG2_FAST 0x00000001 ///<
A
llow non spec compliant speedup tricks
.
#define CODEC_FLAG2_STRICT_GOP 0x00000002 ///<
S
trictly enforce GOP size
.
#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///<
S
kip bitstream encoding
.
#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///<
P
lace global headers at every keyframe instead of in extradata
.
#define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow
B
-frames to be used as references
.
#define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for
B
-frames
#define CODEC_FLAG2_MIXED_REFS 0x00000040 ///< H.264 one reference per partition, as opposed to one reference per macroblock
#define CODEC_FLAG2_8X8DCT 0x00000080 ///< H.264 high profile 8x8 transform
#define CODEC_FLAG2_FASTPSKIP 0x00000100 ///< H.264 fast pskip
#define CODEC_FLAG2_AUD 0x00000200 ///< H.264 access unit delimiters
#define CODEC_FLAG2_BRDO 0x00000400 ///<
b
-frame rate-distortion optimization
#define CODEC_FLAG2_INTRA_VLC 0x00000800 ///<
u
se MPEG-2 intra VLC table
#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///<
o
nly do ME/MC (I frames -> ref, P frame -> ME+MC)
#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format
#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skiping
#define CODEC_FLAG2_CHUNKS 0x00008000 ///<
i
nput bitstream might be truncated at a packet boundaries instead of only at frame boundaries
#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///<
u
se MPEG-2 non
linear quantizer
#define CODEC_FLAG2_BRDO 0x00000400 ///<
B
-frame rate-distortion optimization
#define CODEC_FLAG2_INTRA_VLC 0x00000800 ///<
U
se MPEG-2 intra VLC table
.
#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///<
O
nly do ME/MC (I frames -> ref, P frame -> ME+MC)
.
#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format
.
#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skip
p
ing
#define CODEC_FLAG2_CHUNKS 0x00008000 ///<
I
nput bitstream might be truncated at a packet boundaries instead of only at frame boundaries
.
#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///<
U
se MPEG-2 nonlinear quantizer
.
/* Unsupported options :
* Syntax Arithmetic coding (SAC)
...
...
@@ -404,21 +406,20 @@ typedef struct RcOverride{
/* /Fx */
/* codec capabilities */
#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///<
d
ecoder can use draw_horiz_band callback
#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///<
D
ecoder can use draw_horiz_band callback
.
/**
* Codec uses get_buffer() for allocating buffers.
* direct rendering method 1
*/
#define CODEC_CAP_DR1 0x0002
/* if 'parse_only' field is true, then avcodec_parse_frame() can be
used */
/* If 'parse_only' field is true, then avcodec_parse_frame() can be used. */
#define CODEC_CAP_PARSE_ONLY 0x0004
#define CODEC_CAP_TRUNCATED 0x0008
/*
c
odec can export data for HW decoding (XvMC) */
/*
C
odec can export data for HW decoding (XvMC)
.
*/
#define CODEC_CAP_HWACCEL 0x0010
/**
*
c
odec has a non
zero delay and needs to be fe
ede
d with NULL at the end to get the delayed data.
*
i
f this is not set, the codec is guaranteed to never be fe
ede
d with NULL data
*
C
odec has a nonzero delay and needs to be fed with NULL at the end to get the delayed data.
*
I
f this is not set, the codec is guaranteed to never be fed with NULL data
.
*/
#define CODEC_CAP_DELAY 0x0020
/**
...
...
@@ -427,10 +428,10 @@ typedef struct RcOverride{
*/
#define CODEC_CAP_SMALL_LAST_FRAME 0x0040
//
t
he following defines may change, don't expect compatibility if you use them
//
T
he following defines may change, don't expect compatibility if you use them
.
#define MB_TYPE_INTRA4x4 0x0001
#define MB_TYPE_INTRA16x16 0x0002 //FIXME
h
264
specific
#define MB_TYPE_INTRA_PCM 0x0004 //FIXME
h
264
specific
#define MB_TYPE_INTRA16x16 0x0002 //FIXME
H.
264
-
specific
#define MB_TYPE_INTRA_PCM 0x0004 //FIXME
H.
264
-
specific
#define MB_TYPE_16x16 0x0008
#define MB_TYPE_16x8 0x0010
#define MB_TYPE_8x16 0x0020
...
...
@@ -453,28 +454,29 @@ typedef struct RcOverride{
/**
* Pan Scan area.
* this specifies the area which should be displayed. Note there may be multiple such areas for one frame
* This specifies the area which should be displayed.
* Note there may be multiple such areas for one frame.
*/
typedef
struct
AVPanScan
{
/**
* id
.
* - encoding:
s
et by user.
* - decoding:
s
et by lavc
* id
* - encoding:
S
et by user.
* - decoding:
S
et by l
ib
avc
odec.
*/
int
id
;
/**
* width and height in 1/16 pel
* - encoding:
s
et by user.
* - decoding:
s
et by lavc
* - encoding:
S
et by user.
* - decoding:
S
et by l
ib
avc
odec.
*/
int
width
;
int
height
;
/**
* position of the top left corner in 1/16 pel for up to 3 fields/frames
.
* - encoding:
s
et by user.
* - decoding:
s
et by lavc
* position of the top left corner in 1/16 pel for up to 3 fields/frames
* - encoding:
S
et by user.
* - decoding:
S
et by l
ib
avc
odec.
*/
int16_t
position
[
3
][
2
];
}
AVPanScan
;
...
...
@@ -482,99 +484,99 @@ typedef struct AVPanScan{
#define FF_COMMON_FRAME \
/**\
* pointer to the picture planes.\
*
t
his might be different from the first allocated byte\
*
T
his might be different from the first allocated byte\
* - encoding: \
* - decoding: \
*/
\
uint8_t *data[4];\
int linesize[4];\
/**\
* pointer to the first allocated byte of the picture.
c
an be used in get_buffer/release_buffer\
*
t
his isn't used by l
av
c unless the default get/release_buffer() is used\
* pointer to the first allocated byte of the picture.
C
an be used in get_buffer/release_buffer
.
\
*
T
his isn't used by l
ibavcode
c unless the default get/release_buffer() is used
.
\
* - encoding: \
* - decoding: \
*/
\
uint8_t *base[4];\
/**\
* 1 -> keyframe, 0-> not\
* - encoding:
s
et by lavc\
* - decoding:
s
et by lavc\
* - encoding:
S
et by l
ib
avc
odec.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int key_frame;\
\
/**\
*
p
icture type of the frame, see ?_TYPE below.\
* - encoding:
s
et by lavc for coded_picture (and set by user for input)\
* - decoding:
s
et by lavc\
*
P
icture type of the frame, see ?_TYPE below.\
* - encoding:
S
et by l
ib
avc
odec.
for coded_picture (and set by user for input)
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int pict_type;\
\
/**\
* presentation timestamp in time_base units (time when frame should be shown to user)\
*
i
f AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed\
* - encoding: MUST be set by user\
* - decoding:
s
et by lavc\
*
I
f AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed
.
\
* - encoding: MUST be set by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int64_t pts;\
\
/**\
* picture number in bitstream order
.
\
* picture number in bitstream order\
* - encoding: set by\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int coded_picture_number;\
/**\
* picture number in display order
.
\
* picture number in display order\
* - encoding: set by\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int display_picture_number;\
\
/**\
* quality (between 1 (good) and FF_LAMBDA_MAX (bad)) \
* - encoding:
s
et by lavc for coded_picture (and set by user for input)\
* - decoding:
s
et by lavc\
* - encoding:
S
et by l
ib
avc
odec.
for coded_picture (and set by user for input)
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int quality; \
\
/**\
* buffer age (1->was last buffer and dint change, 2->..., ...).\
*
s
et to INT_MAX if the buffer has not been used yet
\
*
S
et to INT_MAX if the buffer has not been used yet
.
\
* - encoding: unused\
* - decoding: MUST be set by get_buffer()\
* - decoding: MUST be set by get_buffer()
.
\
*/
\
int age;\
\
/**\
* is this picture used as reference\
* - encoding: unused\
* - decoding:
s
et by lavc (before get_buffer() call))\
* - decoding:
S
et by l
ib
avc
odec.
(before get_buffer() call))
.
\
*/
\
int reference;\
\
/**\
* QP table\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int8_t *qscale_table;\
/**\
* QP store stride\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int qstride;\
\
/**\
* mbskip_table[mb]>=1 if MB didnt change\
* mbskip_table[mb]>=1 if MB didn
'
t change\
* stride= mb_width = (width+15)>>4\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
uint8_t *mbskip_table;\
\
/**\
*
M
otion vector table
.
\
*
m
otion vector table\
* @code\
* example:\
* int mv_sample_log2= 4 - motion_subsample_log2;\
...
...
@@ -582,16 +584,16 @@ typedef struct AVPanScan{
* int mv_stride= (mb_width << mv_sample_log2) + 1;\
* motion_val[direction][x + y*mv_stride][0->mv_x, 1->mv_y];\
* @endcode\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int16_t (*motion_val[2])[2];\
\
/**\
*
M
acroblock type table\
*
m
acroblock type table\
* mb_type_base + mb_width + 2\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
uint32_t *mb_type;\
\
...
...
@@ -599,37 +601,37 @@ typedef struct AVPanScan{
* log2 of the size of the block which a single vector in motion_val represents: \
* (4->16x16, 3->8x8, 2-> 4x4, 1-> 2x2)\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
uint8_t motion_subsample_log2;\
\
/**\
* for some private data of the user\
* - encoding: unused\
* - decoding:
s
et by user\
* - decoding:
S
et by user
.
\
*/
\
void *opaque;\
\
/**\
* error\
* - encoding:
s
et by lavc if flags&CODEC_FLAG_PSNR\
* - encoding:
S
et by l
ib
avc
odec.
if flags&CODEC_FLAG_PSNR
.
\
* - decoding: unused\
*/
\
uint64_t error[4];\
\
/**\
* type of the buffer (to keep track of who has to dealloc data[*])\
* - encoding:
s
et by the one who allocs it\
* - decoding:
s
et by the one who allocs it\
* Note:
u
ser allocated (direct rendering) & internal buffers can
not coexist currently\
* type of the buffer (to keep track of who has to dealloc
ate
data[*])\
* - encoding:
S
et by the one who alloc
ate
s it
.
\
* - decoding:
S
et by the one who alloc
ate
s it
.
\
* Note:
U
ser allocated (direct rendering) & internal buffers cannot coexist currently
.
\
*/
\
int type;\
\
/**\
*
w
hen decoding, this signal how much the picture must be delayed.\
*
W
hen decoding, this signal
s
how much the picture must be delayed.\
* extra_delay = repeat_pict / (2*fps)\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int repeat_pict;\
\
...
...
@@ -640,50 +642,50 @@ typedef struct AVPanScan{
\
/**\
* The content of the picture is interlaced.\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc (default 0)\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
(default 0)\
*/
\
int interlaced_frame;\
\
/**\
*
i
f the content is interlaced, is top field displayed first.\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc\
*
I
f the content is interlaced, is top field displayed first.\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int top_field_first;\
\
/**\
* Pan scan.\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
AVPanScan *pan_scan;\
\
/**\
*
t
ell user application that palette has changed from previous frame.\
*
T
ell user application that palette has changed from previous frame.\
* - encoding: ??? (no palette-enabled encoder yet)\
* - decoding:
s
et by lavc (default 0)\
* - decoding:
S
et by l
ib
avc
odec.
(default 0)
.
\
*/
\
int palette_has_changed;\
\
/**\
*
C
odec suggestion on buffer type if != 0\
*
c
odec suggestion on buffer type if != 0\
* - encoding: unused\
* - decoding:
s
et by lavc (before get_buffer() call))\
* - decoding:
S
et by l
ib
avc
odec.
(before get_buffer() call))
.
\
*/
\
int buffer_hints;\
\
/**\
* DCT coeffi
t
ients\
* DCT coeffi
c
ients\
* - encoding: unused\
* - decoding:
s
et by lavc\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
short *dct_coeff;\
\
/**\
*
M
otion referece frame index\
* - encoding:
s
et by user\
* - decoding:
s
et by lavc\
*
m
otion referece frame index\
* - encoding:
S
et by user
.
\
* - decoding:
S
et by l
ib
avc
odec.
\
*/
\
int8_t *ref_index[2];
...
...
@@ -692,9 +694,9 @@ typedef struct AVPanScan{
#define FF_QSCALE_TYPE_H264 2
#define FF_BUFFER_TYPE_INTERNAL 1
#define FF_BUFFER_TYPE_USER 2 ///<
D
irect rendering buffers (image is (de)allocated by user)
#define FF_BUFFER_TYPE_SHARED 4 ///<
b
uffer from somewhere else
,
don't dealloc image (data/base), all other tables are not shared
#define FF_BUFFER_TYPE_COPY 8 ///<
j
ust a (modified) copy of some other buffer, don't dealloc anything
#define FF_BUFFER_TYPE_USER 2 ///<
d
irect rendering buffers (image is (de)allocated by user)
#define FF_BUFFER_TYPE_SHARED 4 ///<
B
uffer from somewhere else
;
don't dealloc
ate
image (data/base), all other tables are not shared
.
#define FF_BUFFER_TYPE_COPY 8 ///<
J
ust a (modified) copy of some other buffer, don't dealloc
ate
anything
.
#define FF_I_TYPE 1 // Intra
...
...
@@ -704,10 +706,10 @@ typedef struct AVPanScan{
#define FF_SI_TYPE 5
#define FF_SP_TYPE 6
#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore)
#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer
#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content
#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update)
#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore)
.
#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer
.
#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content
.
#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update)
.
/**
* Audio Video Frame.
...
...
@@ -719,48 +721,48 @@ typedef struct AVFrame {
#define DEFAULT_FRAME_RATE_BASE 1001000
/**
* main external
api
structure
.
* main external
API
structure
*/
typedef
struct
AVCodecContext
{
/**
*
I
nfo on struct for av_log
*
i
nfo
rmation
on struct for av_log
* - set by avcodec_alloc_context
*/
AVClass
*
av_class
;
/**
* the average bitrate
.
* - encoding:
s
et by user
.
unused for constant quantizer encoding
* - decoding:
s
et by l
av
c. 0 or some bitrate if this info is available in the stream
* the average bitrate
* - encoding:
S
et by user
;
unused for constant quantizer encoding
.
* - decoding:
S
et by l
ibavcode
c. 0 or some bitrate if this info is available in the stream
.
*/
int
bit_rate
;
/**
* number of bits the bitstream is allowed to diverge from the reference.
* the reference can be CBR (for CBR pass1) or VBR (for pass2)
* - encoding:
s
et by user
.
unused for constant quantizer encoding
* - encoding:
S
et by user
;
unused for constant quantizer encoding
.
* - decoding: unused
*/
int
bit_rate_tolerance
;
/**
* CODEC_FLAG_*.
* - encoding:
s
et by user.
* - decoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding:
S
et by user.
*/
int
flags
;
/**
*
s
ome codecs need
s
addition
n
al format info. It is stored here
*
i
f any muxer uses this then ALL demuxers/parsers AND encoders for the
specific codec MUST set it correctly
*
too
otherwise stream copy breaks
*
i
n general use of this field by muxers is not recommanded
* - encoding:
s
et by l
av
c.
* - decoding:
s
et by l
av
c. (FIXME
i
s this
ok
?)
*
S
ome codecs need additional format info. It is stored here
.
*
I
f any muxer uses this then ALL demuxers/parsers AND encoders for the
*
specific codec MUST set it correctly
otherwise stream copy breaks
.
*
I
n general use of this field by muxers is not recommanded
.
* - encoding:
S
et by l
ibavcode
c.
* - decoding:
S
et by l
ibavcode
c. (FIXME
: I
s this
OK
?)
*/
int
sub_id
;
/**
*
m
otion estimation algorithm used for video coding.
*
M
otion estimation algorithm used for video coding.
* 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex),
* 8 (umh), 9 (iter) [7, 8 are x264 specific, 9 is snow specific]
* - encoding: MUST be set by user.
...
...
@@ -769,26 +771,26 @@ typedef struct AVCodecContext {
int
me_method
;
/**
* some codecs need / can use extra
-
data like
h
uffman tables.
* mjpeg:
h
uffman tables
* some codecs need / can use extradata like
H
uffman tables.
* mjpeg:
H
uffman tables
* rv10: additional flags
* mpeg4: global headers (they can be in the bitstream or here)
*
t
he allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger
* th
e
n extradata_size to avoid prolems if its read with the bitstream reader
*
t
he bytewise contents of extradata must not depend on the architecture or
cpu
endianness
* - encoding:
s
et/allocated/freed by l
av
c.
* - decoding:
s
et/allocated/freed by user.
*
T
he allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger
* th
a
n extradata_size to avoid prolems if it
i
s read with the bitstream reader
.
*
T
he bytewise contents of extradata must not depend on the architecture or
CPU
endianness
.
* - encoding:
S
et/allocated/freed by l
ibavcode
c.
* - decoding:
S
et/allocated/freed by user.
*/
uint8_t
*
extradata
;
int
extradata_size
;
/**
*
t
his is the fundamental unit of time (in seconds) in terms
* of which frame timestamps are represented.
f
or fixed-fps content,
*
T
his is the fundamental unit of time (in seconds) in terms
* of which frame timestamps are represented.
F
or fixed-fps content,
* timebase should be 1/framerate and timestamp increments should be
* identically 1.
* - encoding: MUST be set by user
* - decoding:
s
et by l
av
c.
* - encoding: MUST be set by user
.
* - decoding:
S
et by l
ibavcode
c.
*/
AVRational
time_base
;
...
...
@@ -796,43 +798,43 @@ typedef struct AVCodecContext {
/**
* picture width / height.
* - encoding: MUST be set by user.
* - decoding:
s
et by l
av
c.
* Note
, f
or compatibility its possible to set this instead of
* coded_width/height before decoding
* - decoding:
S
et by l
ibavcode
c.
* Note
: F
or compatibility it
i
s possible to set this instead of
* coded_width/height before decoding
.
*/
int
width
,
height
;
#define FF_ASPECT_EXTENDED 15
/**
* the number of pictures in a group of pitures, or 0 for intra_only
.
* - encoding:
s
et by user.
* the number of pictures in a group of pi
c
tures, or 0 for intra_only
* - encoding:
S
et by user.
* - decoding: unused
*/
int
gop_size
;
/**
*
p
ixel format, see PIX_FMT_xxx.
* - encoding:
s
et by user.
* - decoding:
s
et by l
av
c.
*
P
ixel format, see PIX_FMT_xxx.
* - encoding:
S
et by user.
* - decoding:
S
et by l
ibavcode
c.
*/
enum
PixelFormat
pix_fmt
;
/**
* Frame rate emulation. If not zero lower layer (i.e. format handler)
* Frame rate emulation. If not zero
, the
lower layer (i.e. format handler)
* has to read frames at native frame rate.
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
rate_emu
;
/**
*
i
f non NULL, 'draw_horiz_band' is called by the libavcodec
* decoder to draw a
n
horizontal band. It improve cache usage. Not
*
I
f non NULL, 'draw_horiz_band' is called by the libavcodec
* decoder to draw a horizontal band. It improve
s
cache usage. Not
* all codecs can do that. You must check the codec capabilities
* before
* before
hand.
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
* @param height the height of the slice
* @param y the y position of the slice
* @param type 1->top field, 2->bottom field, 3->frame
...
...
@@ -843,28 +845,28 @@ typedef struct AVCodecContext {
int
y
,
int
type
,
int
height
);
/* audio only */
int
sample_rate
;
///< samples per sec
int
sample_rate
;
///< samples per sec
ond
int
channels
;
/**
* audio sample format
.
* - encoding:
s
et by user.
* - decoding:
s
et by l
av
c.
* audio sample format
* - encoding:
S
et by user.
* - decoding:
S
et by l
ibavcode
c.
*/
enum
SampleFormat
sample_fmt
;
///< sample format, currenly unused
enum
SampleFormat
sample_fmt
;
///< sample format, curren
t
ly unused
/*
t
he following data should not be initialized */
/*
T
he following data should not be initialized
.
*/
/**
*
s
amples per packet
.
initialized when calling 'init'
*
S
amples per packet
,
initialized when calling 'init'
.
*/
int
frame_size
;
int
frame_number
;
///< audio or video frame number
int
real_pict_num
;
///<
r
eturns the real picture number of previous encoded frame
int
real_pict_num
;
///<
R
eturns the real picture number of previous encoded frame
.
/**
*
n
umber of frames the decoded output will be delayed relative to
*
N
umber of frames the decoded output will be delayed relative to
* the encoded input.
* - encoding:
s
et by l
av
c.
* - encoding:
S
et by l
ibavcode
c.
* - decoding: unused
*/
int
delay
;
...
...
@@ -874,37 +876,37 @@ typedef struct AVCodecContext {
float
qblur
;
///< amount of qscale smoothing over time (0.0-1.0)
/**
* minimum quantizer
.
* - encoding:
s
et by user.
* minimum quantizer
* - encoding:
S
et by user.
* - decoding: unused
*/
int
qmin
;
/**
* maximum quantizer
.
* - encoding:
s
et by user.
* maximum quantizer
* - encoding:
S
et by user.
* - decoding: unused
*/
int
qmax
;
/**
* maximum quantizer difference between frames
.
* - encoding:
s
et by user.
* maximum quantizer difference between frames
* - encoding:
S
et by user.
* - decoding: unused
*/
int
max_qdiff
;
/**
* maximum number of
b
frames between non
b
frames
.
*
n
ote:
t
he output will be delayed by max_b_frames+1 relative to the input
* - encoding:
s
et by user.
* maximum number of
B-
frames between non
-B-
frames
*
N
ote:
T
he output will be delayed by max_b_frames+1 relative to the input
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
max_b_frames
;
/**
* qscale factor between
ip
and
b
frames
.
* - encoding:
s
et by user.
* qscale factor between
IP
and
B-
frames
* - encoding:
S
et by user.
* - decoding: unused
*/
float
b_quant_factor
;
...
...
@@ -916,9 +918,9 @@ typedef struct AVCodecContext {
int
b_frame_strategy
;
/**
* hurry up amount
.
* hurry up amount
* - encoding: unused
* - decoding:
s
et by user. 1->
s
kip
b
frames, 2->
s
kip
idct
/dequant too, 5->
s
kip everything except header
* - decoding:
S
et by user. 1->
S
kip
B-
frames, 2->
S
kip
IDCT
/dequant too, 5->
S
kip everything except header
* @deprecated Deprecated in favor of skip_idct and skip_frame.
*/
int
hurry_up
;
...
...
@@ -933,19 +935,19 @@ typedef struct AVCodecContext {
#endif
int
rtp_payload_size
;
/* The size of the RTP payload: the coder will */
/* do it
'
s best to deliver a chunk with size */
/* do its best to deliver a chunk with size
*/
/* below rtp_payload_size, the chunk will start */
/* with a start code on some codecs like H.263
*/
/* with a start code on some codecs like H.263
.
*/
/* This doesn't take account of any particular */
/* headers inside the transmited RTP payload
*/
/* headers inside the transmit
t
ed RTP payload
.
*/
/* The RTP callback: This function is called */
/* every time the encoder has a packet to send */
/*
D
epends on the encoder if the data starts
*/
/* with a Start Code (it should) H.263 does. */
/* mb_nb contains the number of macroblocks */
/* encoded in the RTP payload */
/* The RTP callback: This function is called
*/
/* every time the encoder has a packet to send
.
*/
/*
It d
epends on the encoder if the data starts */
/* with a Start Code (it should)
.
H.263 does. */
/* mb_nb contains the number of macroblocks
*/
/* encoded in the RTP payload
.
*/
void
(
*
rtp_callback
)(
struct
AVCodecContext
*
avctx
,
void
*
data
,
int
size
,
int
mb_nb
);
/* statistics, used for 2-pass encoding */
...
...
@@ -959,16 +961,16 @@ typedef struct AVCodecContext {
int
misc_bits
;
/**
* number of bits used for the previously encoded frame
.
* - encoding:
s
et by lavc
* number of bits used for the previously encoded frame
* - encoding:
S
et by l
ib
avc
odec.
* - decoding: unused
*/
int
frame_bits
;
/**
*
p
rivate data of the user, can be used to carry app specific stuff.
* - encoding:
s
et by user
* - decoding:
s
et by user
*
P
rivate data of the user, can be used to carry app specific stuff.
* - encoding:
S
et by user
.
* - decoding:
S
et by user
.
*/
void
*
opaque
;
...
...
@@ -978,23 +980,23 @@ typedef struct AVCodecContext {
/**
* fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
*
t
his is used to workaround some encoder bugs
*
a
demuxer should set this to what is stored in the field used to identify the codec
*
i
f there are mutiple such fields in a container then the demuxer should choose the one
* which maximizes the information about the used codec
*
i
f the codec tag field in a container is larger then 32bit then the dem
x
uer should
* remap the longer
id
to 32bit with a table or other structure
a
lternatively a new
*
T
his is used to work
around some encoder bugs
.
*
A
demuxer should set this to what is stored in the field used to identify the codec
.
*
I
f there are mu
l
tiple such fields in a container then the demuxer should choose the one
* which maximizes the information about the used codec
.
*
I
f the codec tag field in a container is larger then 32
bit
s
then the demu
x
er should
* remap the longer
ID
to 32
bit
s
with a table or other structure
. A
lternatively a new
* extra_codec_tag + size could be added but for this a clear advantage must be demonstrated
* first
* - encoding:
s
et by user, if not then the default based on codec_id will be used
* - decoding:
s
et by user, will be converted to upper
case by lavc during init
* first
.
* - encoding:
S
et by user, if not then the default based on codec_id will be used
.
* - decoding:
S
et by user, will be converted to uppercase by l
ib
avc
odec
during init
.
*/
unsigned
int
codec_tag
;
/**
*
w
orkaround bugs in encoders which sometimes cannot be detected automatically.
* - encoding:
s
et by user
* - decoding:
s
et by user
*
W
ork
around bugs in encoders which sometimes cannot be detected automatically.
* - encoding:
S
et by user
* - decoding:
S
et by user
*/
int
workaround_bugs
;
#define FF_BUG_AUTODETECT 1 ///< autodetection
...
...
@@ -1003,7 +1005,7 @@ typedef struct AVCodecContext {
#define FF_BUG_UMP4 8
#define FF_BUG_NO_PADDING 16
#define FF_BUG_AMV 32
#define FF_BUG_AC_VLC 0 ///<
w
ill be removed, libavcodec can now handle these non
compliant files by default
#define FF_BUG_AC_VLC 0 ///<
W
ill be removed, libavcodec can now handle these non
-
compliant files by default
.
#define FF_BUG_QPEL_CHROMA 64
#define FF_BUG_STD_QPEL 128
#define FF_BUG_QPEL_CHROMA2 256
...
...
@@ -1011,49 +1013,49 @@ typedef struct AVCodecContext {
#define FF_BUG_EDGE 1024
#define FF_BUG_HPEL_CHROMA 2048
#define FF_BUG_DC_CLIP 4096
#define FF_BUG_MS 8192 ///<
w
orkaround various bugs in
m
icrosofts broken decoders
//#define FF_BUG_FAKE_SCALABILITY 16 //
a
utodetection should work 100%
#define FF_BUG_MS 8192 ///<
W
ork
around various bugs in
M
icrosoft
'
s broken decoders
.
//#define FF_BUG_FAKE_SCALABILITY 16 //
A
utodetection should work 100%
.
/**
* luma single coeff elimination threshold
.
* - encoding:
s
et by user
* luma single coeff
icient
elimination threshold
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
luma_elim_threshold
;
/**
* chroma single coeff elimination threshold
.
* - encoding:
s
et by user
* chroma single coeff elimination threshold
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
chroma_elim_threshold
;
/**
* strictly follow the std (MPEG4, ...).
* - encoding:
s
et by user
* strictly follow the st
andar
d (MPEG4, ...).
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
strict_std_compliance
;
#define FF_COMPLIANCE_VERY_STRICT 2 ///<
s
trictly conform to a older more strict version of the spec or reference software
#define FF_COMPLIANCE_STRICT 1 ///<
s
trictly conform to all the things in the spec no matter what consequences
#define FF_COMPLIANCE_VERY_STRICT 2 ///<
S
trictly conform to a older more strict version of the spec or reference software
.
#define FF_COMPLIANCE_STRICT 1 ///<
S
trictly conform to all the things in the spec no matter what consequences
.
#define FF_COMPLIANCE_NORMAL 0
#define FF_COMPLIANCE_INOFFICIAL -1 ///<
a
llow inofficial extensions
#define FF_COMPLIANCE_EXPERIMENTAL -2 ///<
a
llow non
standarized experimental things
#define FF_COMPLIANCE_INOFFICIAL -1 ///<
A
llow inofficial extensions
.
#define FF_COMPLIANCE_EXPERIMENTAL -2 ///<
A
llow nonstandar
d
ized experimental things
.
/**
* qscale offset between
ip
and
b
frames
.
*
i
f > 0 then the last
p
frame quantizer will be used (q= lastp_q*factor+offset)
*
i
f < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* - encoding:
s
et by user.
* qscale offset between
IP
and
B-
frames
*
I
f > 0 then the last
P-
frame quantizer will be used (q= lastp_q*factor+offset)
.
*
I
f < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
.
* - encoding:
S
et by user.
* - decoding: unused
*/
float
b_quant_offset
;
/**
*
e
rror resilience higher values will detect more errors but may
missdetect
* some more or less valid parts as errors.
*
E
rror resilience
;
higher values will detect more errors but may
*
misdetect
some more or less valid parts as errors.
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
error_resilience
;
#define FF_ER_CAREFUL 1
...
...
@@ -1062,67 +1064,67 @@ typedef struct AVCodecContext {
#define FF_ER_VERY_AGGRESSIVE 4
/**
*
c
alled at the beginning of each frame to get a buffer for it.
*
i
f pic.reference is set then the frame will be read later by lavc
*
C
alled at the beginning of each frame to get a buffer for it.
*
I
f pic.reference is set then the frame will be read later by l
ib
avc
odec.
* avcodec_align_dimensions() should be used to find the required width and
* height, as they normally need to be rounded up to the next multiple of 16
* height, as they normally need to be rounded up to the next multiple of 16
.
* - encoding: unused
* - decoding:
s
et by lavc, user can override
* - decoding:
S
et by l
ib
avc
odec.
, user can override
.
*/
int
(
*
get_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
*
c
alled to release buffers which where allocated with get_buffer.
*
a
released buffer can be reused in get_buffer()
* pic.data[*] must be set to NULL
*
C
alled to release buffers which where allocated with get_buffer.
*
A
released buffer can be reused in get_buffer()
.
* pic.data[*] must be set to NULL
.
* - encoding: unused
* - decoding:
s
et by lavc, user can override
* - decoding:
S
et by l
ib
avc
odec.
, user can override
.
*/
void
(
*
release_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
*
i
f 1 the stream has a 1 frame delay during decoding.
* - encoding:
s
et by lavc
* - decoding:
s
et by lavc
*
I
f 1 the stream has a 1 frame delay during decoding.
* - encoding:
S
et by l
ib
avc
odec.
* - decoding:
S
et by l
ib
avc
odec.
*/
int
has_b_frames
;
/**
* number of bytes per packet if constant and known or 0
*
u
sed by some WAV based audio codecs
*
U
sed by some WAV based audio codecs
.
*/
int
block_align
;
int
parse_only
;
/* - decoding only:
i
f true, only parsing is done
int
parse_only
;
/* - decoding only:
I
f true, only parsing is done
(function avcodec_parse_frame()). The frame
data is returned. Only MPEG codecs support this now. */
/**
* 0-> h263 quant 1-> mpeg quant
.
* - encoding:
s
et by user.
* 0-> h263 quant 1-> mpeg quant
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mpeg_quant
;
/**
* pass1 encoding statistics output buffer
.
* - encoding:
s
et by lavc
* pass1 encoding statistics output buffer
* - encoding:
S
et by l
ib
avc
odec.
* - decoding: unused
*/
char
*
stats_out
;
/**
* pass2 encoding statistics input buffer
.
*
c
oncatenated stuff from stats_out of pass1 should be placed here
* - encoding:
a
llocated/set/freed by user
* pass2 encoding statistics input buffer
*
C
oncatenated stuff from stats_out of pass1 should be placed here
.
* - encoding:
A
llocated/set/freed by user
.
* - decoding: unused
*/
char
*
stats_in
;
/**
* ratecontrol qmin qmax limiting method
.
* 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax
* - encoding:
s
et by user.
* ratecontrol qmin qmax limiting method
* 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax
.
* - encoding:
S
et by user.
* - decoding: unused
*/
float
rc_qsquish
;
...
...
@@ -1131,68 +1133,68 @@ typedef struct AVCodecContext {
int
rc_qmod_freq
;
/**
* ratecontrol override, see RcOverride
.
* - encoding:
a
llocated/set/freed by user.
* ratecontrol override, see RcOverride
* - encoding:
A
llocated/set/freed by user.
* - decoding: unused
*/
RcOverride
*
rc_override
;
int
rc_override_count
;
/**
* rate control equation
.
* - encoding:
s
et by user
* rate control equation
* - encoding:
S
et by user
* - decoding: unused
*/
char
*
rc_eq
;
/**
* maximum bitrate
.
* - encoding:
s
et by user.
* maximum bitrate
* - encoding:
S
et by user.
* - decoding: unused
*/
int
rc_max_rate
;
/**
* minimum bitrate
.
* - encoding:
s
et by user.
* minimum bitrate
* - encoding:
S
et by user.
* - decoding: unused
*/
int
rc_min_rate
;
/**
* decoder bitstream buffer size
.
* - encoding:
s
et by user.
* decoder bitstream buffer size
* - encoding:
S
et by user.
* - decoding: unused
*/
int
rc_buffer_size
;
float
rc_buffer_aggressivity
;
/**
* qscale factor between
p
and
i
frames
.
*
i
f > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
*
i
f < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* - encoding:
s
et by user.
* qscale factor between
P
and
I-
frames
*
I
f > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
.
*
I
f < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
.
* - encoding:
S
et by user.
* - decoding: unused
*/
float
i_quant_factor
;
/**
* qscale offset between
p
and
i
frames
.
* - encoding:
s
et by user.
* qscale offset between
P
and
I-
frames
* - encoding:
S
et by user.
* - decoding: unused
*/
float
i_quant_offset
;
/**
* initial complexity for pass1 ratecontrol
.
* - encoding:
s
et by user.
* initial complexity for pass1 ratecontrol
* - encoding:
S
et by user.
* - decoding: unused
*/
float
rc_initial_cplx
;
/**
*
dct
algorithm, see FF_DCT_* below
.
* - encoding:
s
et by user
*
DCT
algorithm, see FF_DCT_* below
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
dct_algo
;
...
...
@@ -1205,36 +1207,36 @@ typedef struct AVCodecContext {
#define FF_DCT_FAAN 6
/**
* luminance masking (0-> disabled)
.
* - encoding:
s
et by user
* luminance masking (0-> disabled)
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
lumi_masking
;
/**
* temporary complexity masking (0-> disabled)
.
* - encoding:
s
et by user
* temporary complexity masking (0-> disabled)
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
temporal_cplx_masking
;
/**
* spatial complexity masking (0-> disabled)
.
* - encoding:
s
et by user
* spatial complexity masking (0-> disabled)
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
spatial_cplx_masking
;
/**
* p block masking (0-> disabled)
.
* - encoding:
s
et by user
* p block masking (0-> disabled)
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
p_masking
;
/**
* darkness masking (0-> disabled)
.
* - encoding:
s
et by user
* darkness masking (0-> disabled)
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
dark_masking
;
...
...
@@ -1244,9 +1246,9 @@ typedef struct AVCodecContext {
int
unused
;
/**
*
idct
algorithm, see FF_IDCT_* below.
* - encoding:
s
et by user
* - decoding:
s
et by user
*
IDCT
algorithm, see FF_IDCT_* below.
* - encoding:
S
et by user
.
* - decoding:
S
et by user
.
*/
int
idct_algo
;
#define FF_IDCT_AUTO 0
...
...
@@ -1269,22 +1271,22 @@ typedef struct AVCodecContext {
#define FF_IDCT_SIMPLEARMV6 17
/**
* slice count
.
* - encoding:
s
et by lavc
* - decoding:
s
et by user (or 0)
* slice count
* - encoding:
S
et by l
ib
avc
odec.
* - decoding:
S
et by user (or 0)
.
*/
int
slice_count
;
/**
* slice offsets in the frame in bytes
.
* - encoding:
s
et/allocated by lavc
* - decoding:
s
et/allocated by user (or NULL)
* slice offsets in the frame in bytes
* - encoding:
S
et/allocated by l
ib
avc
odec.
* - decoding:
S
et/allocated by user (or NULL)
.
*/
int
*
slice_offset
;
/**
* error concealment flags
.
* error concealment flags
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
error_concealment
;
#define FF_EC_GUESS_MVS 1
...
...
@@ -1294,12 +1296,12 @@ typedef struct AVCodecContext {
* dsp_mask could be add used to disable unwanted CPU features
* CPU features (i.e. MMX, SSE. ...)
*
*
w
ith FORCE flag you may instead enable given CPU features
* (Dangerous:
u
sable in case of misdetection, improper usage however will
* result into program crash)
*
W
ith
the
FORCE flag you may instead enable given CPU features
.
* (Dangerous:
U
sable in case of misdetection, improper usage however will
* result into program crash
.
)
*/
unsigned
dsp_mask
;
#define FF_MM_FORCE 0x80000000
/*
f
orce usage of selected flags (OR) */
#define FF_MM_FORCE 0x80000000
/*
F
orce usage of selected flags (OR) */
/* lower 16 bits - CPU features */
#ifdef HAVE_MMX
#define FF_MM_MMX 0x0001
/* standard MMX */
...
...
@@ -1315,14 +1317,14 @@ typedef struct AVCodecContext {
/**
* bits per sample/pixel from the demuxer (needed for huffyuv).
* - encoding:
s
et by lavc
* - decoding:
s
et by user
* - encoding:
S
et by l
ib
avc
odec.
* - decoding:
S
et by user
.
*/
int
bits_per_sample
;
/**
* prediction method (needed for huffyuv)
.
* - encoding:
s
et by user
* prediction method (needed for huffyuv)
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
prediction_method
;
...
...
@@ -1331,24 +1333,24 @@ typedef struct AVCodecContext {
#define FF_PRED_MEDIAN 2
/**
* sample aspect ratio (0 if unknown)
.
*
n
umerator and denominator must be relative prime and smaller th
e
n 256 for some video standards
* - encoding:
s
et by user.
* - decoding:
s
et by l
av
c.
* sample aspect ratio (0 if unknown)
*
N
umerator and denominator must be relative
ly
prime and smaller th
a
n 256 for some video standards
.
* - encoding:
S
et by user.
* - decoding:
S
et by l
ibavcode
c.
*/
AVRational
sample_aspect_ratio
;
/**
* the picture in the bitstream
.
* - encoding:
s
et by lavc
* - decoding:
s
et by lavc
* the picture in the bitstream
* - encoding:
S
et by l
ib
avc
odec.
* - decoding:
S
et by l
ib
avc
odec.
*/
AVFrame
*
coded_frame
;
/**
* debug
.
* - encoding:
s
et by user.
* - decoding:
s
et by user.
* debug
* - encoding:
S
et by user.
* - decoding:
S
et by user.
*/
int
debug
;
#define FF_DEBUG_PICT_INFO 1
...
...
@@ -1368,9 +1370,9 @@ typedef struct AVCodecContext {
#define FF_DEBUG_VIS_MB_TYPE 0x00004000
/**
* debug
.
* - encoding:
s
et by user.
* - decoding:
s
et by user.
* debug
* - encoding:
S
et by user.
* - decoding:
S
et by user.
*/
int
debug_mv
;
#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
...
...
@@ -1378,47 +1380,47 @@ typedef struct AVCodecContext {
#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
/**
* error
.
* - encoding:
s
et by l
av
c if flags&CODEC_FLAG_PSNR
* error
* - encoding:
S
et by l
ibavcode
c if flags&CODEC_FLAG_PSNR
.
* - decoding: unused
*/
uint64_t
error
[
4
];
/**
* minimum MB quantizer
.
* minimum MB quantizer
* - encoding: unused
* - decoding: unused
*/
int
mb_qmin
;
/**
* maximum MB quantizer
.
* maximum MB quantizer
* - encoding: unused
* - decoding: unused
*/
int
mb_qmax
;
/**
* motion estimation compar
e
function
.
* - encoding:
s
et by user.
* motion estimation compar
ison
function
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_cmp
;
/**
* subpixel motion estimation compar
e
function
.
* - encoding:
s
et by user.
* subpixel motion estimation compar
ison
function
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_sub_cmp
;
/**
* macroblock compar
e
function (not supported yet)
.
* - encoding:
s
et by user.
* macroblock compar
ison
function (not supported yet)
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mb_cmp
;
/**
* interlaced
dct
compar
e
function
* - encoding:
s
et by user.
* interlaced
DCT
compar
ison
function
* - encoding:
S
et by user.
* - decoding: unused
*/
int
ildct_cmp
;
...
...
@@ -1440,65 +1442,65 @@ typedef struct AVCodecContext {
#define FF_CMP_CHROMA 256
/**
* ME diamond size & shape
.
* - encoding:
s
et by user.
* ME diamond size & shape
* - encoding:
S
et by user.
* - decoding: unused
*/
int
dia_size
;
/**
* amount of previous MV predictors (2a+1 x 2a+1 square)
.
* - encoding:
s
et by user.
* amount of previous MV predictors (2a+1 x 2a+1 square)
* - encoding:
S
et by user.
* - decoding: unused
*/
int
last_predictor_count
;
/**
* pre
pass for motion estimation
.
* - encoding:
s
et by user.
* prepass for motion estimation
* - encoding:
S
et by user.
* - decoding: unused
*/
int
pre_me
;
/**
* motion estimation pre
pass compar
e
function
.
* - encoding:
s
et by user.
* motion estimation prepass compar
ison
function
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_pre_cmp
;
/**
* ME pre
pass diamond size & shape
.
* - encoding:
s
et by user.
* ME prepass diamond size & shape
* - encoding:
S
et by user.
* - decoding: unused
*/
int
pre_dia_size
;
/**
* subpel ME quality
.
* - encoding:
s
et by user.
* subpel ME quality
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_subpel_quality
;
/**
* callback to negotiate the pixelFormat
.
* callback to negotiate the pixelFormat
* @param fmt is the list of formats which are supported by the codec,
* its terminated by -1 as 0 is a valid format, the formats are ordered by quality
*
t
he first is al
l
ways the native one
* @return the cho
o
sen format
* it
i
s terminated by -1 as 0 is a valid format, the formats are ordered by quality
.
*
T
he first is always the native one
.
* @return the chosen format
* - encoding: unused
* - decoding:
s
et by user, if not set
then
the native format will
always
be cho
o
sen
* - decoding:
S
et by user, if not set the native format will be chosen
.
*/
enum
PixelFormat
(
*
get_format
)(
struct
AVCodecContext
*
s
,
const
enum
PixelFormat
*
fmt
);
/**
* DTG active format information (addition
n
al aspect ratio
* information only used in DVB MPEG2 transport streams)
. 0 if
* not set.
* DTG active format information (additional aspect ratio
* information only used in DVB MPEG
-
2 transport streams)
*
0 if
not set.
*
* - encoding: unused
.
* - decoding:
s
et by decoder
* - encoding: unused
* - decoding:
S
et by decoder
.
*/
int
dtg_active_format
;
#define FF_DTG_AFD_SAME 8
...
...
@@ -1510,46 +1512,46 @@ typedef struct AVCodecContext {
#define FF_DTG_AFD_SP_4_3 15
/**
*
M
aximum motion estimation search range in subpel units
.
*
i
f 0 then no limit
*
m
aximum motion estimation search range in subpel units
*
I
f 0 then no limit
.
*
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_range
;
/**
* intra quantizer bias
.
* - encoding:
s
et by user.
* intra quantizer bias
* - encoding:
S
et by user.
* - decoding: unused
*/
int
intra_quant_bias
;
#define FF_DEFAULT_QUANT_BIAS 999999
/**
* inter quantizer bias
.
* - encoding:
s
et by user.
* inter quantizer bias
* - encoding:
S
et by user.
* - decoding: unused
*/
int
inter_quant_bias
;
/**
* color table ID
.
* - encoding: unused
.
* - decoding:
w
hich clrtable should be used for 8bit RGB images
*
t
able have to be stored somewhere FIXME
* color table ID
* - encoding: unused
* - decoding:
W
hich clrtable should be used for 8bit RGB images
.
*
T
able
s
have to be stored somewhere
.
FIXME
*/
int
color_table_id
;
/**
* internal_buffer count
.
* Don't touch, used by l
av
c default_get_buffer()
* internal_buffer count
* Don't touch, used by l
ibavcode
c default_get_buffer()
.
*/
int
internal_buffer_count
;
/**
* internal_buffers
.
* Don't touch, used by l
av
c default_get_buffer()
* internal_buffers
* Don't touch, used by l
ibavcode
c default_get_buffer()
.
*/
void
*
internal_buffer
;
...
...
@@ -1560,9 +1562,9 @@ typedef struct AVCodecContext {
#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
/**
*
g
lobal quality for codecs which cannot change it per frame.
*
t
his should be proportional to MPEG1/2/4 qscale.
* - encoding:
s
et by user.
*
G
lobal quality for codecs which cannot change it per frame.
*
T
his should be proportional to MPEG
-
1/2/4 qscale.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
global_quality
;
...
...
@@ -1574,14 +1576,14 @@ typedef struct AVCodecContext {
#define FF_CODER_TYPE_DEFLATE 4
/**
* coder type
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
coder_type
;
/**
* context model
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
context_model
;
...
...
@@ -1589,7 +1591,7 @@ typedef struct AVCodecContext {
/**
*
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size);
#endif
...
...
@@ -1597,7 +1599,7 @@ typedef struct AVCodecContext {
/**
* slice flags
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
int
slice_flags
;
#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
...
...
@@ -1613,7 +1615,7 @@ typedef struct AVCodecContext {
/**
* macroblock decision mode
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mb_decision
;
...
...
@@ -1623,105 +1625,105 @@ typedef struct AVCodecContext {
/**
* custom intra quantization matrix
* - encoding:
s
et by user, can be NULL
* - decoding:
s
et by lavc
* - encoding:
S
et by user, can be NULL
.
* - decoding:
S
et by l
ib
avc
odec.
*/
uint16_t
*
intra_matrix
;
/**
* custom inter quantization matrix
* - encoding:
s
et by user, can be NULL
* - decoding:
s
et by lavc
* - encoding:
S
et by user, can be NULL
.
* - decoding:
S
et by l
ib
avc
odec.
*/
uint16_t
*
inter_matrix
;
/**
* fourcc from the AVI stream header (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
*
t
his is used to workaround some encoder bugs
*
T
his is used to work
around some encoder bugs
.
* - encoding: unused
* - decoding:
s
et by user, will be converted to upper
case by lavc during init
* - decoding:
S
et by user, will be converted to uppercase by l
ib
avc
odec
during init
.
*/
unsigned
int
stream_codec_tag
;
/**
* scene change detection threshold
.
* 0 is default, larger means fewer detected scene changes
* - encoding:
s
et by user.
* scene change detection threshold
* 0 is default, larger means fewer detected scene changes
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
scenechange_threshold
;
/**
* minimum
l
agrange multipler
* - encoding:
s
et by user.
* minimum
L
agrange multipler
* - encoding:
S
et by user.
* - decoding: unused
*/
int
lmin
;
/**
* maximum
l
agrange multipler
* - encoding:
s
et by user.
* maximum
L
agrange multipler
* - encoding:
S
et by user.
* - decoding: unused
*/
int
lmax
;
/**
*
P
alette control structure
*
p
alette control structure
* - encoding: ??? (no palette-enabled encoder yet)
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
struct
AVPaletteControl
*
palctrl
;
/**
* noise reduction strength
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
noise_reduction
;
/**
*
c
alled at the beginning of a frame to get cr buffer for it.
*
b
uffer type (size, hints) must be the same. l
av
c won't check it.
* l
av
c will pass previous buffer in pic, function should return
*
C
alled at the beginning of a frame to get cr buffer for it.
*
B
uffer type (size, hints) must be the same. l
ibavcode
c won't check it.
* l
ibavcode
c will pass previous buffer in pic, function should return
* same buffer or new buffer with old frame "painted" into it.
*
i
f pic.data[0] == NULL must behave like get_buffer().
*
I
f pic.data[0] == NULL must behave like get_buffer().
* - encoding: unused
* - decoding:
s
et by lavc, user can override
* - decoding:
S
et by l
ib
avc
odec.
, user can override
*/
int
(
*
reget_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
*
n
umber of bits which should be loaded into the rc buffer before decoding starts
* - encoding:
s
et by user.
*
N
umber of bits which should be loaded into the rc buffer before decoding starts
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
rc_initial_buffer_occupancy
;
/**
*
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
inter_threshold
;
/**
* CODEC_FLAG2_*
.
* - encoding:
s
et by user.
* - decoding:
s
et by user.
* CODEC_FLAG2_*
* - encoding:
S
et by user.
* - decoding:
S
et by user.
*/
int
flags2
;
/**
*
s
imulates errors in the bitstream to test error concealment.
* - encoding:
s
et by user.
* - decoding: unused
.
*
S
imulates errors in the bitstream to test error concealment.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
error_rate
;
/**
* MP3 antialias algorithm, see FF_AA_* below.
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
antialias_algo
;
#define FF_AA_AUTO 0
...
...
@@ -1729,166 +1731,167 @@ typedef struct AVCodecContext {
#define FF_AA_INT 2
#define FF_AA_FLOAT 3
/**
*
Q
uantizer noise shaping
.
* - encoding:
s
et by user
*
q
uantizer noise shaping
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
quantizer_noise_shaping
;
/**
*
T
hread count
.
*
t
hread count
* is used to decide how many independent tasks should be passed to execute()
* - encoding:
s
et by user
* - decoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding:
S
et by user
.
*/
int
thread_count
;
/**
* the codec may call this to execute several independent things. it will return only after
* finishing all tasks, the user may replace this with some multithreaded implementation, the
* default implementation will execute the parts serially
* The codec may call this to execute several independent things.
* It will return only after finishing all tasks.
* The user may replace this with some multithreaded implementation,
* the default implementation will execute the parts serially.
* @param count the number of things to execute
* - encoding:
s
et by l
av
c, user can override
* - decoding:
s
et by l
av
c, user can override
* - encoding:
S
et by l
ibavcode
c, user can override
.
* - decoding:
S
et by l
ibavcode
c, user can override
.
*/
int
(
*
execute
)(
struct
AVCodecContext
*
c
,
int
(
*
func
)(
struct
AVCodecContext
*
c2
,
void
*
arg
),
void
**
arg2
,
int
*
ret
,
int
count
);
/**
*
T
hread opaque
.
*
c
an be used by execute() to store some per AVCodecContext stuff.
*
t
hread opaque
*
C
an be used by execute() to store some per AVCodecContext stuff.
* - encoding: set by execute()
* - decoding: set by execute()
*/
void
*
thread_opaque
;
/**
* Motion estimation threshold
. under
which no motion estimation is
* performed, but instead the user specified motion vectors are used
* Motion estimation threshold
below
which no motion estimation is
* performed, but instead the user specified motion vectors are used
.
*
* - encoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
me_threshold
;
/**
* Macroblock threshold
. under
which the user specified macroblock types will be used
* - encoding:
s
et by user
* Macroblock threshold
below
which the user specified macroblock types will be used
.
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
mb_threshold
;
/**
* precision of the intra
dc
coefficient - 8
.
* - encoding:
s
et by user
* precision of the intra
DC
coefficient - 8
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
intra_dc_precision
;
/**
* noise vs. sse weight for the nsse comparsion function
.
* - encoding:
s
et by user
* noise vs. sse weight for the nsse comparsion function
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
nsse_weight
;
/**
*
n
umber of macroblock rows at the top which are skipped.
*
N
umber of macroblock rows at the top which are skipped.
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
skip_top
;
/**
*
n
umber of macroblock rows at the bottom which are skipped.
*
N
umber of macroblock rows at the bottom which are skipped.
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
skip_bottom
;
/**
* profile
* - encoding:
s
et by user
* - decoding:
s
et by lavc
* - encoding:
S
et by user
.
* - decoding:
S
et by l
ib
avc
odec.
*/
int
profile
;
#define FF_PROFILE_UNKNOWN -99
/**
* level
* - encoding:
s
et by user
* - decoding:
s
et by lavc
* - encoding:
S
et by user
.
* - decoding:
S
et by l
ib
avc
odec.
*/
int
level
;
#define FF_LEVEL_UNKNOWN -99
/**
* low resolution decoding
.
1-> 1/2 size, 2->1/4 size
* low resolution decoding
,
1-> 1/2 size, 2->1/4 size
* - encoding: unused
* - decoding:
s
et by user
* - decoding:
S
et by user
.
*/
int
lowres
;
/**
*
b
itsream width / height
.
may be different from width/height if lowres
* or other things are used
*
B
its
t
ream width / height
,
may be different from width/height if lowres
* or other things are used
.
* - encoding: unused
* - decoding:
s
et by user before init if known
, c
odec should override / dynamically change if needed
* - decoding:
S
et by user before init if known
. C
odec should override / dynamically change if needed
.
*/
int
coded_width
,
coded_height
;
/**
* frame skip threshold
* - encoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
frame_skip_threshold
;
/**
* frame skip factor
* - encoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
frame_skip_factor
;
/**
* frame skip exponent
* - encoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding: unused
*/
int
frame_skip_exp
;
/**
* frame skip comparis
si
on function
* - encoding:
s
et by user.
* frame skip comparison function
* - encoding:
S
et by user.
* - decoding: unused
*/
int
frame_skip_cmp
;
/**
*
b
order processing masking
.
raises the quantizer for mbs on the borders
*
B
order processing masking
,
raises the quantizer for mbs on the borders
* of the picture.
* - encoding:
s
et by user
* - encoding:
S
et by user
.
* - decoding: unused
*/
float
border_masking
;
/**
* minimum MB lagrange multipler
.
* - encoding:
s
et by user.
* minimum MB lagrange multipler
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mb_lmin
;
/**
* maximum MB lagrange multipler
.
* - encoding:
s
et by user.
* maximum MB lagrange multipler
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mb_lmax
;
/**
*
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
me_penalty_compensation
;
...
...
@@ -1896,90 +1899,90 @@ typedef struct AVCodecContext {
/**
*
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
enum
AVDiscard
skip_loop_filter
;
/**
*
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
enum
AVDiscard
skip_idct
;
/**
*
* - encoding: unused
* - decoding:
s
et by user.
* - decoding:
S
et by user.
*/
enum
AVDiscard
skip_frame
;
/**
*
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
bidir_refine
;
/**
*
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
brd_scale
;
/**
* constant rate factor - quality-based VBR - values ~correspond to qps
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
float
crf
;
/**
* constant quantization parameter rate control method
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
cqp
;
/**
* minimum
gop
size
* - encoding:
s
et by user.
* minimum
GOP
size
* - encoding:
S
et by user.
* - decoding: unused
*/
int
keyint_min
;
/**
* number of reference frames
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
refs
;
/**
* chroma qp offset from luma
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
chromaoffset
;
/**
*
i
nfluences how often
b
-frames are used
* - encoding:
s
et by user.
*
I
nfluences how often
B
-frames are used
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
bframebias
;
/**
* trellis RD quantization
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
trellis
;
/**
*
r
educe fluctuations in qp (before curve compression)
* - encoding:
s
et by user.
*
R
educe fluctuations in qp (before curve compression)
.
* - encoding:
S
et by user.
* - decoding: unused
*/
float
complexityblur
;
...
...
@@ -1987,7 +1990,7 @@ typedef struct AVCodecContext {
/**
* in-loop deblocking filter alphac0 parameter
* alpha is in the range -6...6
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
deblockalpha
;
...
...
@@ -1995,14 +1998,14 @@ typedef struct AVCodecContext {
/**
* in-loop deblocking filter beta parameter
* beta is in the range -6...6
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
deblockbeta
;
/**
* macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
partitions
;
...
...
@@ -2013,97 +2016,97 @@ typedef struct AVCodecContext {
#define X264_PART_B8X8 0x100
/* Analyse b16x8, b8x16 and b8x8 */
/**
* direct
mv
prediction mode - 0 (none), 1 (spatial), 2 (temporal)
* - encoding:
s
et by user.
* direct
MV
prediction mode - 0 (none), 1 (spatial), 2 (temporal)
* - encoding:
S
et by user.
* - decoding: unused
*/
int
directpred
;
/**
*
a
udio cutoff bandwidth (0 means "automatic")
. C
urrently used only by FAAC
* - encoding:
s
et by user.
*
A
udio cutoff bandwidth (0 means "automatic")
, c
urrently used only by FAAC
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
cutoff
;
/**
*
m
ultiplied by qscale for each frame and added to scene_change_score
* - encoding:
s
et by user.
*
M
ultiplied by qscale for each frame and added to scene_change_score
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
scenechange_factor
;
/**
*
*
n
ote:
v
alue depends upon the compare functin used for fullpel ME
* - encoding:
s
et by user.
*
N
ote:
V
alue depends upon the compare functi
o
n used for fullpel ME
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
mv0_threshold
;
/**
*
a
djusts sensitivity of b_frame_strategy 1
* - encoding:
s
et by user.
*
A
djusts sensitivity of b_frame_strategy 1
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
b_sensitivity
;
/**
* - encoding:
s
et by user.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
compression_level
;
#define FF_COMPRESSION_DEFAULT -1
/**
*
s
ets whether to use LPC mode - used by FLAC encoder
* - encoding:
s
et by user.
* - decoding: unused
.
*
S
ets whether to use LPC mode - used by FLAC encoder
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
use_lpc
;
/**
* LPC coefficient precision - used by FLAC encoder
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
lpc_coeff_precision
;
/**
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
min_prediction_order
;
/**
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
max_prediction_order
;
/**
* search method for selecting prediction order
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
prediction_order_method
;
/**
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
min_partition_order
;
/**
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int
max_partition_order
;
/**
* GOP timecode frame start number, in non drop frame format
* - encoding:
s
et by user.
* - decoding: unused
.
* - encoding:
S
et by user.
* - decoding: unused
*/
int64_t
timecode_frame_start
;
}
AVCodecContext
;
...
...
@@ -2141,20 +2144,20 @@ typedef struct AVPicture {
* AVPaletteControl
* This structure defines a method for communicating palette changes
* between and demuxer and a decoder.
*
t
his is totally broken, palette changes should be sent as AVPackets
*
T
his is totally broken, palette changes should be sent as AVPackets
.
*/
#define AVPALETTE_SIZE 1024
#define AVPALETTE_COUNT 256
typedef
struct
AVPaletteControl
{
/*
d
emuxer sets this to 1 to indicate the palette has changed;
* decoder resets to 0 */
/*
D
emuxer sets this to 1 to indicate the palette has changed;
* decoder resets to 0
.
*/
int
palette_changed
;
/* 4-byte ARGB palette entries, stored in native byte order; note that
* the individual palette components should be on a 8-bit scale; if
* the palette data comes from a IBM VGA native format, the component
* data is probably 6 bits in size and needs to be scaled */
* the palette data comes from a
n
IBM VGA native format, the component
* data is probably 6 bits in size and needs to be scaled
.
*/
unsigned
int
palette
[
AVPALETTE_COUNT
];
}
AVPaletteControl
attribute_deprecated
;
...
...
@@ -2371,7 +2374,7 @@ extern AVCodec xl_decoder;
extern
AVCodec
zlib_decoder
;
extern
AVCodec
zmbv_decoder
;
/*
pcm
codecs */
/*
PCM
codecs */
#define PCM_CODEC(id, name) \
extern AVCodec name ## _decoder; \
extern AVCodec name ## _encoder
...
...
@@ -2394,7 +2397,7 @@ PCM_CODEC(CODEC_ID_PCM_U24LE, pcm_u24le);
PCM_CODEC
(
CODEC_ID_PCM_U32BE
,
pcm_u32be
);
PCM_CODEC
(
CODEC_ID_PCM_U32LE
,
pcm_u32le
);
/*
adpcm
codecs */
/*
ADPCM
codecs */
PCM_CODEC
(
CODEC_ID_ADPCM_4XM
,
adpcm_4xm
);
PCM_CODEC
(
CODEC_ID_ADPCM_ADX
,
adpcm_adx
);
...
...
@@ -2476,23 +2479,23 @@ attribute_deprecated void img_resample_close(ImgReSampleContext *s);
/**
* Allocate memory for a picture. Call avpicture_free to free it.
*
* @param picture the picture to be filled in
.
* @param pix_fmt the format of the picture
.
* @param width the width of the picture
.
* @param height the height of the picture
.
* @return
Z
ero if successful, a negative value if not
.
* @param picture the picture to be filled in
* @param pix_fmt the format of the picture
* @param width the width of the picture
* @param height the height of the picture
* @return
z
ero if successful, a negative value if not
*/
int
avpicture_alloc
(
AVPicture
*
picture
,
int
pix_fmt
,
int
width
,
int
height
);
/**
* Free a picture previously allocated by avpicture_alloc().
*
* @param picture
T
he AVPicture to be freed
.
* @param picture
t
he AVPicture to be freed
*/
void
avpicture_free
(
AVPicture
*
picture
);
/**
* Fill in AVPicture
's
fields.
* Fill in
the
AVPicture fields.
* The fields of the given AVPicture are filled in by using the 'ptr' address
* which points to the image data buffer. Depending on the specified picture
* format, one or multiple image data pointers and line sizes will be set.
...
...
@@ -2500,12 +2503,12 @@ void avpicture_free(AVPicture *picture);
* the different picture planes and the line sizes of the different planes
* will be stored in the lines_sizes array.
*
* @param picture AVPicture who
'
s fields are to be filled in
* @param picture AVPicture whos
e
fields are to be filled in
* @param ptr Buffer which will contain or contains the actual image data
* @param pix_fmt The format in which the picture data is stored
* @param width
T
he width of the image in pixels
* @param height
T
he height of the image in pixels
* @return
S
ize of the image data in bytes
.
* @param pix_fmt The format in which the picture data is stored
.
* @param width
t
he width of the image in pixels
* @param height
t
he height of the image in pixels
* @return
s
ize of the image data in bytes
*/
int
avpicture_fill
(
AVPicture
*
picture
,
uint8_t
*
ptr
,
int
pix_fmt
,
int
width
,
int
height
);
...
...
@@ -2516,9 +2519,9 @@ int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height,
* Calculate the size in bytes that a picture of the given width and height
* would occupy if stored in the given picture format.
*
* @param pix_fmt
T
he given picture format
* @param width
T
he width of the image
* @param height
T
he height of the image
* @param pix_fmt
t
he given picture format
* @param width
t
he width of the image
* @param height
t
he height of the image
* @return Image data size in bytes
*/
int
avpicture_get_size
(
int
pix_fmt
,
int
width
,
int
height
);
...
...
@@ -2544,11 +2547,11 @@ unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat p);
* other formats. These losses can involve loss of chroma, but also loss of
* resolution, loss of color depth, loss due to the color space conversion, loss
* of the alpha bits or loss due to color quantization.
* avcodec_get_fix_fmt_loss() informs you
on
the various types of losses
which
* will occur when converting from one pixel format to another.
* avcodec_get_fix_fmt_loss() informs you
about
the various types of losses
*
which
will occur when converting from one pixel format to another.
*
* @param[in] dst_pix_fmt
D
estination pixel format
.
* @param[in] src_pix_fmt
S
ource pixel format
.
* @param[in] dst_pix_fmt
d
estination pixel format
* @param[in] src_pix_fmt
s
ource pixel format
* @param[in] has_alpha Whether the source pixel format alpha channel is used.
* @return Combination of flags informing you what kind of losses will occur.
*/
...
...
@@ -2561,8 +2564,8 @@ int avcodec_get_pix_fmt_loss(int dst_pix_fmt, int src_pix_fmt,
* may occur. For example, when converting from RGB24 to GRAY, the color
* information will be lost. Similarly, other losses occur when converting from
* some formats to other formats. avcodec_find_best_pix_fmt() searches which of
* the given pixel formats should be used to
undergo
the least amount of loss
es
.
* The pixel formats from which it choses one, are determined by the
* the given pixel formats should be used to
suffer
the least amount of loss.
* The pixel formats from which it cho
o
ses one, are determined by the
* \p pix_fmt_mask parameter.
*
* @code
...
...
@@ -2571,8 +2574,8 @@ int avcodec_get_pix_fmt_loss(int dst_pix_fmt, int src_pix_fmt,
* dst_pix_fmt = avcodec_find_best_pix_fmt(pix_fmt_mask, src_pix_fmt, alpha, &loss);
* @endcode
*
* @param[in] pix_fmt_mask
B
itmask determining which pixel format to choose from
.
* @param[in] src_pix_fmt
S
ource pixel format
.
* @param[in] pix_fmt_mask
b
itmask determining which pixel format to choose from
* @param[in] src_pix_fmt
s
ource pixel format
* @param[in] has_alpha Whether the source pixel format alpha channel is used.
* @param[out] loss_ptr Combination of flags informing you what kind of losses will occur.
* @return The best pixel format to convert to or -1 if none was found.
...
...
@@ -2624,7 +2627,7 @@ void register_avcodec(AVCodec *format);
/**
* Finds an encoder with a matching codec ID.
*
* @param id CodecID of the requested encoder
.
* @param id CodecID of the requested encoder
* @return An encoder if one was found, NULL otherwise.
*/
AVCodec
*
avcodec_find_encoder
(
enum
CodecID
id
);
...
...
@@ -2632,7 +2635,7 @@ AVCodec *avcodec_find_encoder(enum CodecID id);
/**
* Finds an encoder with the specified name.
*
* @param name
N
ame of the requested encoder
.
* @param name
n
ame of the requested encoder
* @return An encoder if one was found, NULL otherwise.
*/
AVCodec
*
avcodec_find_encoder_by_name
(
const
char
*
name
);
...
...
@@ -2640,7 +2643,7 @@ AVCodec *avcodec_find_encoder_by_name(const char *name);
/**
* Finds a decoder with a matching codec ID.
*
* @param id CodecID of the requested decoder
.
* @param id CodecID of the requested decoder
* @return A decoder if one was found, NULL otherwise.
*/
AVCodec
*
avcodec_find_decoder
(
enum
CodecID
id
);
...
...
@@ -2648,7 +2651,7 @@ AVCodec *avcodec_find_decoder(enum CodecID id);
/**
* Finds an decoder with the specified name.
*
* @param name
N
ame of the requested decoder
.
* @param name
n
ame of the requested decoder
* @return A decoder if one was found, NULL otherwise.
*/
AVCodec
*
avcodec_find_decoder_by_name
(
const
char
*
name
);
...
...
@@ -2724,7 +2727,7 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v
* avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for
* retrieving a codec.
*
* @warning This function is not thread sa
v
e!
* @warning This function is not thread sa
f
e!
*
* @code
* codec = avcodec_find_decoder(CODEC_ID_H264);
...
...
@@ -2737,9 +2740,9 @@ int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, v
* exit(1);
* @endcode
*
* @param avctx The context which will be setup to use the given codec.
* @param avctx The context which will be set
up to use the given codec.
* @param codec The codec to use within the context.
* @return
Z
ero on success, a negative value on error
.
* @return
z
ero on success, a negative value on error
* @see avcodec_alloc_context, avcodec_find_decoder, avcodec_find_encoder
*/
int
avcodec_open
(
AVCodecContext
*
avctx
,
AVCodec
*
codec
);
...
...
@@ -2753,9 +2756,9 @@ attribute_deprecated int avcodec_decode_audio(AVCodecContext *avctx, int16_t *sa
/**
* Decodes an audio frame from \p buf into \p samples.
* The avcodec_decode_audio2() function decodes a
frame of audio
from the input
* The avcodec_decode_audio2() function decodes a
n audio frame
from the input
* buffer \p buf of size \p buf_size. To decode it, it makes use of the
* audiocodec which was coupled with \p avctx using avcodec_open(). The
* audio
codec which was coupled with \p avctx using avcodec_open(). The
* resulting decoded frame is stored in output buffer \p samples. If no frame
* could be decompressed, \p frame_size_ptr is zero. Otherwise, it is the
* decompressed frame size in \e bytes.
...
...
@@ -2771,7 +2774,7 @@ attribute_deprecated int avcodec_decode_audio(AVCodecContext *avctx, int16_t *sa
* no overreading happens for damaged MPEG streams.
*
* @note You might have to align the input buffer \p buf and output buffer \p
* samples. The alignment requirements depend on the CPU:
o
n some CPUs it isn't
* samples. The alignment requirements depend on the CPU:
O
n some CPUs it isn't
* necessary at all, on others it won't work at all if not aligned and on others
* it will work but it will have an impact on performance. In practice, the
* bitstream should have 4 byte alignment at minimum and all sample data should
...
...
@@ -2779,11 +2782,11 @@ attribute_deprecated int avcodec_decode_audio(AVCodecContext *avctx, int16_t *sa
* the linesize is not a multiple of 16 then there's no sense in aligning the
* start of the buffer to 16.
*
* @param avctx
T
he codec context
.
* @param[out] samples
T
he output buffer
.
* @param[in,out] frame_size_ptr
T
he output buffer size in bytes
.
* @param[in] buf
T
he input buffer
.
* @param[in] buf_size
T
he input buffer size in bytes
.
* @param avctx
t
he codec context
* @param[out] samples
t
he output buffer
* @param[in,out] frame_size_ptr
t
he output buffer size in bytes
* @param[in] buf
t
he input buffer
* @param[in] buf_size
t
he input buffer size in bytes
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
...
...
@@ -2793,9 +2796,9 @@ int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
/**
* Decodes a video frame from \p buf into \p picture.
* The avcodec_decode_video() function decodes a
frame of video
from the input
* The avcodec_decode_video() function decodes a
video frame
from the input
* buffer \p buf of size \p buf_size. To decode it, it makes use of the
* videocodec which was coupled with \p avctx using avcodec_open(). The
* video
codec which was coupled with \p avctx using avcodec_open(). The
* resulting decoded frame is stored in \p picture.
*
* @warning The input buffer must be \c FF_INPUT_BUFFER_PADDING_SIZE larger than
...
...
@@ -2814,11 +2817,11 @@ int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
* the linesize is not a multiple of 16 then there's no sense in aligning the
* start of the buffer to 16.
*
* @param avctx
T
he codec context
.
* @param avctx
t
he codec context
* @param[out] picture The AVFrame in which the decoded video frame will be stored.
* @param[in] buf
T
he input buffer
.
* @param[in] buf_size
T
he size of the input buffer in bytes
.
* @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is non
zero.
* @param[in] buf
t
he input buffer
* @param[in] buf_size
t
he size of the input buffer in bytes
* @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
* @return On error a negative value is returned, otherwise the number of bytes
* used or zero if no frame could be decompressed.
*/
...
...
@@ -2826,9 +2829,9 @@ int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
int
*
got_picture_ptr
,
uint8_t
*
buf
,
int
buf_size
);
/*
d
ecode a subtitle message.
r
eturn -1 if error, otherwise return the
*number of bytes used. If no subtitle could be decompressed,
*got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. */
/*
D
ecode a subtitle message.
R
eturn -1 if error, otherwise return the
*
number of bytes used. If no subtitle could be decompressed,
*
got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. */
int
avcodec_decode_subtitle
(
AVCodecContext
*
avctx
,
AVSubtitle
*
sub
,
int
*
got_sub_ptr
,
const
uint8_t
*
buf
,
int
buf_size
);
...
...
@@ -2838,17 +2841,17 @@ int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
/**
* Encodes an audio frame from \p samples into \p buf.
* The avcodec_encode_audio() function encodes a
frame of audio
from the input
* buffer \p samples. To encode it, it makes use of the audiocodec which was
* The avcodec_encode_audio() function encodes a
n audio frame
from the input
* buffer \p samples. To encode it, it makes use of the audio
codec which was
* coupled with \p avctx using avcodec_open(). The resulting encoded frame is
* stored in output buffer \p buf.
*
* @note The output buffer should be at least \c FF_MIN_BUFFER_SIZE bytes large.
*
* @param avctx
T
he codec context
.
* @param[out] buf
T
he output buffer
.
* @param[in] buf_size
T
he output buffer size
.
* @param[in] samples
T
he input buffer containing the samples
.
* @param avctx
t
he codec context
* @param[out] buf
t
he output buffer
* @param[in] buf_size
t
he output buffer size
* @param[in] samples
t
he input buffer containing the samples
* @return On error a negative value is returned, on succes zero or the number
* of bytes used from the input buffer.
*/
...
...
@@ -2857,16 +2860,16 @@ int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size,
/**
* Encodes a video frame from \p pict into \p buf.
* The avcodec_encode_video() function encodes a
frame of video
from the input
* \p pict. To encode it, it makes use of the videocodec which was coupled with
* The avcodec_encode_video() function encodes a
video frame
from the input
* \p pict. To encode it, it makes use of the video
codec which was coupled with
* \p avctx using avcodec_open(). The resulting encoded bytes representing the
* frame are stored in the output buffer \p buf. The input picture should be
* stored using a specific format, namely \c avctx.pix_fmt.
*
* @param avctx
T
he codec context
.
* @param[out] buf
T
he output buffer for the bitstream of encoded frame
.
* @param[in] buf_size
T
he size of the outputbuffer in bytes
.
* @param[in] pict
T
he input picture to encode
.
* @param avctx
t
he codec context
* @param[out] buf
t
he output buffer for the bitstream of encoded frame
* @param[in] buf_size
t
he size of the output
buffer in bytes
* @param[in] pict
t
he input picture to encode
* @return On error a negative value is returned, on success zero or the number
* of bytes used from the input buffer.
*/
...
...
@@ -2891,7 +2894,7 @@ void avcodec_default_free_buffers(AVCodecContext *s);
/**
* Returns a single letter to describe the given picture type \p pict_type.
*
* @param[in] pict_type
T
he picture type
.
* @param[in] pict_type
t
he picture type
* @return A single character representing the picture type.
*/
char
av_get_pict_type_char
(
int
pict_type
);
...
...
@@ -2899,7 +2902,7 @@ char av_get_pict_type_char(int pict_type);
/**
* Returns codec bits per sample.
*
* @param[in] codec_id
T
he codec
.
* @param[in] codec_id
t
he codec
* @return Number of bits per sample or zero if unknown for the given codec.
*/
int
av_get_bits_per_sample
(
enum
CodecID
codec_id
);
...
...
@@ -2913,8 +2916,8 @@ typedef struct AVCodecParserContext {
(incremented by each av_parser_parse()) */
int64_t
last_frame_offset
;
/* offset of the last frame */
/* video info */
int
pict_type
;
/* XXX:
p
ut it back in AVCodecContext */
int
repeat_pict
;
/* XXX:
p
ut it back in AVCodecContext */
int
pict_type
;
/* XXX:
P
ut it back in AVCodecContext
.
*/
int
repeat_pict
;
/* XXX:
P
ut it back in AVCodecContext
.
*/
int64_t
pts
;
/* pts of the current frame */
int64_t
dts
;
/* dts of the current frame */
...
...
@@ -3028,7 +3031,7 @@ void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size);
/* for static data only */
/**
* Frees all static arrays and reset their pointers to 0.
* Frees all static arrays and reset
s
their pointers to 0.
* Call this function to release all statically allocated tables.
*/
attribute_deprecated
void
av_free_static
(
void
);
...
...
@@ -3039,7 +3042,7 @@ attribute_deprecated void av_free_static(void);
* @warning Do not use for normal allocation.
*
* @param[in] size The amount of memory you need in bytes.
* @return
B
lock of memory of the requested size
.
* @return
b
lock of memory of the requested size
*/
attribute_deprecated
void
*
av_mallocz_static
(
unsigned
int
size
);
...
...
@@ -3050,13 +3053,13 @@ void av_picture_copy(AVPicture *dst, const AVPicture *src,
int
pix_fmt
,
int
width
,
int
height
);
/**
* Crop image top and left side
* Crop image top and left side
.
*/
int
av_picture_crop
(
AVPicture
*
dst
,
const
AVPicture
*
src
,
int
pix_fmt
,
int
top_band
,
int
left_band
);
/**
* Pad image
* Pad image
.
*/
int
av_picture_pad
(
AVPicture
*
dst
,
const
AVPicture
*
src
,
int
height
,
int
width
,
int
pix_fmt
,
int
padtop
,
int
padbottom
,
int
padleft
,
int
padright
,
int
*
color
);
...
...
@@ -3076,20 +3079,20 @@ extern unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
/* error handling */
#if EINVAL > 0
#define AVERROR(e) (-(e))
/**<
r
eturns a negative error code from a POSIX error code, to return from library functions. */
#define AVUNERROR(e) (-(e))
/**<
r
eturns a POSIX error code from a library function error return value. */
#define AVERROR(e) (-(e))
/**<
R
eturns a negative error code from a POSIX error code, to return from library functions. */
#define AVUNERROR(e) (-(e))
/**<
R
eturns a POSIX error code from a library function error return value. */
#else
/*
s
ome platforms have E* and errno already negated. */
/*
S
ome platforms have E* and errno already negated. */
#define AVERROR(e) (e)
#define AVUNERROR(e) (e)
#endif
#define AVERROR_UNKNOWN AVERROR(EINVAL)
/**< unknown error */
#define AVERROR_IO AVERROR(EIO)
/**<
i/o
error */
#define AVERROR_NUMEXPECTED AVERROR(EDOM)
/**<
n
umber syntax expected in filename */
#define AVERROR_IO AVERROR(EIO)
/**<
I/O
error */
#define AVERROR_NUMEXPECTED AVERROR(EDOM)
/**<
N
umber syntax expected in filename
.
*/
#define AVERROR_INVALIDDATA AVERROR(EINVAL)
/**< invalid data found */
#define AVERROR_NOMEM AVERROR(ENOMEM)
/**< not enough memory */
#define AVERROR_NOFMT AVERROR(EILSEQ)
/**< unknown format */
#define AVERROR_NOTSUPP AVERROR(ENOSYS)
/**<
o
peration not supported */
#define AVERROR_NOTSUPP AVERROR(ENOSYS)
/**<
O
peration not supported
.
*/
#ifdef __cplusplus
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment