diff -Nuar avifile-0.6.old/plugins/libdivx4/divx4.cpp avifile-0.6/plugins/libdivx4/divx4.cpp
--- avifile-0.6.old/plugins/libdivx4/divx4.cpp	Sun Nov 18 12:41:45 2001
+++ avifile-0.6/plugins/libdivx4/divx4.cpp	Sun Nov 18 21:16:06 2001
@@ -399,15 +399,20 @@
 	param.x_dim=m_bh.biWidth;
 	param.y_dim=labs(m_bh.biHeight);
 	param.framerate=30;//frames/sec
-	param.bitrate=Registry::ReadInt(strOpendivx, strBitRate, 800000);;//bits/sec
+	param.bitrate=Registry::ReadInt(strOpendivx, strBitRate, 800000);//bits/sec
 	param.rc_period=Registry::ReadInt(strOpendivx, "rc_period", 200);
+	param.rc_reaction_period=Registry::ReadInt(strOpendivx, "rc_reaction_period", 10);
+	param.rc_reaction_ratio=Registry::ReadInt(strOpendivx, "rc_reaction_ratio", 20);
 	param.max_quantizer=Registry::ReadInt(strOpendivx, "max_quantizer", 16);//just guess
 	param.min_quantizer=Registry::ReadInt(strOpendivx, "min_quantizer", 1);
+	param.max_key_interval=Registry::ReadInt(strOpendivx, "max_key_interval", 300);
 	param.quality=Registry::ReadInt(strOpendivx, "quality", 0);
 #ifndef ENCORE_MAJOR_VERSION	
         param.use_bidirect=0;
+        param.obmc=0;
 #else
-	param.extensions.use_bidirect=Registry::ReadInt(strOpendivx, "bidirect", 0);	
+	param.use_bidirect=Registry::ReadInt(strOpendivx, "bidirect", 0);	
+	param.obmc=Registry::ReadInt(strOpendivx, "obmc", 0);
 #endif
         param.deinterlace=Registry::ReadInt(strOpendivx, strDeinterlace, 0);
 	if(param.quality==1)
@@ -520,14 +525,22 @@
 	value=Registry::ReadInt(strOpendivx, strBitRate, 800000);
     else if (strcmp(attribute, "rc_period")==0)
 	value=Registry::ReadInt(strOpendivx, "rc_period", 200);
+    else if (strcmp(attribute, "rc_reaction_period")==0)
+	value=Registry::ReadInt(strOpendivx, "rc_reaction_period", 10);
+    else if (strcmp(attribute, "rc_reaction_ratio")==0)
+	value=Registry::ReadInt(strOpendivx, "rc_reaction_ratio", 20);
     else if (strcmp(attribute, "min_quantizer")==0)
 	value=Registry::ReadInt(strOpendivx, "min_quantizer", 1);
     else if (strcmp(attribute, "max_quantizer")==0)
 	value=Registry::ReadInt(strOpendivx, "max_quantizer", 16);
+    else if (strcmp(attribute, "max_key_interval")==0)
+	value=Registry::ReadInt(strOpendivx, "max_key_interval", 300);
     else if (strcmp(attribute, "quality")==0)
 	value=Registry::ReadInt(strOpendivx, "quality", 0);
     else if (strcmp(attribute, "bidirect")==0)
 	value=Registry::ReadInt(strOpendivx, "bidirect", 0);
+    else if (strcmp(attribute, "obmc")==0)
+	value=Registry::ReadInt(strOpendivx, "obmc", 0);
     else if (strcmp(attribute, strDeinterlace)==0)
 	value=Registry::ReadInt(strOpendivx, strDeinterlace, 0);
     else
@@ -547,14 +560,22 @@
 	retval=Registry::WriteInt(strOpendivx, strBitRate, value);
     else if (strcmp(attribute, "rc_period")==0)
 	retval=Registry::WriteInt(strOpendivx, "rc_period", value);
+    else if (strcmp(attribute, "rc_reaction_period")==0)
+	retval=Registry::WriteInt(strOpendivx, "rc_reaction_period", value);
+    else if (strcmp(attribute, "rc_reaction_ratio")==0)
+	retval=Registry::WriteInt(strOpendivx, "rc_reaction_ratio", value);
     else if (strcmp(attribute, "min_quantizer")==0)
 	retval=Registry::WriteInt(strOpendivx, "min_quantizer", value);
     else if (strcmp(attribute, "max_quantizer")==0)
 	retval=Registry::WriteInt(strOpendivx, "max_quantizer", value);
+    else if (strcmp(attribute, "max_key_interval")==0)
+	retval=Registry::WriteInt(strOpendivx, "max_key_interval", value);
     else if (strcmp(attribute, "quality")==0)
 	retval=Registry::WriteInt(strOpendivx, "quality", value);
     else if (strcmp(attribute, "bidirect")==0)
 	retval=Registry::WriteInt(strOpendivx, "bidirect", value);
+    else if (strcmp(attribute, "obmc")==0)
+	retval=Registry::WriteInt(strOpendivx, "obmc", value);
     else if (strcmp(attribute, strDeinterlace)==0)
 	retval=Registry::WriteInt(strOpendivx, strDeinterlace, value);
 
diff -Nuar avifile-0.6.old/plugins/libdivx4/fillplugins.h avifile-0.6/plugins/libdivx4/fillplugins.h
--- avifile-0.6.old/plugins/libdivx4/fillplugins.h	Tue Nov 13 16:01:16 2001
+++ avifile-0.6/plugins/libdivx4/fillplugins.h	Sun Nov 18 20:58:48 2001
@@ -43,18 +43,35 @@
 			       "Desired stream bit-rate in bits/second",
 			       AttributeInfo::Integer));
     vs.push_back(AttributeInfo("rc_period",
-			       "Unknown", AttributeInfo::Integer));
+			       "Rate control averaging period",
+			       AttributeInfo::Integer));
+    vs.push_back(AttributeInfo("rc_reaction_period",
+			       "Rate control reaction period",
+			       AttributeInfo::Integer));
+    vs.push_back(AttributeInfo("rc_reaction_ratio",
+			       "Rate control motion sensitivity",
+			       AttributeInfo::Integer));
     vs.push_back(AttributeInfo("min_quantizer",
-			       "Unknown", AttributeInfo::Integer));
+			       "Minimum quantizer",
+			       AttributeInfo::Integer));
     vs.push_back(AttributeInfo("max_quantizer",
-			       "Unknown", AttributeInfo::Integer));
+			       "Maximum quantizer",
+			       AttributeInfo::Integer));
+    vs.push_back(AttributeInfo("max_key_interval",
+			       "Maximum key frame interval",
+			       AttributeInfo::Integer));
     vs.push_back(AttributeInfo("quality",
-			       "Performance/quality balance",
+			       "Performance/quality balance ( 5 slowest )",
 			       AttributeInfo::Integer));
     vs.push_back(AttributeInfo("deinterlace", "Deinterlace",
-			       AttributeInfo::Integer));
+			       AttributeInfo::Integer, 0, 1));
 #ifdef ENC_MAJOR_VERSION
-    vs.push_back(AttributeInfo("bidirect", "bidirectional encoding", AttributeInfo::Integer, 0, 1));
+    vs.push_back(AttributeInfo("bidirect",
+			       "Bidirectional encoding",
+			       AttributeInfo::Integer, 0, 1));
+    vs.push_back(AttributeInfo("obmc",
+			       "Overlapped block motion compensation",
+			       AttributeInfo::Integer, 0, 1));
 #endif
 
     avm::vector<AttributeInfo> ds;
