[MPlayer-dev-eng] [PATCH] ve_xvid4.c catching up with xvid 1.0.0 beta3

Edouard Gomez ed.gomez at free.fr
Sat Jan 3 18:00:52 CET 2004


Hey,

Please apply the attached patch to sync mencoder's default settings and
options with recommened values for xvid 1.0.0 beta3 release.

2004-01-03 16:26:10 GMT		patch-1

    Summary:
      Catching up with 1.0.0 Beta3 release.
    Revision:
      mplayer-xvidmodule--devapi4--1.0--patch-1

    * Added ME turbo flag (called "turbo").
    * Modified user defaults to saner values
      - less hurting overflow feedback.
      - packed bitstream by default to avoid bframe lag.
      - 2 bframes by default.
      - chroma_me by default.
    * Updated arch tag in ChangeLog to match new archive.

    new files:
     ChangeLog

    removed files:
     ChangeLog

    modified files:
     ve_xvid4.c

-- 
Edouard Gomez
-------------- next part --------------
Index: libmpcodecs/ve_xvid4.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/ve_xvid4.c,v
retrieving revision 1.3
diff -u -r1.3 ve_xvid4.c
--- libmpcodecs/ve_xvid4.c	8 Dec 2003 16:56:46 -0000	1.3
+++ libmpcodecs/ve_xvid4.c	3 Jan 2004 16:37:16 -0000
@@ -67,7 +67,7 @@
 static int xvidenc_pass = 0;
 static float xvidenc_quantizer = 0;
 
-static int xvidenc_packed = 0;
+static int xvidenc_packed = 1;
 static int xvidenc_closed_gop = 1;
 static int xvidenc_interlaced = 0;
 static int xvidenc_quarterpel = 0;
@@ -75,15 +75,16 @@
 static int xvidenc_trellis = 0;
 static int xvidenc_cartoon = 0;
 static int xvidenc_hqacpred = 1;
-static int xvidenc_chromame = 0;
-static int xvidenc_vhq = 0;
+static int xvidenc_chromame = 1;
+static int xvidenc_vhq = 1;
 static int xvidenc_motion = 6;
+static int xvidenc_turbo = 0;
 static int xvidenc_stats = 0;
-static int xvidenc_max_key_interval = 0;
+static int xvidenc_max_key_interval = 0; /* Let xvidcore set a 10s interval by default */
 static int xvidenc_frame_drop_ratio = 0;
 static int xvidenc_greyscale = 0;
 
-static int xvidenc_max_bframes = 0;
+static int xvidenc_max_bframes = 2;
 static int xvidenc_bquant_ratio = 150;
 static int xvidenc_bquant_offset = 100;
 static int xvidenc_bframe_threshold = 0;
@@ -99,14 +100,14 @@
 static int xvidenc_cbr_buffer = 0;
 
 static int xvidenc_vbr_keyframe_boost = 0;
-static int xvidenc_vbr_overflow_control_strength = 0;
+static int xvidenc_vbr_overflow_control_strength = 5;
 static int xvidenc_vbr_curve_compression_high = 0;
 static int xvidenc_vbr_curve_compression_low = 0;
-static int xvidenc_vbr_max_overflow_improvement = 0;
-static int xvidenc_vbr_max_overflow_degradation = 0;
+static int xvidenc_vbr_max_overflow_improvement = 5;
+static int xvidenc_vbr_max_overflow_degradation = 5;
 static int xvidenc_vbr_kfreduction = 0;
 static int xvidenc_vbr_kfthreshold = 0;
-static int xvidenc_vbr_container_frame_overhead = 0;
+static int xvidenc_vbr_container_frame_overhead = 24; /* mencoder uses AVI container */
 
 static char *xvidenc_par = NULL;
 static int xvidenc_par_width = 0;
@@ -139,6 +140,7 @@
 	{"frame_drop_ratio", &xvidenc_frame_drop_ratio, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
 	{"max_key_interval", &xvidenc_max_key_interval, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
 	{"greyscale", &xvidenc_greyscale, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+	{"turbo", &xvidenc_turbo, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"stats", &xvidenc_stats, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 
 
@@ -674,6 +676,13 @@
 	if(xvidenc_vhq >= 4) {
 		frame->motion |= XVID_ME_EXTSEARCH_RD;
 	}
+	if(xvidenc_turbo) {
+		frame->motion |= XVID_ME_FASTREFINE16;
+		frame->motion |= XVID_ME_FASTREFINE8;
+		frame->motion |= XVID_ME_SKIP_DELTASEARCH;
+		frame->motion |= XVID_ME_FAST_MODEINTERPOLATE;
+		frame->motion |= XVID_ME_BFRAME_EARLYSTOP;
+	}
 
 	/* motion level == 0 means no motion search which is equivalent to
 	 * intra coding only */


More information about the MPlayer-dev-eng mailing list