comparison avcodec.h @ 1505:010f76d07a27 libavcodec

use lagrange multipler instead of qp for ratecontrol, this may break some things, tell me ASAP if u notice anything broken quality which was 1..31 float is now a 1..FF_LAMBDA_MAX int, and FF_QP2LAMBDA * qp can be used to convert to the new range
author michaelni
date Tue, 07 Oct 2003 11:32:40 +0000
parents 726a81d83ddd
children 5a43bc31c2eb
comparison
equal deleted inserted replaced
1504:df7ab60d1ee0 1505:010f76d07a27
13 13
14 #include "common.h" 14 #include "common.h"
15 15
16 #define FFMPEG_VERSION_INT 0x000408 16 #define FFMPEG_VERSION_INT 0x000408
17 #define FFMPEG_VERSION "0.4.8" 17 #define FFMPEG_VERSION "0.4.8"
18 #define LIBAVCODEC_BUILD 4683 18 #define LIBAVCODEC_BUILD 4684
19 19
20 #define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT 20 #define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT
21 #define LIBAVCODEC_VERSION FFMPEG_VERSION 21 #define LIBAVCODEC_VERSION FFMPEG_VERSION
22 22
23 #define AV_STRINGIFY(s) AV_TOSTRING(s) 23 #define AV_STRINGIFY(s) AV_TOSTRING(s)
314 * - decoding: set by lavc\ 314 * - decoding: set by lavc\
315 */\ 315 */\
316 int display_picture_number;\ 316 int display_picture_number;\
317 \ 317 \
318 /**\ 318 /**\
319 * quality (between 1 (good) and 31 (bad)) \ 319 * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) \
320 * - encoding: set by lavc for coded_picture (and set by user for input)\ 320 * - encoding: set by lavc for coded_picture (and set by user for input)\
321 * - decoding: set by lavc\ 321 * - decoding: set by lavc\
322 */\ 322 */\
323 float quality; \ 323 int quality; \
324 \ 324 \
325 /**\ 325 /**\
326 * buffer age (1->was last buffer and dint change, 2->..., ...).\ 326 * buffer age (1->was last buffer and dint change, 2->..., ...).\
327 * set to something large if the buffer has not been used yet \ 327 * set to INT_MAX if the buffer has not been used yet \
328 * - encoding: unused\ 328 * - encoding: unused\
329 * - decoding: MUST be set by get_buffer()\ 329 * - decoding: MUST be set by get_buffer()\
330 */\ 330 */\
331 int age;\ 331 int age;\
332 \ 332 \
1179 /** 1179 /**
1180 * internal_buffers. 1180 * internal_buffers.
1181 * Dont touch, used by lavc default_get_buffer() 1181 * Dont touch, used by lavc default_get_buffer()
1182 */ 1182 */
1183 void *internal_buffer; 1183 void *internal_buffer;
1184 1184
1185 #define FF_QUALITY_SCALE 256 1185 #define FF_LAMBDA_SHIFT 7
1186 #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
1187 #define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
1188 #define FF_LAMBDA_MAX (256*128-1)
1189
1190 #define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
1186 /** 1191 /**
1187 * global quality for codecs which cannot change it per frame. 1192 * global quality for codecs which cannot change it per frame.
1188 * this should be proportional to MPEG1/2/4 qscale. 1193 * this should be proportional to MPEG1/2/4 qscale.
1189 * - encoding: set by user. 1194 * - encoding: set by user.
1190 * - decoding: unused 1195 * - decoding: unused
1261 * 0 is default, larger means fewer detected scene changes 1266 * 0 is default, larger means fewer detected scene changes
1262 * - encoding: set by user. 1267 * - encoding: set by user.
1263 * - decoding: unused 1268 * - decoding: unused
1264 */ 1269 */
1265 int scenechange_threshold; 1270 int scenechange_threshold;
1271
1272 /**
1273 * minimum lagrange multipler
1274 * - encoding: set by user.
1275 * - decoding: unused
1276 */
1277 int lmin;
1278
1279 /**
1280 * maximum lagrange multipler
1281 * - encoding: set by user.
1282 * - decoding: unused
1283 */
1284 int lmax;
1266 } AVCodecContext; 1285 } AVCodecContext;
1267 1286
1268 1287
1269 /** 1288 /**
1270 * AVOption. 1289 * AVOption.