summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-28 01:02:08 +0000
committerlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-28 01:02:08 +0000
commit9297cd04bb2e135b9b73dd6c980e7177ee4e951f (patch)
treef69dac70f24ef34db3df13b831918f7d4c8f54fb /libmpcodecs
parent005478ea0c40d2deea4265f6541f675e78de7dd9 (diff)
downloadmpv-9297cd04bb2e135b9b73dd6c980e7177ee4e951f.tar.bz2
mpv-9297cd04bb2e135b9b73dd6c980e7177ee4e951f.tar.xz
sync to x264 r72.
new options: b8x8mv, direct_pred changed defaults: pb_factor=1.3, subq=3 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14258 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ve_x264.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c
index 65fcbfadc0..0fe4c69b02 100644
--- a/libmpcodecs/ve_x264.c
+++ b/libmpcodecs/ve_x264.c
@@ -49,7 +49,7 @@
#include <x264.h>
-#if X264_BUILD < 0x000c
+#if X264_BUILD < 0x000d
#error We do not support old versions of x264. Get the latest from SVN.
#endif
@@ -75,8 +75,10 @@ static int deblockbeta = 0;
static int cabac = 1;
static int cabacidc = -1;
static int p4x4mv = 0;
+static int b8x8mv = 1;
+static int direct_pred = X264_DIRECT_PRED_TEMPORAL;
static float ip_factor = 1.4;
-static float pb_factor = 1.4;
+static float pb_factor = 1.3;
static int rc_buffer_size = -1;
static int rc_init_buffer = -1;
static int rc_sens = 4;
@@ -88,7 +90,7 @@ static float qcomp = 0.6;
static float qblur = 0.5;
static float complexity_blur = 20;
static char *rc_eq = "tex*blurTex^(qComp-1)";
-static int subq = 1;
+static int subq = 3;
static int psnr = 0;
static int log_level = 2;
@@ -109,6 +111,9 @@ m_option_t x264encopts_conf[] = {
{"cabacidc", &cabacidc, CONF_TYPE_INT, CONF_RANGE, -1, 2, NULL},
{"4x4mv", &p4x4mv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"no4x4mv", &p4x4mv, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+ {"b8x8mv", &b8x8mv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+ {"nob8x8mv", &b8x8mv, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+ {"direct_pred", &direct_pred, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL},
{"ip_factor", &ip_factor, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0, NULL},
{"pb_factor", &pb_factor, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0, NULL},
{"rc_buffer_size", &rc_buffer_size, CONF_TYPE_INT, CONF_RANGE, 0, 24000000, NULL},
@@ -198,10 +203,14 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.rc.i_rc_init_buffer = rc_init_buffer;
mod->param.rc.i_rc_sens = rc_sens;
}
- if(p4x4mv)
- mod->param.analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8;
mod->param.rc.f_ip_factor = ip_factor;
mod->param.rc.f_pb_factor = pb_factor;
+ mod->param.analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16;
+ if(p4x4mv)
+ mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8;
+ if(b8x8mv)
+ mod->param.analyse.inter |= X264_ANALYSE_BSUB16x16;
+ mod->param.analyse.i_direct_mv_pred = direct_pred;
mod->param.i_width = width;
mod->param.i_height = height;