changeset 15590:e848b20cd449

sync to x264 r240 (threads)
author lorenm
date Sun, 29 May 2005 19:05:32 +0000
parents c3108031b78a
children 3d32bc09b975
files DOCS/man/en/mplayer.1 configure libmpcodecs/ve_x264.c
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1	Sun May 29 17:04:51 2005 +0000
+++ b/DOCS/man/en/mplayer.1	Sun May 29 19:05:32 2005 +0000
@@ -8106,6 +8106,14 @@
 and you have a need to set it.
 .
 .TP
+.B threads=<1\-4>
+Split each frame into slices and encode them in parallel (default: 1).
+Also allows multithreaded decoding if the decoder supports it (lavc does not).
+This has a slight penalty to compression.
+Requires that libx264 was compiled with pthread support; if not, this
+option will produce a warning and enable slices but not multithreading.
+.
+.TP
 .B log=<-1\-3>
 Adjust the amount of logging info printed to the screen.
 .RSs
--- a/configure	Sun May 29 17:04:51 2005 +0000
+++ b/configure	Sun May 29 19:05:32 2005 +0000
@@ -6099,7 +6099,7 @@
 cat > $TMPC << EOF
 #include <inttypes.h>
 #include <x264.h>
-#if X264_BUILD < 27
+#if X264_BUILD < 28
 #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; }
--- a/libmpcodecs/ve_x264.c	Sun May 29 17:04:51 2005 +0000
+++ b/libmpcodecs/ve_x264.c	Sun May 29 19:05:32 2005 +0000
@@ -97,6 +97,7 @@
 static int subq = 5;
 static int me_method = 2;
 static int me_range = 16;
+static int threads = 1;
 static int level_idc = 40;
 static int psnr = 0;
 static int log_level = 2;
@@ -151,6 +152,7 @@
     {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 4, NULL},
     {"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, 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},
     {"nopsnr", &psnr, CONF_TYPE_FLAG, 0, 1, 0, NULL},
     {"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL},
@@ -264,6 +266,7 @@
     mod->param.i_log_level = log_level;
     mod->param.vui.i_sar_width = d_width*height;
     mod->param.vui.i_sar_height = d_height*width;
+    mod->param.i_threads = threads;
 
     switch(outfmt) {
     case IMGFMT_I420: