aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorErik Slagter <erik@slagter.name>2009-12-08 20:01:46 +0000
committerJason Garrett-Glaser <darkshikari@gmail.com>2009-12-08 20:01:46 +0000
commit25a42948c63e347391c98f3e95524244e7e7f628 (patch)
tree4c918c119f47ccc7202556d9a920ace310fcf9ad /libavcodec
parentf6586314193048073e7d8771e9114c4beb3917cc (diff)
downloadffmpeg-25a42948c63e347391c98f3e95524244e7e7f628.tar.gz
Add MBtree support for libx264
Patch by Erik Slagter Originally committed as revision 20774 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h1
-rw-r--r--libavcodec/libx264.c1
-rw-r--r--libavcodec/options.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index f4fe7d676a..90f29963da 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -580,6 +580,7 @@ typedef struct RcOverride{
#define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries.
#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///< Use MPEG-2 nonlinear quantizer.
#define CODEC_FLAG2_BIT_RESERVOIR 0x00020000 ///< Use a bit reservoir when encoding if possible
+#define CODEC_FLAG2_MBTREE 0x00040000 ///< Use macroblock tree ratecontrol (x264 only)
/* Unsupported options :
* Syntax Arithmetic coding (SAC)
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 05c29805db..1fec3eded1 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -266,6 +266,7 @@ static av_cold int X264_init(AVCodecContext *avctx)
} else
x4->params.rc.f_vbv_buffer_init = 0.9;
+ x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE);
x4->params.rc.f_ip_factor = 1 / fabs(avctx->i_quant_factor);
x4->params.rc.f_pb_factor = avctx->b_quant_factor;
x4->params.analyse.i_chroma_qp_offset = avctx->chromaoffset;
diff --git a/libavcodec/options.c b/libavcodec/options.c
index fa64294a0d..d224c41618 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -391,6 +391,7 @@ static const AVOption options[]={
{"request_channels", "set desired number of audio channels", OFFSET(request_channels), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, A|D},
{"drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), FF_OPT_TYPE_FLOAT, 1.0, 0.0, 1.0, A|D},
{"reservoir", "use bit reservoir", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, A|E, "flags2"},
+{"mbtree", "use macroblock tree ratecontrol (x264 only)", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_MBTREE, INT_MIN, INT_MAX, V|E, "flags2"},
{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX},
{"channel_layout", NULL, OFFSET(channel_layout), FF_OPT_TYPE_INT64, DEFAULT, 0, INT64_MAX, A|E|D, "channel_layout"},
{"request_channel_layout", NULL, OFFSET(request_channel_layout), FF_OPT_TYPE_INT64, DEFAULT, 0, INT64_MAX, A|D, "request_channel_layout"},