summaryrefslogtreecommitdiff
path: root/libavcodec/libvpxenc.c
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2010-07-22 12:35:32 +0000
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2010-07-22 12:35:32 +0000
commit7eb185e0a3451b67cf798206bf3581ec96647da1 (patch)
tree9d36d00835f1a256fd77f1d4f9d25b49708cda2d /libavcodec/libvpxenc.c
parentb946111fde80c3ac80fdc4ac5412ba3843fa1b07 (diff)
Map settings for 2-pass libvpx encoding.
Patch by James Zern, jzern at google Originally committed as revision 24430 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/libvpxenc.c')
-rw-r--r--libavcodec/libvpxenc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index c83ab936d4..66d184f91e 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -241,6 +241,14 @@ static av_cold int vp8_init(AVCodecContext *avctx)
enccfg.rc_max_quantizer = avctx->qmax;
enccfg.rc_dropframe_thresh = avctx->frame_skip_threshold;
+ //0-100 (0 => CBR, 100 => VBR)
+ enccfg.rc_2pass_vbr_bias_pct = round(avctx->qcompress * 100);
+ enccfg.rc_2pass_vbr_minsection_pct =
+ avctx->rc_min_rate * 100 / avctx->bit_rate;
+ if (avctx->rc_max_rate)
+ enccfg.rc_2pass_vbr_maxsection_pct =
+ avctx->rc_max_rate * 100 / avctx->bit_rate;
+
//_enc_init() will balk if kf_min_dist differs from max w/VPX_KF_AUTO
if (avctx->keyint_min == avctx->gop_size)
enccfg.kf_min_dist = avctx->keyint_min;