diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2005-12-25 18:34:02 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2005-12-25 18:34:02 +0000 |
commit | e8501c93b58d93505adaaaaf6d99595a9f33949c (patch) | |
tree | 72a85db1b3dd71efabbbffd7d26becf5ecde6cc9 /libavcodec/mpegvideo.c | |
parent | c9ab8df88a51821ceec673e74437817a937cb708 (diff) | |
download | ffmpeg-e8501c93b58d93505adaaaaf6d99595a9f33949c.tar.gz |
support downscaling frames for dynamic b frame decission
Originally committed as revision 4776 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r-- | libavcodec/mpegvideo.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 2b7718cca2..731a502c25 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -2145,9 +2145,9 @@ static int estimate_best_b_count(MpegEncContext *s){ AVCodec *codec= avcodec_find_encoder(s->avctx->codec_id); AVCodecContext *c= avcodec_alloc_context(); AVFrame input[FF_MAX_B_FRAMES+2]; - const int scale= 0; + const int scale= s->avctx->brd_scale; int i, j, out_size; - int outbuf_size= (s->width * s->height) >> (2*scale); //FIXME + int outbuf_size= s->width * s->height; //FIXME uint8_t *outbuf= av_malloc(outbuf_size); ImgReSampleContext *resample; int64_t best_rd= INT64_MAX; @@ -2198,6 +2198,7 @@ static int estimate_best_b_count(MpegEncContext *s){ input[0].pict_type= I_TYPE; input[0].quality= 2 * FF_QP2LAMBDA; out_size = avcodec_encode_video(c, outbuf, outbuf_size, &input[0]); + rd += (out_size * lambda2) >> FF_LAMBDA_SHIFT; for(i=0; i<s->max_b_frames+1; i++){ int is_p= i % (j+1) == j || i==s->max_b_frames; |