X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=encoder%2Fratecontrol.h;h=19d4197f6ab1bb941a065a828645b8ebf95a4031;hb=92b0bd9665860d7b48f313d6fd72a583ecb01ddf;hp=28e6a3d7384588dbcd4424503762d7e19bc25bbb;hpb=c583687fab832ba7eaf8626048f05ad1f861a855;p=x264 diff --git a/encoder/ratecontrol.h b/encoder/ratecontrol.h index 28e6a3d7..19d4197f 100644 --- a/encoder/ratecontrol.h +++ b/encoder/ratecontrol.h @@ -1,7 +1,7 @@ /***************************************************************************** * ratecontrol.h: ratecontrol ***************************************************************************** - * Copyright (C) 2003-2010 x264 project + * Copyright (C) 2003-2012 x264 project * * Authors: Loren Merritt * Laurent Aimar @@ -28,12 +28,14 @@ #define X264_RATECONTROL_H /* Completely arbitrary. Ratecontrol lowers relative quality at higher framerates - * and the reverse at lower framerates; this serves as the center of the curve. */ -#define BASE_FRAME_DURATION (0.04f) + * and the reverse at lower framerates; this serves as the center of the curve. + * Halve all the values for frame-packed 3D to compensate for the "doubled" + * framerate. */ +#define BASE_FRAME_DURATION (0.04f / ((h->param.i_frame_packing == 5)+1)) /* Arbitrary limitations as a sanity check. */ -#define MAX_FRAME_DURATION 1.00f -#define MIN_FRAME_DURATION 0.01f +#define MAX_FRAME_DURATION (1.00f / ((h->param.i_frame_packing == 5)+1)) +#define MIN_FRAME_DURATION (0.01f / ((h->param.i_frame_packing == 5)+1)) #define CLIP_DURATION(f) x264_clip3f(f,MIN_FRAME_DURATION,MAX_FRAME_DURATION) @@ -49,7 +51,7 @@ void x264_thread_sync_ratecontrol( x264_t *cur, x264_t *prev, x264_t *next ); void x264_ratecontrol_start( x264_t *, int i_force_qp, int overhead ); int x264_ratecontrol_slice_type( x264_t *, int i_frame ); void x264_ratecontrol_set_weights( x264_t *h, x264_frame_t *frm ); -void x264_ratecontrol_mb( x264_t *, int bits ); +int x264_ratecontrol_mb( x264_t *, int bits ); int x264_ratecontrol_qp( x264_t * ); int x264_ratecontrol_mb_qp( x264_t *h ); int x264_ratecontrol_end( x264_t *, int bits, int *filler );