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
64863965
Commit
64863965
authored
22 years ago
by
Michael Niedermayer
Browse files
Options
Downloads
Patches
Plain Diff
more cosmetics so that doxygen output is readable ...
Originally committed as revision 1640 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
a1adf436
Loading
Loading
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
libavcodec/avcodec.h
+302
-290
302 additions, 290 deletions
libavcodec/avcodec.h
libavcodec/common.h
+1
-1
1 addition, 1 deletion
libavcodec/common.h
with
303 additions
and
291 deletions
libavcodec/avcodec.h
+
302
−
290
View file @
64863965
...
@@ -70,28 +70,31 @@ enum CodecType {
...
@@ -70,28 +70,31 @@ enum CodecType {
CODEC_TYPE_AUDIO
,
CODEC_TYPE_AUDIO
,
};
};
/**
* Pixel format.
*/
enum
PixelFormat
{
enum
PixelFormat
{
PIX_FMT_YUV420P
,
PIX_FMT_YUV420P
,
PIX_FMT_YUV422
,
PIX_FMT_YUV422
,
PIX_FMT_RGB24
,
/
*
3 bytes, R is first
*/
PIX_FMT_RGB24
,
/
//<
3 bytes, R is first
PIX_FMT_BGR24
,
/
*
3 bytes, B is first
*/
PIX_FMT_BGR24
,
/
//<
3 bytes, B is first
PIX_FMT_YUV422P
,
PIX_FMT_YUV422P
,
PIX_FMT_YUV444P
,
PIX_FMT_YUV444P
,
PIX_FMT_RGBA32
,
/
*
always stored in cpu endianness
*/
PIX_FMT_RGBA32
,
/
//<
always stored in cpu endianness
PIX_FMT_YUV410P
,
PIX_FMT_YUV410P
,
PIX_FMT_YUV411P
,
PIX_FMT_YUV411P
,
PIX_FMT_RGB565
,
/
*
always stored in cpu endianness
*/
PIX_FMT_RGB565
,
/
//<
always stored in cpu endianness
PIX_FMT_RGB555
,
/
*
always stored in cpu endianness, most significant bit to 1
*/
PIX_FMT_RGB555
,
/
//<
always stored in cpu endianness, most significant bit to 1
PIX_FMT_GRAY8
,
PIX_FMT_GRAY8
,
PIX_FMT_MONOWHITE
,
/
*
0 is white
*/
PIX_FMT_MONOWHITE
,
/
//<
0 is white
PIX_FMT_MONOBLACK
,
/
*
0 is black
*/
PIX_FMT_MONOBLACK
,
/
//<
0 is black
PIX_FMT_PAL8
,
/
*
8 bit with RGBA palette
*/
PIX_FMT_PAL8
,
/
//<
8 bit with RGBA palette
PIX_FMT_NB
,
PIX_FMT_NB
,
};
};
/* currently unused, may be used if 24/32 bits samples ever supported */
/* currently unused, may be used if 24/32 bits samples ever supported */
enum
SampleFormat
{
enum
SampleFormat
{
SAMPLE_FMT_S16
=
0
,
/
*
signed 16 bits
*/
SAMPLE_FMT_S16
=
0
,
/
//<
signed 16 bits
};
};
/* in bytes */
/* in bytes */
...
@@ -135,33 +138,33 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
...
@@ -135,33 +138,33 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
Note: note not everything is supported yet
Note: note not everything is supported yet
*/
*/
#define CODEC_FLAG_HQ 0x0001
/
*
brute force MB-type decission mode (slow)
*/
#define CODEC_FLAG_HQ 0x0001 /
//<
brute force MB-type decission mode (slow)
#define CODEC_FLAG_QSCALE 0x0002
/
*
use fixed qscale
*/
#define CODEC_FLAG_QSCALE 0x0002 /
//<
use fixed qscale
#define CODEC_FLAG_4MV 0x0004
/
*
4 MV per MB allowed
*/
#define CODEC_FLAG_4MV 0x0004 /
//<
4 MV per MB allowed
#define CODEC_FLAG_QPEL 0x0010
/
*
use qpel MC
*/
#define CODEC_FLAG_QPEL 0x0010 /
//<
use qpel MC
#define CODEC_FLAG_GMC 0x0020
/
*
use GMC
*/
#define CODEC_FLAG_GMC 0x0020 /
//<
use GMC
#define CODEC_FLAG_PART 0x0080
/
*
use data partitioning
*/
#define CODEC_FLAG_PART 0x0080 /
//<
use data partitioning
/* parent program gurantees that the input for b-frame containing streams is not written to
/* parent program gurantees 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 */
for at least s->max_b_frames+1 frames, if this is not set than the input will be copied */
#define CODEC_FLAG_INPUT_PRESERVED 0x0100
#define CODEC_FLAG_INPUT_PRESERVED 0x0100
#define CODEC_FLAG_PASS1 0x0200
/
*
use internal 2pass ratecontrol in first pass mode
*/
#define CODEC_FLAG_PASS1 0x0200 /
//<
use internal 2pass ratecontrol in first pass mode
#define CODEC_FLAG_PASS2 0x0400
/
*
use internal 2pass ratecontrol in second pass mode
*/
#define CODEC_FLAG_PASS2 0x0400 /
//<
use internal 2pass ratecontrol in second pass mode
#define CODEC_FLAG_EXTERN_HUFF 0x1000
/
*
use external huffman table (for mjpeg)
*/
#define CODEC_FLAG_EXTERN_HUFF 0x1000 /
//<
use external huffman table (for mjpeg)
#define CODEC_FLAG_GRAY 0x2000
/
*
only decode/encode grayscale
*/
#define CODEC_FLAG_GRAY 0x2000 /
//<
only decode/encode grayscale
#define CODEC_FLAG_EMU_EDGE 0x4000
/
*
dont draw edges
*/
#define CODEC_FLAG_EMU_EDGE 0x4000/
//<
dont draw edges
#define CODEC_FLAG_PSNR 0x8000
/
*
error[?] variables will be set during encoding
*/
#define CODEC_FLAG_PSNR 0x8000 /
//<
error[?] variables will be set during encoding
#define CODEC_FLAG_TRUNCATED 0x00010000
/* input bitstream might be truncated at a random location instead
#define CODEC_FLAG_TRUNCATED 0x00010000
/*
*
input bitstream might be truncated at a random location instead
of only at frame boundaries */
of only at frame boundaries */
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000
/
*
normalize adaptive quantization
*/
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 /
//<
normalize adaptive quantization
#define CODEC_FLAG_INTERLACED_DCT 0x00040000
/
*
use interlaced dct
*/
#define CODEC_FLAG_INTERLACED_DCT 0x00040000 /
//<
use interlaced dct
#define CODEC_FLAG_LOW_DELAY 0x00080000
/
*
force low delay / will fail on b frames
*/
#define CODEC_FLAG_LOW_DELAY 0x00080000 /
//<
force low delay / will fail on b frames
#define CODEC_FLAG_ALT_SCAN 0x00100000
/
*
use alternate scan
*/
#define CODEC_FLAG_ALT_SCAN 0x00100000 /
//<
use alternate scan
#define CODEC_FLAG_TRELLIS_QUANT 0x00200000
/
*
use trellis quantization
*/
#define CODEC_FLAG_TRELLIS_QUANT 0x00200000 /
//<
use trellis quantization
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000
/
*
place global headers in extradata instead of every keyframe
*/
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 /
//<
place global headers in extradata instead of every keyframe
#define CODEC_FLAG_BITEXACT 0x00800000
/
*
use only bitexact stuff (except (i)dct)
*/
#define CODEC_FLAG_BITEXACT 0x00800000 /
//<
use only bitexact stuff (except (i)dct)
/* Fx : Flag for h263+ extra options */
/* Fx : Flag for h263+ extra options */
#define CODEC_FLAG_H263P_AIC 0x01000000
/
*
Advanced intra coding
*/
#define CODEC_FLAG_H263P_AIC 0x01000000 /
//<
Advanced intra coding
#define CODEC_FLAG_H263P_UMV 0x02000000
/
*
Unlimited motion vector
*/
#define CODEC_FLAG_H263P_UMV 0x02000000 /
//<
Unlimited motion vector
/* For advanced prediction mode, we reuse the 4MV flag */
/* For advanced prediction mode, we reuse the 4MV flag */
/* Unsupported options :
/* Unsupported options :
* Syntax Arithmetic coding (SAC)
* Syntax Arithmetic coding (SAC)
...
@@ -174,8 +177,8 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
...
@@ -174,8 +177,8 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
/* /Fx */
/* /Fx */
/* codec capabilities */
/* codec capabilities */
#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001
/
*
decoder can use draw_horiz_band callback
*/
#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 /
//<
decoder can use draw_horiz_band callback
#define CODEC_CAP_DR1 0x0002
/
*
direct rendering method 1
*/
#define CODEC_CAP_DR1 0x0002 /
//<
direct rendering method 1
/* if 'parse_only' field is true, then avcodec_parse_frame() can be
/* if 'parse_only' field is true, then avcodec_parse_frame() can be
used */
used */
#define CODEC_CAP_PARSE_ONLY 0x0004
#define CODEC_CAP_PARSE_ONLY 0x0004
...
@@ -189,106 +192,106 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
...
@@ -189,106 +192,106 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
/**\
/**\
* pointer to the first allocated byte of the picture. can be used in get_buffer/release_buffer\
* pointer to the first allocated byte of the picture. can be used in get_buffer/release_buffer\
* this isnt used by lavc unless the default get/release_buffer() is used\
* this isnt used by lavc unless the default get/release_buffer() is used\
* encoding: \
*
-
encoding: \
* decoding: \
*
-
decoding: \
*/
\
*/
\
uint8_t *base[4];\
uint8_t *base[4];\
/**\
/**\
* 1 -> keyframe, 0-> not\
* 1 -> keyframe, 0-> not\
* encoding: set by lavc\
*
-
encoding: set by lavc\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int key_frame;\
int key_frame;\
\
\
/**\
/**\
* picture type of the frame, see ?_TYPE below\
* picture type of the frame, see ?_TYPE below\
* encoding: set by lavc for coded_picture (and set by user for input)\
*
-
encoding: set by lavc for coded_picture (and set by user for input)\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int pict_type;\
int pict_type;\
\
\
/**\
/**\
* presentation timestamp in micro seconds (time when frame should be shown to user)\
* presentation timestamp in micro seconds (time when frame should be shown to user)\
* if 0 then the frame_rate will be used as reference\
* if 0 then the frame_rate will be used as reference\
* encoding: MUST be set by user\
*
-
encoding: MUST be set by user\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
long long int pts;\
long long int pts;\
\
\
/**\
/**\
* picture number in bitstream order.\
* picture number in bitstream order.\
* encoding: set by\
*
-
encoding: set by\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int coded_picture_number;\
int coded_picture_number;\
/**\
/**\
* encoding: set by\
* decoding: set by lavc\
* picture number in display order.\
* picture number in display order.\
* - encoding: set by\
* - decoding: set by lavc\
*/
\
*/
\
int display_picture_number;\
int display_picture_number;\
\
\
/**\
/**\
* quality (between 1 (good) and 31 (bad)) \
* quality (between 1 (good) and 31 (bad)) \
* encoding: set by lavc for coded_picture (and set by user for input)\
*
-
encoding: set by lavc for coded_picture (and set by user for input)\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
float quality; \
float quality; \
\
\
/**\
/**\
* buffer age (1->was last buffer and dint change, 2->..., ...).\
* buffer age (1->was last buffer and dint change, 2->..., ...).\
* set to something large if the buffer has not been used yet \
* set to something large if the buffer has not been used yet \
* encoding: unused\
*
-
encoding: unused\
* decoding: MUST be set by get_buffer()\
*
-
decoding: MUST be set by get_buffer()\
*/
\
*/
\
int age;\
int age;\
\
\
/**\
/**\
* is this picture used as reference\
* is this picture used as reference\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by lavc (before get_buffer() call))\
*
-
decoding: set by lavc (before get_buffer() call))\
*/
\
*/
\
int reference;\
int reference;\
\
\
/**\
/**\
* QP table\
* QP table\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int8_t *qscale_table;\
int8_t *qscale_table;\
/**\
/**\
* QP store stride\
* QP store stride\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int qstride;\
int qstride;\
\
\
/**\
/**\
* mbskip_table[mb]>=1 if MB didnt change\
* mbskip_table[mb]>=1 if MB didnt change\
* stride= mb_width = (width+15)>>4\
* stride= mb_width = (width+15)>>4\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
uint8_t *mbskip_table;\
uint8_t *mbskip_table;\
\
\
/**\
/**\
* for some private data of the user\
* for some private data of the user\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by user\
*
-
decoding: set by user\
*/
\
*/
\
void *opaque;\
void *opaque;\
\
\
/**\
/**\
* error\
* error\
* encoding: set by lavc if flags&CODEC_FLAG_PSNR\
*
-
encoding: set by lavc if flags&CODEC_FLAG_PSNR\
* decoding: unused\
*
-
decoding: unused\
*/
\
*/
\
uint64_t error[4];\
uint64_t error[4];\
\
\
/**\
/**\
* type of the buffer (to keep track of who has to dealloc data[*])\
* type of the buffer (to keep track of who has to dealloc data[*])\
* encoding: set by the one who allocs it\
*
-
encoding: set by the one who allocs it\
* decoding: set by the one who allocs it\
*
-
decoding: set by the one who allocs it\
* Note: user allocated (direct rendering) & internal buffers can not coexist currently\
* Note: user allocated (direct rendering) & internal buffers can not coexist currently\
*/
\
*/
\
int type;\
int type;\
...
@@ -296,8 +299,8 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
...
@@ -296,8 +299,8 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
/**\
/**\
* when decoding, this signal how much the picture must be delayed.\
* when decoding, this signal how much the picture must be delayed.\
* extra_delay = repeat_pict / (2*fps)\
* extra_delay = repeat_pict / (2*fps)\
* encoding: unused\
*
-
encoding: unused\
* decoding: set by lavc\
*
-
decoding: set by lavc\
*/
\
*/
\
int repeat_pict;
int repeat_pict;
...
@@ -322,65 +325,66 @@ typedef struct AVFrame {
...
@@ -322,65 +325,66 @@ typedef struct AVFrame {
*/
*/
typedef
struct
AVCodecContext
{
typedef
struct
AVCodecContext
{
/**
/**
* the average bitrate
* the average bitrate
.
* encoding: set by user. unused for constant quantizer encoding
*
-
encoding: set by user. unused for constant quantizer encoding
* decoding: set by lavc. 0 or some bitrate if this info is available in the stream
*
-
decoding: set by lavc. 0 or some bitrate if this info is available in the stream
*/
*/
int
bit_rate
;
int
bit_rate
;
/**
/**
* number of bits the bitstream is allowed to diverge from the reference
* number of bits the bitstream is allowed to diverge from the reference
.
* the reference can be CBR (for CBR pass1) or VBR (for pass2)
* the reference can be CBR (for CBR pass1) or VBR (for pass2)
* encoding: set by user. unused for constant quantizer encoding
*
-
encoding: set by user. unused for constant quantizer encoding
* decoding: unused
*
-
decoding: unused
*/
*/
int
bit_rate_tolerance
;
int
bit_rate_tolerance
;
/**
/**
* CODEC_FLAG_*
* CODEC_FLAG_*
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: set by user.
*
-
decoding: set by user.
*/
*/
int
flags
;
int
flags
;
/**
/**
* some codecs needs additionnal format info. It is stored here
* some codecs needs additionnal format info. It is stored here
* encoding: set by user.
*
-
encoding: set by user.
* decoding: set by lavc. (FIXME is this ok?)
*
-
decoding: set by lavc. (FIXME is this ok?)
*/
*/
int
sub_id
;
int
sub_id
;
/**
/**
* motion estimation algorithm used for video coding
* motion estimation algorithm used for video coding
.
* encoding: MUST be set by user.
*
-
encoding: MUST be set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
me_method
;
int
me_method
;
/**
/**
* some codecs need / can use extra-data like huffman tables
* some codecs need / can use extra-data like huffman tables
.
* mjpeg: huffman tables
* mjpeg: huffman tables
* rv10: additional flags
* rv10: additional flags
* mpeg4: global headers (they can be in the bitstream or here)
* mpeg4: global headers (they can be in the bitstream or here)
* encoding: set/allocated/freed by lavc.
*
-
encoding: set/allocated/freed by lavc.
* decoding: set/allocated/freed by user.
*
-
decoding: set/allocated/freed by user.
*/
*/
void
*
extradata
;
void
*
extradata
;
int
extradata_size
;
int
extradata_size
;
/* video only */
/* video only */
/**
/**
* frames per sec multiplied by FRAME_RATE_BASE
* frames per sec multiplied by FRAME_RATE_BASE
.
* for variable fps this is the precission, so if the timestamps
* for variable fps this is the precission, so if the timestamps
* can be specified in msec precssion then this is 1000*FRAME_RATE_BASE
* can be specified in msec precssion then this is 1000*FRAME_RATE_BASE
* encoding: MUST be set by user
*
-
encoding: MUST be set by user
* decoding: set by lavc. 0 or the frame_rate if available
*
-
decoding: set by lavc. 0 or the frame_rate if available
*/
*/
int
frame_rate
;
int
frame_rate
;
/**
/**
* encoding: MUST be set by user.
* width / height.
* decoding: set by user, some codecs might override / change it during playback
* - encoding: MUST be set by user.
* - decoding: set by user, some codecs might override / change it during playback
*/
*/
int
width
,
height
;
int
width
,
height
;
...
@@ -392,16 +396,16 @@ typedef struct AVCodecContext {
...
@@ -392,16 +396,16 @@ typedef struct AVCodecContext {
#define FF_ASPECT_EXTENDED 15
#define FF_ASPECT_EXTENDED 15
/**
/**
* the number of pictures in a group of pitures, or 0 for intra_only
* the number of pictures in a group of pitures, or 0 for intra_only
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
gop_size
;
int
gop_size
;
/**
/**
* pixel format, see PIX_FMT_xxx
* pixel format, see PIX_FMT_xxx
.
* encoding: unused
*
-
encoding: unused
* decoding: set by lavc.
*
-
decoding: set by lavc.
*/
*/
enum
PixelFormat
pix_fmt
;
enum
PixelFormat
pix_fmt
;
...
@@ -410,69 +414,68 @@ typedef struct AVCodecContext {
...
@@ -410,69 +414,68 @@ typedef struct AVCodecContext {
* decoder to draw an horizontal band. It improve cache usage. Not
* decoder to draw an horizontal band. It improve cache usage. Not
* all codecs can do that. You must check the codec capabilities
* all codecs can do that. You must check the codec capabilities
* before
* before
* encoding: unused
*
-
encoding: unused
* decoding: set by user.
*
-
decoding: set by user.
*/
*/
void
(
*
draw_horiz_band
)(
struct
AVCodecContext
*
s
,
void
(
*
draw_horiz_band
)(
struct
AVCodecContext
*
s
,
uint8_t
**
src_ptr
,
int
linesize
,
uint8_t
**
src_ptr
,
int
linesize
,
int
y
,
int
width
,
int
height
);
int
y
,
int
width
,
int
height
);
/* audio only */
/* audio only */
int
sample_rate
;
/
*
samples per sec
*/
int
sample_rate
;
/
//<
samples per sec
int
channels
;
int
channels
;
int
sample_fmt
;
/
*
sample format, currenly unused
*/
int
sample_fmt
;
/
//<
sample format, currenly unused
/* the following data should not be initialized */
/* the following data should not be initialized */
int
frame_size
;
/* in samples, initialized when calling 'init' */
int
frame_size
;
///< in samples, initialized when calling 'init'
int
frame_number
;
/* audio or video frame number */
int
frame_number
;
///< audio or video frame number
int
real_pict_num
;
/* returns the real picture number of
int
real_pict_num
;
///< returns the real picture number of previous encoded frame
previous encoded frame */
/**
/**
* number of frames the decoded output will be delayed relative to
* number of frames the decoded output will be delayed relative to
* the encoded input
* the encoded input
.
* encoding: set by lavc.
*
-
encoding: set by lavc.
* decoding: unused
*
-
decoding: unused
*/
*/
int
delay
;
int
delay
;
/* encoding parameters */
/*
-
encoding parameters */
float
qcompress
;
/
*
amount of qscale change between easy & hard scenes (0.0-1.0)
*/
float
qcompress
;
/
//<
amount of qscale change between easy & hard scenes (0.0-1.0)
float
qblur
;
/
*
amount of qscale smoothing over time (0.0-1.0)
*/
float
qblur
;
/
//<
amount of qscale smoothing over time (0.0-1.0)
/**
/**
* minimum quantizer
* minimum quantizer
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
qmin
;
int
qmin
;
/**
/**
* maximum quantizer
* maximum quantizer
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
qmax
;
int
qmax
;
/**
/**
* maximum quantizer difference etween frames
* maximum quantizer difference etween frames
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
max_qdiff
;
int
max_qdiff
;
/**
/**
* maximum number of b frames between non b frames
* maximum number of b frames between non b frames
.
* note: the output will be delayed by max_b_frames+1 relative to the input
* note: the output will be delayed by max_b_frames+1 relative to the input
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
max_b_frames
;
int
max_b_frames
;
/**
/**
* qscale factor between ip and b frames
* qscale factor between ip and b frames
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
b_quant_factor
;
float
b_quant_factor
;
...
@@ -481,8 +484,9 @@ typedef struct AVCodecContext {
...
@@ -481,8 +484,9 @@ typedef struct AVCodecContext {
int
b_frame_strategy
;
int
b_frame_strategy
;
/**
/**
* encoding: unused
* hurry up amount.
* decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too, 5-> skip everything except header
* - encoding: unused
* - decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too, 5-> skip everything except header
*/
*/
int
hurry_up
;
int
hurry_up
;
...
@@ -521,31 +525,31 @@ typedef struct AVCodecContext {
...
@@ -521,31 +525,31 @@ typedef struct AVCodecContext {
int
misc_bits
;
int
misc_bits
;
/**
/**
* number of bits used for the previously encoded frame
* number of bits used for the previously encoded frame
.
* encoding: set by lavc
*
-
encoding: set by lavc
* decoding: - for audio - bits_per_sample
*
-
decoding: - for audio - bits_per_sample
*/
*/
int
frame_bits
;
int
frame_bits
;
/**
/**
* private data of the user, can be used to carry app specific stuff
* private data of the user, can be used to carry app specific stuff
.
* encoding: set by user
*
-
encoding: set by user
* decoding: set by user
*
-
decoding: set by user
*/
*/
void
*
opaque
;
void
*
opaque
;
char
codec_name
[
32
];
char
codec_name
[
32
];
enum
CodecType
codec_type
;
/* see CODEC_TYPE_xxx */
enum
CodecType
codec_type
;
/* see CODEC_TYPE_xxx */
enum
CodecID
codec_id
;
/* see CODEC_ID_xxx */
enum
CodecID
codec_id
;
/* see CODEC_ID_xxx */
unsigned
int
codec_tag
;
/
*
codec tag, only used if unknown codec
*/
unsigned
int
codec_tag
;
/
//<
codec tag, only used if unknown codec
/**
/**
* workaround bugs in encoders which sometimes cannot be detected automatically
* workaround bugs in encoders which sometimes cannot be detected automatically
.
* encoding: unused
*
-
encoding: unused
* decoding: set by user
*
-
decoding: set by user
*/
*/
int
workaround_bugs
;
int
workaround_bugs
;
#define FF_BUG_AUTODETECT 1 //autodetection
#define FF_BUG_AUTODETECT 1 //
/<
autodetection
#define FF_BUG_OLD_MSMPEG4 2
#define FF_BUG_OLD_MSMPEG4 2
#define FF_BUG_XVID_ILACE 4
#define FF_BUG_XVID_ILACE 4
#define FF_BUG_UMP4 8
#define FF_BUG_UMP4 8
...
@@ -558,38 +562,40 @@ typedef struct AVCodecContext {
...
@@ -558,38 +562,40 @@ typedef struct AVCodecContext {
//#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100%
//#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100%
/**
/**
* encoding: set by user
* luma single coeff elimination threshold.
* decoding: unused
* - encoding: set by user
* - decoding: unused
*/
*/
int
luma_elim_threshold
;
int
luma_elim_threshold
;
/**
/**
* encoding: set by user
* chroma single coeff elimination threshold.
* decoding: unused
* - encoding: set by user
* - decoding: unused
*/
*/
int
chroma_elim_threshold
;
int
chroma_elim_threshold
;
/**
/**
* strictly follow the std (MPEG4, ...)
* strictly follow the std (MPEG4, ...)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
int
strict_std_compliance
;
int
strict_std_compliance
;
/**
/**
* qscale offset between ip and b frames
* qscale offset between ip and b frames
.
* if > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
* if > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
* if < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* if < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
b_quant_offset
;
float
b_quant_offset
;
/**
/**
* error resilience higher values will detect more errors but may missdetect
* error resilience higher values will detect more errors but may missdetect
* some more or less valid parts as errors
* some more or less valid parts as errors
.
* encoding: unused
*
-
encoding: unused
* decoding: set by user
*
-
decoding: set by user
*/
*/
int
error_resilience
;
int
error_resilience
;
#define FF_ER_CAREFULL 1
#define FF_ER_CAREFULL 1
...
@@ -600,8 +606,8 @@ typedef struct AVCodecContext {
...
@@ -600,8 +606,8 @@ typedef struct AVCodecContext {
/**
/**
* called at the beginning of each frame to get a buffer for it.
* called at the beginning of each frame to get a buffer for it.
* if pic.reference is set then the frame will be read later by lavc
* if pic.reference is set then the frame will be read later by lavc
* encoding: unused
*
-
encoding: unused
* decoding: set by lavc, user can override
*
-
decoding: set by lavc, user can override
*/
*/
int
(
*
get_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
int
(
*
get_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
...
@@ -609,51 +615,51 @@ typedef struct AVCodecContext {
...
@@ -609,51 +615,51 @@ typedef struct AVCodecContext {
* called to release buffers which where allocated with get_buffer.
* called to release buffers which where allocated with get_buffer.
* a released buffer can be reused in get_buffer()
* a released buffer can be reused in get_buffer()
* pic.data[*] must be set to NULL
* pic.data[*] must be set to NULL
* encoding: unused
*
-
encoding: unused
* decoding: set by lavc, user can override
*
-
decoding: set by lavc, user can override
*/
*/
void
(
*
release_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
void
(
*
release_buffer
)(
struct
AVCodecContext
*
c
,
AVFrame
*
pic
);
/**
/**
* is 1 if the decoded stream contains b frames, 0 otherwise
* is 1 if the decoded stream contains b frames, 0 otherwise
.
* encoding: unused
*
-
encoding: unused
* decoding: set by lavc
*
-
decoding: set by lavc
*/
*/
int
has_b_frames
;
int
has_b_frames
;
int
block_align
;
/
*
used by some WAV based audio codecs
*/
int
block_align
;
/
//<
used by some WAV based audio codecs
int
parse_only
;
/* decoding only: if true, only parsing is done
int
parse_only
;
/*
-
decoding only: if true, only parsing is done
(function avcodec_parse_frame()). The frame
(function avcodec_parse_frame()). The frame
data is returned. Only MPEG codecs support this now. */
data is returned. Only MPEG codecs support this now. */
/**
/**
* 0-> h263 quant 1-> mpeg quant
* 0-> h263 quant 1-> mpeg quant
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
mpeg_quant
;
int
mpeg_quant
;
/**
/**
* pass1 encoding statistics output buffer
* pass1 encoding statistics output buffer
.
* encoding: set by lavc
*
-
encoding: set by lavc
* decoding: unused
*
-
decoding: unused
*/
*/
char
*
stats_out
;
/* encoding statistics output buffer */
char
*
stats_out
;
/**
/**
* pass2 encoding statistics input buffer.
* pass2 encoding statistics input buffer.
* concatenated stuff from stats_out of pass1 should be placed here
* concatenated stuff from stats_out of pass1 should be placed here
* encoding: allocated/set/freed by user
*
-
encoding: allocated/set/freed by user
* decoding: unused
*
-
decoding: unused
*/
*/
char
*
stats_in
;
char
*
stats_in
;
/**
/**
* ratecontrol qmin qmax limiting method
* ratecontrol qmin qmax limiting method
.
* 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax
* 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
rc_qsquish
;
float
rc_qsquish
;
...
@@ -661,69 +667,69 @@ typedef struct AVCodecContext {
...
@@ -661,69 +667,69 @@ typedef struct AVCodecContext {
int
rc_qmod_freq
;
int
rc_qmod_freq
;
/**
/**
* ratecontrol override, see RcOverride
* ratecontrol override, see RcOverride
.
* encoding: allocated/set/freed by user.
*
-
encoding: allocated/set/freed by user.
* decoding: unused
*
-
decoding: unused
*/
*/
RcOverride
*
rc_override
;
RcOverride
*
rc_override
;
int
rc_override_count
;
int
rc_override_count
;
/**
/**
* rate control equation
* rate control equation
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
char
*
rc_eq
;
char
*
rc_eq
;
/**
/**
* maximum bitrate
* maximum bitrate
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
rc_max_rate
;
int
rc_max_rate
;
/**
/**
* minimum bitrate
* minimum bitrate
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
rc_min_rate
;
int
rc_min_rate
;
/**
/**
* decoder bitstream buffer size
* decoder bitstream buffer size
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
rc_buffer_size
;
int
rc_buffer_size
;
float
rc_buffer_aggressivity
;
float
rc_buffer_aggressivity
;
/**
/**
* qscale factor between p and i frames
* qscale factor between p and i frames
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
i_quant_factor
;
float
i_quant_factor
;
/**
/**
* qscale offset between p and i frames
* qscale offset between p and i frames
.
* if > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
* if > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset)
* if < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* if < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
i_quant_offset
;
float
i_quant_offset
;
/**
/**
* initial complexity for pass1 ratecontrol
* initial complexity for pass1 ratecontrol
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
float
rc_initial_cplx
;
float
rc_initial_cplx
;
/**
/**
* dct algorithm, see FF_DCT_* below
* dct algorithm, see FF_DCT_* below
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
int
dct_algo
;
int
dct_algo
;
#define FF_DCT_AUTO 0
#define FF_DCT_AUTO 0
...
@@ -734,52 +740,52 @@ typedef struct AVCodecContext {
...
@@ -734,52 +740,52 @@ typedef struct AVCodecContext {
#define FF_DCT_ALTIVEC 5
#define FF_DCT_ALTIVEC 5
/**
/**
* luminance masking (0-> disabled)
* luminance masking (0-> disabled)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
float
lumi_masking
;
float
lumi_masking
;
/**
/**
* temporary complexity masking (0-> disabled)
* temporary complexity masking (0-> disabled)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
float
temporal_cplx_masking
;
float
temporal_cplx_masking
;
/**
/**
* spatial complexity masking (0-> disabled)
* spatial complexity masking (0-> disabled)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
float
spatial_cplx_masking
;
float
spatial_cplx_masking
;
/**
/**
* p block masking (0-> disabled)
* p block masking (0-> disabled)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
float
p_masking
;
float
p_masking
;
/**
/**
* darkness masking (0-> disabled)
* darkness masking (0-> disabled)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
float
dark_masking
;
float
dark_masking
;
/**
/**
* fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A')
* fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A')
.
* this is used to workaround some encoder bugs
* this is used to workaround some encoder bugs
* encoding: unused
*
-
encoding: unused
* decoding: set by user, will be converted to upper case by lavc during init
*
-
decoding: set by user, will be converted to upper case by lavc during init
*/
*/
int
fourcc
;
int
fourcc
;
/**
/**
* idct algorithm, see FF_IDCT_* below
* idct algorithm, see FF_IDCT_* below
.
* encoding: set by user
*
-
encoding: set by user
* decoding: set by user
*
-
decoding: set by user
*/
*/
int
idct_algo
;
int
idct_algo
;
#define FF_IDCT_AUTO 0
#define FF_IDCT_AUTO 0
...
@@ -793,22 +799,22 @@ typedef struct AVCodecContext {
...
@@ -793,22 +799,22 @@ typedef struct AVCodecContext {
#define FF_IDCT_ALTIVEC 8
#define FF_IDCT_ALTIVEC 8
/**
/**
* slice count
* slice count
.
* encoding: set by lavc
*
-
encoding: set by lavc
* decoding: set by user (or 0)
*
-
decoding: set by user (or 0)
*/
*/
int
slice_count
;
int
slice_count
;
/**
/**
* slice offsets in the frame in bytes
* slice offsets in the frame in bytes
.
* encoding: set/allocated by lavc
*
-
encoding: set/allocated by lavc
* decoding: set/allocated by user (or NULL)
*
-
decoding: set/allocated by user (or NULL)
*/
*/
int
*
slice_offset
;
int
*
slice_offset
;
/**
/**
* error concealment flags
* error concealment flags
.
* encoding: unused
*
-
encoding: unused
* decoding: set by user
*
-
decoding: set by user
*/
*/
int
error_concealment
;
int
error_concealment
;
#define FF_EC_GUESS_MVS 1
#define FF_EC_GUESS_MVS 1
...
@@ -821,16 +827,16 @@ typedef struct AVCodecContext {
...
@@ -821,16 +827,16 @@ typedef struct AVCodecContext {
unsigned
dsp_mask
;
unsigned
dsp_mask
;
/**
/**
* bits per sample/pixel from the demuxer (needed for huffyuv)
* bits per sample/pixel from the demuxer (needed for huffyuv)
.
* encoding: set by lavc
*
-
encoding: set by lavc
* decoding: set by user
*
-
decoding: set by user
*/
*/
int
bits_per_sample
;
int
bits_per_sample
;
/**
/**
* prediction method (needed for huffyuv)
* prediction method (needed for huffyuv)
.
* encoding: set by user
*
-
encoding: set by user
* decoding: unused
*
-
decoding: unused
*/
*/
int
prediction_method
;
int
prediction_method
;
#define FF_PRED_LEFT 0
#define FF_PRED_LEFT 0
...
@@ -838,23 +844,23 @@ typedef struct AVCodecContext {
...
@@ -838,23 +844,23 @@ typedef struct AVCodecContext {
#define FF_PRED_MEDIAN 2
#define FF_PRED_MEDIAN 2
/**
/**
* aspect ratio
.
(0 if unknown)
* aspect ratio (0 if unknown)
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: set by lavc.
*
-
decoding: set by lavc.
*/
*/
float
aspect_ratio
;
float
aspect_ratio
;
/**
/**
* the picture in the bitstream
* the picture in the bitstream
.
* encoding: set by lavc
*
-
encoding: set by lavc
* decoding: set by lavc
*
-
decoding: set by lavc
*/
*/
AVFrame
*
coded_frame
;
AVFrame
*
coded_frame
;
/**
/**
* debug
* debug
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: set by user.
*
-
decoding: set by user.
*/
*/
int
debug
;
int
debug
;
#define FF_DEBUG_PICT_INFO 1
#define FF_DEBUG_PICT_INFO 1
...
@@ -869,42 +875,42 @@ typedef struct AVCodecContext {
...
@@ -869,42 +875,42 @@ typedef struct AVCodecContext {
#define FF_DEBUG_PTS 0x00000200
#define FF_DEBUG_PTS 0x00000200
/**
/**
* error
* error
.
* encoding: set by lavc if flags&CODEC_FLAG_PSNR
*
-
encoding: set by lavc if flags&CODEC_FLAG_PSNR
* decoding: unused
*
-
decoding: unused
*/
*/
uint64_t
error
[
4
];
uint64_t
error
[
4
];
/**
/**
* minimum MB quantizer
* minimum MB quantizer
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
mb_qmin
;
int
mb_qmin
;
/**
/**
* maximum MB quantizer
* maximum MB quantizer
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
mb_qmax
;
int
mb_qmax
;
/**
/**
* motion estimation compare function
* motion estimation compare function
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
me_cmp
;
int
me_cmp
;
/**
/**
* subpixel motion estimation compare function
* subpixel motion estimation compare function
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
me_sub_cmp
;
int
me_sub_cmp
;
/**
/**
* macroblock compare function (not supported yet)
* macroblock compare function (not supported yet)
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
mb_cmp
;
int
mb_cmp
;
#define FF_CMP_SAD 0
#define FF_CMP_SAD 0
...
@@ -918,55 +924,55 @@ typedef struct AVCodecContext {
...
@@ -918,55 +924,55 @@ typedef struct AVCodecContext {
#define FF_CMP_CHROMA 256
#define FF_CMP_CHROMA 256
/**
/**
* ME diamond size & shape
* ME diamond size & shape
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
dia_size
;
int
dia_size
;
/**
/**
* amount of previous MV predictors (2a+1 x 2a+1 square)
* amount of previous MV predictors (2a+1 x 2a+1 square)
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
last_predictor_count
;
int
last_predictor_count
;
/**
/**
* pre pass for motion estimation
* pre pass for motion estimation
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
pre_me
;
int
pre_me
;
/**
/**
* motion estimation pre pass compare function
* motion estimation pre pass compare function
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
me_pre_cmp
;
int
me_pre_cmp
;
/**
/**
* ME pre pass diamond size & shape
* ME pre pass diamond size & shape
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
pre_dia_size
;
int
pre_dia_size
;
/**
/**
* subpel ME quality
* subpel ME quality
.
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused
*
-
decoding: unused
*/
*/
int
me_subpel_quality
;
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,
* @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
* its terminated by -1 as 0 is a valid format, the formats are ordered by quality
* the first is allways the native one
* the first is allways the native one
* @return the choosen format
* @return the choosen format
* encoding: unused
*
-
encoding: unused
* decoding: set by user, if not set then the native format will always be choosen
*
-
decoding: set by user, if not set then the native format will always be choosen
*/
*/
enum
PixelFormat
(
*
get_format
)(
struct
AVCodecContext
*
s
,
enum
PixelFormat
*
fmt
);
enum
PixelFormat
(
*
get_format
)(
struct
AVCodecContext
*
s
,
enum
PixelFormat
*
fmt
);
...
@@ -975,8 +981,8 @@ typedef struct AVCodecContext {
...
@@ -975,8 +981,8 @@ typedef struct AVCodecContext {
* information only used in DVB MPEG2 transport streams). 0 if
* information only used in DVB MPEG2 transport streams). 0 if
* not set.
* not set.
*
*
* encoding: unused.
*
-
encoding: unused.
* decoding: set by decoder
*
-
decoding: set by decoder
*/
*/
int
dtg_active_format
;
int
dtg_active_format
;
#define FF_DTG_AFD_SAME 8
#define FF_DTG_AFD_SAME 8
...
@@ -992,14 +998,17 @@ typedef struct AVCodecContext {
...
@@ -992,14 +998,17 @@ typedef struct AVCodecContext {
* Maximum motion estimation search range in subpel units.
* Maximum motion estimation search range in subpel units.
* if 0 then no limit
* if 0 then no limit
*
*
* encoding: set by user.
*
-
encoding: set by user.
* decoding: unused.
*
-
decoding: unused.
*/
*/
}
AVCodecContext
;
}
AVCodecContext
;
//void avcodec_getopt(AVCodecContext* avctx, const char* str, avc_config_t** config);
//void avcodec_getopt(AVCodecContext* avctx, const char* str, avc_config_t** config);
/**
* AVOption.
*/
typedef
struct
AVOption
{
typedef
struct
AVOption
{
/** options' name */
/** options' name */
const
char
*
name
;
/* if name is NULL, it indicates a link to next */
const
char
*
name
;
/* if name is NULL, it indicates a link to next */
...
@@ -1009,11 +1018,11 @@ typedef struct AVOption {
...
@@ -1009,11 +1018,11 @@ typedef struct AVOption {
int
offset
;
int
offset
;
/** options' type */
/** options' type */
int
type
;
int
type
;
#define FF_OPT_TYPE_BOOL 1 // boolean - true,1,on (or simply presence)
#define FF_OPT_TYPE_BOOL 1
//
/<
boolean - true,1,on (or simply presence)
#define FF_OPT_TYPE_DOUBLE 2 // double
#define FF_OPT_TYPE_DOUBLE 2
//
/<
double
#define FF_OPT_TYPE_INT 3 // integer
#define FF_OPT_TYPE_INT 3
//
/<
integer
#define FF_OPT_TYPE_STRING 4 // string (finished with \0)
#define FF_OPT_TYPE_STRING 4
//
/<
string (finished with \0)
#define FF_OPT_TYPE_MASK 0x1f // mask for types - upper bits are various flags
#define FF_OPT_TYPE_MASK 0x1f //
/<
mask for types - upper bits are various flags
//#define FF_OPT_TYPE_EXPERT 0x20 // flag for expert option
//#define FF_OPT_TYPE_EXPERT 0x20 // flag for expert option
#define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40)
#define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40)
#define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80)
#define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80)
...
@@ -1034,6 +1043,9 @@ typedef struct AVOption {
...
@@ -1034,6 +1043,9 @@ typedef struct AVOption {
#define FF_OPT_MAX_DEPTH 10
#define FF_OPT_MAX_DEPTH 10
}
AVOption
;
}
AVOption
;
/**
* AVCodec.
*/
typedef
struct
AVCodec
{
typedef
struct
AVCodec
{
const
char
*
name
;
const
char
*
name
;
int
type
;
int
type
;
...
@@ -1227,7 +1239,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx);
...
@@ -1227,7 +1239,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx);
*/
*/
typedef
struct
{
typedef
struct
{
// compressed size used from given memory buffer
//
/
compressed size used from given memory buffer
int
size
;
int
size
;
/// I/P/B frame type
/// I/P/B frame type
int
frame_type
;
int
frame_type
;
...
...
This diff is collapsed.
Click to expand it.
libavcodec/common.h
+
1
−
1
View file @
64863965
...
@@ -263,7 +263,7 @@ static inline int get_bits_count(GetBitContext *s);
...
@@ -263,7 +263,7 @@ static inline int get_bits_count(GetBitContext *s);
typedef
struct
VLC
{
typedef
struct
VLC
{
int
bits
;
int
bits
;
VLC_TYPE
(
*
table
)[
2
];
// code, bits
VLC_TYPE
(
*
table
)[
2
];
//
/<
code, bits
int
table_size
,
table_allocated
;
int
table_size
,
table_allocated
;
}
VLC
;
}
VLC
;
...
...
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