summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-11-04 01:01:19 +0000
committerlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-11-04 01:01:19 +0000
commit3c1298e0f7162d31b63608924de633e3922fa101 (patch)
treee0e44ebaa7e70118fa722ad85c1f74a41cd17e80
parent058afda0f86065aa72c3a13b3d562f4d9e38394f (diff)
downloadmpv-3c1298e0f7162d31b63608924de633e3922fa101.tar.bz2
mpv-3c1298e0f7162d31b63608924de633e3922fa101.tar.xz
sync to x264 r360 (trellis)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16899 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--DOCS/man/en/mplayer.114
-rwxr-xr-xconfigure2
-rw-r--r--libmpcodecs/ve_x264.c5
3 files changed, 20 insertions, 1 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 157e3342a2..3b3454e22e 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -8714,6 +8714,20 @@ Without this option, a whole macroblock must use the same reference.
Requires frameref>1.
.
.TP
+.B trellis=<0\-2>
+rate-distortion optimal quantization
+.PD 0
+.RSs
+.IPs 0
+disabled
+.IPs 1
+enabled only for the final encode (default)
+.IPs 2
+enabled during all mode decisions (slow, requires subq=6)
+.RE
+.PD 1
+.
+.TP
.B chroma_qp_offset=<-12\-12>
Use a different quantizer for chroma as compared to luma.
Useful values are in the range <-2\-2> (default: 0).
diff --git a/configure b/configure
index 9beb1f4c62..609a43c25f 100755
--- a/configure
+++ b/configure
@@ -6142,7 +6142,7 @@ echocheck "x264"
cat > $TMPC << EOF
#include <inttypes.h>
#include <x264.h>
-#if X264_BUILD < 37
+#if X264_BUILD < 39
#error We do not support old versions of x264. Get the latest from SVN.
#endif
int main(void) { x264_encoder_open((void*)0); return 0; }
diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c
index 79f6cabb8b..bfa15b4aa0 100644
--- a/libmpcodecs/ve_x264.c
+++ b/libmpcodecs/ve_x264.c
@@ -102,6 +102,7 @@ static char *zones = NULL;
static int subq = 5;
static int me_method = 2;
static int me_range = 16;
+static int trellis = 1;
static int threads = 1;
static int level_idc = 40;
static int psnr = 0;
@@ -182,6 +183,7 @@ m_option_t x264encopts_conf[] = {
{"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 6, NULL},
{"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL},
{"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, NULL},
+ {"trellis", &trellis, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL},
{"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL},
{"threads", &threads, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL},
{"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL},
@@ -289,6 +291,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.analyse.i_chroma_qp_offset = chroma_qp_offset;
mod->param.analyse.b_chroma_me = chroma_me;
mod->param.analyse.b_mixed_references = mixed_references;
+ mod->param.analyse.i_trellis = trellis;
mod->param.i_width = width;
mod->param.i_height = height;
@@ -347,6 +350,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.analyse.i_subpel_refine = max( min( 3, subq - 1 ), 1 );
mod->param.analyse.inter &= ( ~X264_ANALYSE_PSUB8x8 );
mod->param.analyse.inter &= ( ~X264_ANALYSE_BSUB16x16 );
+ mod->param.analyse.i_trellis = 0;
}
else if(turbo == 2)
{
@@ -356,6 +360,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
mod->param.analyse.inter = 0;
mod->param.analyse.b_transform_8x8 = 0;
mod->param.analyse.b_weighted_bipred = 0;
+ mod->param.analyse.i_trellis = 0;
}
mod->param.rc.b_stat_write = 1;
mod->param.rc.b_stat_read = 0;