Skip to content
Snippets Groups Projects
Commit 64863965 authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

more cosmetics so that doxygen output is readable ...

Originally committed as revision 1640 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent a1adf436
No related merge requests found
...@@ -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;
......
...@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment