Mercurial > libavcodec.hg
comparison avcodec.h @ 690:a1c69cb685b3 libavcodec
adaptive quantization (lumi/temporal & spatial complexity masking)
author | michaelni |
---|---|
date | Mon, 23 Sep 2002 14:56:11 +0000 |
parents | 83d2c9d50d7d |
children | b6a7ff92df57 |
comparison
equal
deleted
inserted
replaced
689:efcbfbd18864 | 690:a1c69cb685b3 |
---|---|
3 | 3 |
4 #include "common.h" | 4 #include "common.h" |
5 | 5 |
6 #define LIBAVCODEC_VERSION_INT 0x000406 | 6 #define LIBAVCODEC_VERSION_INT 0x000406 |
7 #define LIBAVCODEC_VERSION "0.4.6" | 7 #define LIBAVCODEC_VERSION "0.4.6" |
8 #define LIBAVCODEC_BUILD 4624 | 8 #define LIBAVCODEC_BUILD 4625 |
9 #define LIBAVCODEC_BUILD_STR "4624" | 9 #define LIBAVCODEC_BUILD_STR "4625" |
10 | 10 |
11 enum CodecID { | 11 enum CodecID { |
12 CODEC_ID_NONE, | 12 CODEC_ID_NONE, |
13 CODEC_ID_MPEG1VIDEO, | 13 CODEC_ID_MPEG1VIDEO, |
14 CODEC_ID_H263, | 14 CODEC_ID_H263, |
121 #define CODEC_FLAG_GRAY 0x2000 /* only decode/encode grayscale */ | 121 #define CODEC_FLAG_GRAY 0x2000 /* only decode/encode grayscale */ |
122 #define CODEC_FLAG_EMU_EDGE 0x4000/* dont draw edges */ | 122 #define CODEC_FLAG_EMU_EDGE 0x4000/* dont draw edges */ |
123 #define CODEC_FLAG_DR1 0x8000 /* direct renderig type 1 (store internal frames in external buffers) */ | 123 #define CODEC_FLAG_DR1 0x8000 /* direct renderig type 1 (store internal frames in external buffers) */ |
124 #define CODEC_FLAG_NOT_TRUNCATED 0x00010000 /* input bitstream is not truncated, except before a startcode | 124 #define CODEC_FLAG_NOT_TRUNCATED 0x00010000 /* input bitstream is not truncated, except before a startcode |
125 allows the last part of a frame to be decoded earlier */ | 125 allows the last part of a frame to be decoded earlier */ |
126 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000 /* normalize adaptive quantization */ | |
127 | |
126 /* codec capabilities */ | 128 /* codec capabilities */ |
127 | 129 |
128 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 /* decoder can use draw_horiz_band callback */ | 130 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 /* decoder can use draw_horiz_band callback */ |
129 #define CODEC_CAP_DR1 0x0002 /* direct rendering method 1 */ | 131 #define CODEC_CAP_DR1 0x0002 /* direct rendering method 1 */ |
130 /* if 'parse_only' field is true, then avcodec_parse_frame() can be | 132 /* if 'parse_only' field is true, then avcodec_parse_frame() can be |
172 | 174 |
173 /** | 175 /** |
174 * some codecs need / can use extra-data like huffman tables | 176 * some codecs need / can use extra-data like huffman tables |
175 * mjpeg: huffman tables | 177 * mjpeg: huffman tables |
176 * rv10: additional flags | 178 * rv10: additional flags |
177 * encoding: set/allocated/freed by user. | 179 * encoding: set/allocated/freed by lavc. |
178 * decoding: set/allocated/freed by lavc. (can be NULL) | 180 * decoding: set/allocated/freed by user. |
179 */ | 181 */ |
180 void *extradata; | 182 void *extradata; |
181 int extradata_size; | 183 int extradata_size; |
182 | 184 |
183 /* video only */ | 185 /* video only */ |
283 * decoding: set by lavc | 285 * decoding: set by lavc |
284 */ | 286 */ |
285 uint8_t *mbskip_table; | 287 uint8_t *mbskip_table; |
286 | 288 |
287 /* encoding parameters */ | 289 /* encoding parameters */ |
290 /** | |
291 * quality (between 1 (good) and 31 (bad)) | |
292 * encoding: set by user if CODEC_FLAG_QSCALE is set otherwise set by lavc | |
293 * decoding: set by lavc | |
294 */ | |
288 int quality; /* quality of the previous encoded frame | 295 int quality; /* quality of the previous encoded frame |
289 (between 1 (good) and 31 (bad)) | 296 |
290 this is allso used to set the quality in vbr mode | 297 this is allso used to set the quality in vbr mode |
291 and the per frame quality in CODEC_FLAG_TYPE (second pass mode) */ | 298 and the per frame quality in CODEC_FLAG_TYPE (second pass mode) */ |
292 float qcompress; /* amount of qscale change between easy & hard scenes (0.0-1.0)*/ | 299 float qcompress; /* amount of qscale change between easy & hard scenes (0.0-1.0)*/ |
293 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */ | 300 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */ |
294 | 301 |
630 * if 0 then the frame_rate will be used as reference | 637 * if 0 then the frame_rate will be used as reference |
631 * encoding: set by user | 638 * encoding: set by user |
632 * decoding; set by lavc | 639 * decoding; set by lavc |
633 */ | 640 */ |
634 long long int pts; | 641 long long int pts; |
642 | |
643 /** | |
644 * luminance masking (0-> disabled) | |
645 * encoding: set by user | |
646 * decoding: unused | |
647 */ | |
648 float lumi_masking; | |
649 | |
650 /** | |
651 * temporary complexity masking (0-> disabled) | |
652 * encoding: set by user | |
653 * decoding: unused | |
654 */ | |
655 float temporal_cplx_masking; | |
656 | |
657 /** | |
658 * spatial complexity masking (0-> disabled) | |
659 * encoding: set by user | |
660 * decoding: unused | |
661 */ | |
662 float spatial_cplx_masking; | |
663 | |
664 /** | |
665 * p block masking (0-> disabled) | |
666 * encoding: set by user | |
667 * decoding: unused | |
668 */ | |
669 float p_masking; | |
635 | 670 |
636 //FIXME this should be reordered after kabis API is finished ... | 671 //FIXME this should be reordered after kabis API is finished ... |
637 //TODO kill kabi | 672 //TODO kill kabi |
638 /* | 673 /* |
639 Note: Below are located reserved fields for further usage | 674 Note: Below are located reserved fields for further usage |