Mercurial > libavcodec.hg
changeset 1112:54be6aece1be libavcodec
more cosmetics so that doxygen output is readable ...
author | michaelni |
---|---|
date | Thu, 06 Mar 2003 15:56:56 +0000 |
parents | 54dc72414a69 |
children | bbcb4fda2b86 |
files | avcodec.h common.h |
diffstat | 2 files changed, 303 insertions(+), 291 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Thu Mar 06 14:42:07 2003 +0000 +++ b/avcodec.h Thu Mar 06 15:56:56 2003 +0000 @@ -70,28 +70,31 @@ CODEC_TYPE_AUDIO, }; +/** + * Pixel format. + */ enum PixelFormat { PIX_FMT_YUV420P, PIX_FMT_YUV422, - PIX_FMT_RGB24, /* 3 bytes, R is first */ - PIX_FMT_BGR24, /* 3 bytes, B is first */ + PIX_FMT_RGB24, ///< 3 bytes, R is first + PIX_FMT_BGR24, ///< 3 bytes, B is first PIX_FMT_YUV422P, PIX_FMT_YUV444P, - PIX_FMT_RGBA32, /* always stored in cpu endianness */ + PIX_FMT_RGBA32, ///< always stored in cpu endianness PIX_FMT_YUV410P, PIX_FMT_YUV411P, - PIX_FMT_RGB565, /* always stored in cpu endianness */ - PIX_FMT_RGB555, /* always stored in cpu endianness, most significant bit to 1 */ + PIX_FMT_RGB565, ///< always stored in cpu endianness + PIX_FMT_RGB555, ///< always stored in cpu endianness, most significant bit to 1 PIX_FMT_GRAY8, - PIX_FMT_MONOWHITE, /* 0 is white */ - PIX_FMT_MONOBLACK, /* 0 is black */ - PIX_FMT_PAL8, /* 8 bit with RGBA palette */ + PIX_FMT_MONOWHITE, ///< 0 is white + PIX_FMT_MONOBLACK, ///< 0 is black + PIX_FMT_PAL8, ///< 8 bit with RGBA palette PIX_FMT_NB, }; /* currently unused, may be used if 24/32 bits samples ever supported */ enum SampleFormat { - SAMPLE_FMT_S16 = 0, /* signed 16 bits */ + SAMPLE_FMT_S16 = 0, ///< signed 16 bits }; /* in bytes */ @@ -135,33 +138,33 @@ Note: note not everything is supported yet */ -#define CODEC_FLAG_HQ 0x0001 /* brute force MB-type decission mode (slow) */ -#define CODEC_FLAG_QSCALE 0x0002 /* use fixed qscale */ -#define CODEC_FLAG_4MV 0x0004 /* 4 MV per MB allowed */ -#define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */ -#define CODEC_FLAG_GMC 0x0020 /* use GMC */ -#define CODEC_FLAG_PART 0x0080 /* use data partitioning */ +#define CODEC_FLAG_HQ 0x0001 ///< brute force MB-type decission mode (slow) +#define CODEC_FLAG_QSCALE 0x0002 ///< use fixed qscale +#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed +#define CODEC_FLAG_QPEL 0x0010 ///< use qpel MC +#define CODEC_FLAG_GMC 0x0020 ///< use GMC +#define CODEC_FLAG_PART 0x0080 ///< use data partitioning /* 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 */ #define CODEC_FLAG_INPUT_PRESERVED 0x0100 -#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_EXTERN_HUFF 0x1000 /* use external huffman table (for mjpeg) */ -#define CODEC_FLAG_GRAY 0x2000 /* only decode/encode grayscale */ -#define CODEC_FLAG_EMU_EDGE 0x4000/* dont draw edges */ -#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_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_EXTERN_HUFF 0x1000 ///< use external huffman table (for mjpeg) +#define CODEC_FLAG_GRAY 0x2000 ///< only decode/encode grayscale +#define CODEC_FLAG_EMU_EDGE 0x4000///< dont draw edges +#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 of only at frame boundaries */ -#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 /* normalize adaptive quantization */ -#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_ALT_SCAN 0x00100000 /* use alternate scan */ -#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_BITEXACT 0x00800000 /* use only bitexact stuff (except (i)dct) */ +#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///< normalize adaptive quantization +#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_ALT_SCAN 0x00100000 ///< use alternate scan +#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_BITEXACT 0x00800000 ///< use only bitexact stuff (except (i)dct) /* Fx : Flag for h263+ extra options */ -#define CODEC_FLAG_H263P_AIC 0x01000000 /* Advanced intra coding */ -#define CODEC_FLAG_H263P_UMV 0x02000000 /* Unlimited motion vector */ +#define CODEC_FLAG_H263P_AIC 0x01000000 ///< Advanced intra coding +#define CODEC_FLAG_H263P_UMV 0x02000000 ///< Unlimited motion vector /* For advanced prediction mode, we reuse the 4MV flag */ /* Unsupported options : * Syntax Arithmetic coding (SAC) @@ -174,8 +177,8 @@ /* /Fx */ /* codec capabilities */ -#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_DRAW_HORIZ_BAND 0x0001 ///< decoder can use draw_horiz_band callback +#define CODEC_CAP_DR1 0x0002 ///< direct rendering method 1 /* if 'parse_only' field is true, then avcodec_parse_frame() can be used */ #define CODEC_CAP_PARSE_ONLY 0x0004 @@ -189,106 +192,106 @@ /**\ * 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\ - * encoding: \ - * decoding: \ + * - encoding: \ + * - decoding: \ */\ uint8_t *base[4];\ /**\ * 1 -> keyframe, 0-> not\ - * encoding: set by lavc\ - * decoding: set by lavc\ + * - encoding: set by lavc\ + * - decoding: set by lavc\ */\ int key_frame;\ \ /**\ * picture type of the frame, see ?_TYPE below\ - * encoding: set by lavc for coded_picture (and set by user for input)\ - * decoding: set by lavc\ + * - encoding: set by lavc for coded_picture (and set by user for input)\ + * - decoding: set by lavc\ */\ int pict_type;\ \ /**\ * presentation timestamp in micro seconds (time when frame should be shown to user)\ * if 0 then the frame_rate will be used as reference\ - * encoding: MUST be set by user\ - * decoding: set by lavc\ + * - encoding: MUST be set by user\ + * - decoding: set by lavc\ */\ long long int pts;\ \ /**\ * picture number in bitstream order.\ - * encoding: set by\ - * decoding: set by lavc\ + * - encoding: set by\ + * - decoding: set by lavc\ */\ int coded_picture_number;\ /**\ - * encoding: set by\ - * decoding: set by lavc\ * picture number in display order.\ + * - encoding: set by\ + * - decoding: set by lavc\ */\ int display_picture_number;\ \ /**\ * quality (between 1 (good) and 31 (bad)) \ - * encoding: set by lavc for coded_picture (and set by user for input)\ - * decoding: set by lavc\ + * - encoding: set by lavc for coded_picture (and set by user for input)\ + * - decoding: set by lavc\ */\ float quality; \ \ /**\ * buffer age (1->was last buffer and dint change, 2->..., ...).\ * set to something large if the buffer has not been used yet \ - * encoding: unused\ - * decoding: MUST be set by get_buffer()\ + * - encoding: unused\ + * - decoding: MUST be set by get_buffer()\ */\ int age;\ \ /**\ * is this picture used as reference\ - * encoding: unused\ - * decoding: set by lavc (before get_buffer() call))\ + * - encoding: unused\ + * - decoding: set by lavc (before get_buffer() call))\ */\ int reference;\ \ /**\ * QP table\ - * encoding: unused\ - * decoding: set by lavc\ + * - encoding: unused\ + * - decoding: set by lavc\ */\ int8_t *qscale_table;\ /**\ * QP store stride\ - * encoding: unused\ - * decoding: set by lavc\ + * - encoding: unused\ + * - decoding: set by lavc\ */\ int qstride;\ \ /**\ * mbskip_table[mb]>=1 if MB didnt change\ * stride= mb_width = (width+15)>>4\ - * encoding: unused\ - * decoding: set by lavc\ + * - encoding: unused\ + * - decoding: set by lavc\ */\ uint8_t *mbskip_table;\ \ /**\ * for some private data of the user\ - * encoding: unused\ - * decoding: set by user\ + * - encoding: unused\ + * - decoding: set by user\ */\ void *opaque;\ \ /**\ * error\ - * encoding: set by lavc if flags&CODEC_FLAG_PSNR\ - * decoding: unused\ + * - encoding: set by lavc 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: set by the one who allocs it\ - * decoding: set by the one who allocs it\ + * - encoding: 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\ */\ int type;\ @@ -296,8 +299,8 @@ /**\ * when decoding, this signal how much the picture must be delayed.\ * extra_delay = repeat_pict / (2*fps)\ - * encoding: unused\ - * decoding: set by lavc\ + * - encoding: unused\ + * - decoding: set by lavc\ */\ int repeat_pict; @@ -322,65 +325,66 @@ */ typedef struct AVCodecContext { /** - * the average bitrate - * 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 + * the average bitrate. + * - 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 */ 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) - * encoding: set by user. unused for constant quantizer encoding - * decoding: unused + * - encoding: set by user. unused for constant quantizer encoding + * - decoding: unused */ int bit_rate_tolerance; /** - * CODEC_FLAG_* - * encoding: set by user. - * decoding: set by user. + * CODEC_FLAG_*. + * - encoding: set by user. + * - decoding: set by user. */ int flags; /** * some codecs needs additionnal format info. It is stored here - * encoding: set by user. - * decoding: set by lavc. (FIXME is this ok?) + * - encoding: set by user. + * - decoding: set by lavc. (FIXME is this ok?) */ int sub_id; /** - * motion estimation algorithm used for video coding - * encoding: MUST be set by user. - * decoding: unused + * motion estimation algorithm used for video coding. + * - encoding: MUST be set by user. + * - decoding: unused */ 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 * rv10: additional flags * mpeg4: global headers (they can be in the bitstream or here) - * encoding: set/allocated/freed by lavc. - * decoding: set/allocated/freed by user. + * - encoding: set/allocated/freed by lavc. + * - decoding: set/allocated/freed by user. */ void *extradata; int extradata_size; /* 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 * can be specified in msec precssion then this is 1000*FRAME_RATE_BASE - * encoding: MUST be set by user - * decoding: set by lavc. 0 or the frame_rate if available + * - encoding: MUST be set by user + * - decoding: set by lavc. 0 or the frame_rate if available */ int frame_rate; /** - * encoding: MUST be set by user. - * decoding: set by user, some codecs might override / change it during playback + * width / height. + * - encoding: MUST be set by user. + * - decoding: set by user, some codecs might override / change it during playback */ int width, height; @@ -392,16 +396,16 @@ #define FF_ASPECT_EXTENDED 15 /** - * the number of pictures in a group of pitures, or 0 for intra_only - * encoding: set by user. - * decoding: unused + * the number of pictures in a group of pitures, or 0 for intra_only. + * - encoding: set by user. + * - decoding: unused */ int gop_size; /** - * pixel format, see PIX_FMT_xxx - * encoding: unused - * decoding: set by lavc. + * pixel format, see PIX_FMT_xxx. + * - encoding: unused + * - decoding: set by lavc. */ enum PixelFormat pix_fmt; @@ -410,69 +414,68 @@ * decoder to draw an horizontal band. It improve cache usage. Not * all codecs can do that. You must check the codec capabilities * before - * encoding: unused - * decoding: set by user. + * - encoding: unused + * - decoding: set by user. */ void (*draw_horiz_band)(struct AVCodecContext *s, uint8_t **src_ptr, int linesize, int y, int width, int height); /* audio only */ - int sample_rate; /* samples per sec */ + int sample_rate; ///< samples per sec int channels; - int sample_fmt; /* sample format, currenly unused */ + int sample_fmt; ///< sample format, currenly unused /* the following data should not be initialized */ - int frame_size; /* in samples, initialized when calling 'init' */ - int frame_number; /* audio or video frame number */ - int real_pict_num; /* returns the real picture number of - previous encoded frame */ + int frame_size; ///< in samples, initialized when calling 'init' + int frame_number; ///< audio or video frame number + int real_pict_num; ///< returns the real picture number of previous encoded frame /** * number of frames the decoded output will be delayed relative to - * the encoded input - * encoding: set by lavc. - * decoding: unused + * the encoded input. + * - encoding: set by lavc. + * - decoding: unused */ int delay; - /* encoding parameters */ - 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) */ + /* - encoding parameters */ + 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) /** - * minimum quantizer - * encoding: set by user. - * decoding: unused + * minimum quantizer. + * - encoding: set by user. + * - decoding: unused */ int qmin; /** - * maximum quantizer - * encoding: set by user. - * decoding: unused + * maximum quantizer. + * - encoding: set by user. + * - decoding: unused */ int qmax; /** - * maximum quantizer difference etween frames - * encoding: set by user. - * decoding: unused + * maximum quantizer difference etween frames. + * - encoding: set by user. + * - decoding: unused */ 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 - * encoding: set by user. - * decoding: unused + * - encoding: set by user. + * - decoding: unused */ int max_b_frames; /** - * qscale factor between ip and b frames - * encoding: set by user. - * decoding: unused + * qscale factor between ip and b frames. + * - encoding: set by user. + * - decoding: unused */ float b_quant_factor; @@ -481,8 +484,9 @@ int b_frame_strategy; /** - * encoding: unused - * decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too, 5-> skip everything except header + * hurry up amount. + * - encoding: unused + * - decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too, 5-> skip everything except header */ int hurry_up; @@ -521,31 +525,31 @@ int misc_bits; /** - * number of bits used for the previously encoded frame - * encoding: set by lavc - * decoding: - for audio - bits_per_sample + * number of bits used for the previously encoded frame. + * - encoding: set by lavc + * - decoding: - for audio - bits_per_sample */ int frame_bits; /** - * private data of the user, can be used to carry app specific stuff - * encoding: set by user - * decoding: set by user + * private data of the user, can be used to carry app specific stuff. + * - encoding: set by user + * - decoding: set by user */ void *opaque; char codec_name[32]; enum CodecType codec_type; /* see CODEC_TYPE_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 - * encoding: unused - * decoding: set by user + * workaround bugs in encoders which sometimes cannot be detected automatically. + * - encoding: unused + * - decoding: set by user */ int workaround_bugs; -#define FF_BUG_AUTODETECT 1 //autodetection +#define FF_BUG_AUTODETECT 1 ///< autodetection #define FF_BUG_OLD_MSMPEG4 2 #define FF_BUG_XVID_ILACE 4 #define FF_BUG_UMP4 8 @@ -558,38 +562,40 @@ //#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100% /** - * encoding: set by user - * decoding: unused + * luma single coeff elimination threshold. + * - encoding: set by user + * - decoding: unused */ int luma_elim_threshold; /** - * encoding: set by user - * decoding: unused + * chroma single coeff elimination threshold. + * - encoding: set by user + * - decoding: unused */ int chroma_elim_threshold; /** - * strictly follow the std (MPEG4, ...) - * encoding: set by user - * decoding: unused + * strictly follow the std (MPEG4, ...). + * - encoding: set by user + * - decoding: unused */ 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 normal ratecontrol will be done (q= -normal_q*factor+offset) - * encoding: set by user. - * decoding: unused + * - encoding: set by user. + * - decoding: unused */ float b_quant_offset; /** * error resilience higher values will detect more errors but may missdetect - * some more or less valid parts as errors - * encoding: unused - * decoding: set by user + * some more or less valid parts as errors. + * - encoding: unused + * - decoding: set by user */ int error_resilience; #define FF_ER_CAREFULL 1 @@ -600,8 +606,8 @@ /** * 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 - * encoding: unused - * decoding: set by lavc, user can override + * - encoding: unused + * - decoding: set by lavc, user can override */ int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic); @@ -609,51 +615,51 @@ * called 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: set by lavc, user can override + * - encoding: unused + * - decoding: set by lavc, user can override */ void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic); /** - * is 1 if the decoded stream contains b frames, 0 otherwise - * encoding: unused - * decoding: set by lavc + * is 1 if the decoded stream contains b frames, 0 otherwise. + * - encoding: unused + * - decoding: set by lavc */ 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 data is returned. Only MPEG codecs support this now. */ /** - * 0-> h263 quant 1-> mpeg quant - * encoding: set by user. - * decoding: unused + * 0-> h263 quant 1-> mpeg quant. + * - encoding: set by user. + * - decoding: unused */ int mpeg_quant; /** - * pass1 encoding statistics output buffer - * encoding: set by lavc - * decoding: unused + * pass1 encoding statistics output buffer. + * - encoding: set by lavc + * - decoding: unused */ - char *stats_out; /* encoding statistics output buffer */ + char *stats_out; /** * pass2 encoding statistics input buffer. * concatenated stuff from stats_out of pass1 should be placed here - * encoding: allocated/set/freed by user - * decoding: unused + * - encoding: allocated/set/freed by user + * - decoding: unused */ 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 - * encoding: set by user. - * decoding: unused + * - encoding: set by user. + * - decoding: unused */ float rc_qsquish; @@ -661,69 +667,69 @@ int rc_qmod_freq; /** - * ratecontrol override, see RcOverride - * encoding: allocated/set/freed by user. - * decoding: unused + * ratecontrol override, see RcOverride. + * - encoding: allocated/set/freed by user. + * - decoding: unused */ RcOverride *rc_override; int rc_override_count; /** - * rate control equation - * encoding: set by user - * decoding: unused + * rate control equation. + * - encoding: set by user + * - decoding: unused */ char *rc_eq; /** - * maximum bitrate - * encoding: set by user. - * decoding: unused + * maximum bitrate. + * - encoding: set by user. + * - decoding: unused */ int rc_max_rate; /** - * minimum bitrate - * encoding: set by user. - * decoding: unused + * minimum bitrate. + * - encoding: set by user. + * - decoding: unused */ int rc_min_rate; /** - * decoder bitstream buffer size - * encoding: set by user. - * decoding: unused + * decoder bitstream buffer size. + * - encoding: set by user. + * - decoding: unused */ int rc_buffer_size; float rc_buffer_aggressivity; /** - * qscale factor between p and i frames - * encoding: set by user. - * decoding: unused + * qscale factor between p and i frames. + * - encoding: set by user. + * - decoding: unused */ 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 normal ratecontrol will be done (q= -normal_q*factor+offset) - * encoding: set by user. - * decoding: unused + * - encoding: set by user. + * - decoding: unused */ float i_quant_offset; /** - * initial complexity for pass1 ratecontrol - * encoding: set by user. - * decoding: unused + * initial complexity for pass1 ratecontrol. + * - encoding: set by user. + * - decoding: unused */ float rc_initial_cplx; /** - * dct algorithm, see FF_DCT_* below - * encoding: set by user - * decoding: unused + * dct algorithm, see FF_DCT_* below. + * - encoding: set by user + * - decoding: unused */ int dct_algo; #define FF_DCT_AUTO 0 @@ -734,52 +740,52 @@ #define FF_DCT_ALTIVEC 5 /** - * luminance masking (0-> disabled) - * encoding: set by user - * decoding: unused + * luminance masking (0-> disabled). + * - encoding: set by user + * - decoding: unused */ float lumi_masking; /** - * temporary complexity masking (0-> disabled) - * encoding: set by user - * decoding: unused + * temporary complexity masking (0-> disabled). + * - encoding: set by user + * - decoding: unused */ float temporal_cplx_masking; /** - * spatial complexity masking (0-> disabled) - * encoding: set by user - * decoding: unused + * spatial complexity masking (0-> disabled). + * - encoding: set by user + * - decoding: unused */ float spatial_cplx_masking; /** - * p block masking (0-> disabled) - * encoding: set by user - * decoding: unused + * p block masking (0-> disabled). + * - encoding: set by user + * - decoding: unused */ float p_masking; /** - * darkness masking (0-> disabled) - * encoding: set by user - * decoding: unused + * darkness masking (0-> disabled). + * - encoding: set by user + * - decoding: unused */ 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 - * encoding: unused - * decoding: set by user, will be converted to upper case by lavc during init + * - encoding: unused + * - decoding: set by user, will be converted to upper case by lavc during init */ int fourcc; /** - * idct algorithm, see FF_IDCT_* below - * encoding: set by user - * decoding: set by user + * idct algorithm, see FF_IDCT_* below. + * - encoding: set by user + * - decoding: set by user */ int idct_algo; #define FF_IDCT_AUTO 0 @@ -793,22 +799,22 @@ #define FF_IDCT_ALTIVEC 8 /** - * slice count - * encoding: set by lavc - * decoding: set by user (or 0) + * slice count. + * - encoding: set by lavc + * - decoding: set by user (or 0) */ int slice_count; /** - * slice offsets in the frame in bytes - * encoding: set/allocated by lavc - * decoding: set/allocated by user (or NULL) + * slice offsets in the frame in bytes. + * - encoding: set/allocated by lavc + * - decoding: set/allocated by user (or NULL) */ int *slice_offset; /** - * error concealment flags - * encoding: unused - * decoding: set by user + * error concealment flags. + * - encoding: unused + * - decoding: set by user */ int error_concealment; #define FF_EC_GUESS_MVS 1 @@ -821,16 +827,16 @@ unsigned dsp_mask; /** - * bits per sample/pixel from the demuxer (needed for huffyuv) - * encoding: set by lavc - * decoding: set by user + * bits per sample/pixel from the demuxer (needed for huffyuv). + * - encoding: set by lavc + * - decoding: set by user */ int bits_per_sample; /** - * prediction method (needed for huffyuv) - * encoding: set by user - * decoding: unused + * prediction method (needed for huffyuv). + * - encoding: set by user + * - decoding: unused */ int prediction_method; #define FF_PRED_LEFT 0 @@ -838,23 +844,23 @@ #define FF_PRED_MEDIAN 2 /** - * aspect ratio. (0 if unknown) - * encoding: set by user. - * decoding: set by lavc. + * aspect ratio (0 if unknown). + * - encoding: set by user. + * - decoding: set by lavc. */ float aspect_ratio; /** - * the picture in the bitstream - * encoding: set by lavc - * decoding: set by lavc + * the picture in the bitstream. + * - encoding: set by lavc + * - decoding: set by lavc */ AVFrame *coded_frame; /** - * debug - * encoding: set by user. - * decoding: set by user. + * debug. + * - encoding: set by user. + * - decoding: set by user. */ int debug; #define FF_DEBUG_PICT_INFO 1 @@ -869,42 +875,42 @@ #define FF_DEBUG_PTS 0x00000200 /** - * error - * encoding: set by lavc if flags&CODEC_FLAG_PSNR - * decoding: unused + * error. + * - encoding: set by lavc if flags&CODEC_FLAG_PSNR + * - decoding: unused */ uint64_t error[4]; /** - * minimum MB quantizer - * encoding: set by user. - * decoding: unused + * minimum MB quantizer. + * - encoding: set by user. + * - decoding: unused */ int mb_qmin; /** - * maximum MB quantizer - * encoding: set by user. - * decoding: unused + * maximum MB quantizer. + * - encoding: set by user. + * - decoding: unused */ int mb_qmax; /** - * motion estimation compare function - * encoding: set by user. - * decoding: unused + * motion estimation compare function. + * - encoding: set by user. + * - decoding: unused */ int me_cmp; /** - * subpixel motion estimation compare function - * encoding: set by user. - * decoding: unused + * subpixel motion estimation compare function. + * - encoding: set by user. + * - decoding: unused */ int me_sub_cmp; /** - * macroblock compare function (not supported yet) - * encoding: set by user. - * decoding: unused + * macroblock compare function (not supported yet). + * - encoding: set by user. + * - decoding: unused */ int mb_cmp; #define FF_CMP_SAD 0 @@ -918,55 +924,55 @@ #define FF_CMP_CHROMA 256 /** - * ME diamond size & shape - * encoding: set by user. - * decoding: unused + * ME diamond size & shape. + * - encoding: set by user. + * - decoding: unused */ int dia_size; /** - * amount of previous MV predictors (2a+1 x 2a+1 square) - * encoding: set by user. - * decoding: unused + * amount of previous MV predictors (2a+1 x 2a+1 square). + * - encoding: set by user. + * - decoding: unused */ int last_predictor_count; /** - * pre pass for motion estimation - * encoding: set by user. - * decoding: unused + * pre pass for motion estimation. + * - encoding: set by user. + * - decoding: unused */ int pre_me; /** - * motion estimation pre pass compare function - * encoding: set by user. - * decoding: unused + * motion estimation pre pass compare function. + * - encoding: set by user. + * - decoding: unused */ int me_pre_cmp; /** - * ME pre pass diamond size & shape - * encoding: set by user. - * decoding: unused + * ME pre pass diamond size & shape. + * - encoding: set by user. + * - decoding: unused */ int pre_dia_size; /** - * subpel ME quality - * encoding: set by user. - * decoding: unused + * subpel ME quality. + * - encoding: set 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 * the first is allways the native one * @return the choosen format - * encoding: unused - * decoding: set by user, if not set then the native format will always be choosen + * - encoding: unused + * - 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); @@ -975,8 +981,8 @@ * information only used in DVB MPEG2 transport streams). 0 if * not set. * - * encoding: unused. - * decoding: set by decoder + * - encoding: unused. + * - decoding: set by decoder */ int dtg_active_format; #define FF_DTG_AFD_SAME 8 @@ -992,14 +998,17 @@ * Maximum motion estimation search range in subpel units. * if 0 then no limit * - * encoding: set by user. - * decoding: unused. + * - encoding: set by user. + * - decoding: unused. */ } AVCodecContext; //void avcodec_getopt(AVCodecContext* avctx, const char* str, avc_config_t** config); +/** + * AVOption. + */ typedef struct AVOption { /** options' name */ const char *name; /* if name is NULL, it indicates a link to next */ @@ -1009,11 +1018,11 @@ int offset; /** options' type */ int type; -#define FF_OPT_TYPE_BOOL 1 // boolean - true,1,on (or simply presence) -#define FF_OPT_TYPE_DOUBLE 2 // double -#define FF_OPT_TYPE_INT 3 // integer -#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_BOOL 1 ///< boolean - true,1,on (or simply presence) +#define FF_OPT_TYPE_DOUBLE 2 ///< double +#define FF_OPT_TYPE_INT 3 ///< integer +#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_EXPERT 0x20 // flag for expert option #define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40) #define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80) @@ -1034,6 +1043,9 @@ #define FF_OPT_MAX_DEPTH 10 } AVOption; +/** + * AVCodec. + */ typedef struct AVCodec { const char *name; int type; @@ -1227,7 +1239,7 @@ */ typedef struct { - // compressed size used from given memory buffer + /// compressed size used from given memory buffer int size; /// I/P/B frame type int frame_type;