changeset 7722:a181875e0aa8

new error resilience support option renamed for consitancy with ffmpeg (ver -> er) bug numbers changed (1234->1248) as some files need multiple ones
author michael
date Sun, 13 Oct 2002 13:49:24 +0000
parents 765afc1fcd67
children 11492d5b0896
files DOCS/tech/libavc-options.txt libmpcodecs/vd_ffmpeg.c
diffstat 2 files changed, 35 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/tech/libavc-options.txt	Sun Oct 13 08:27:03 2002 +0000
+++ b/DOCS/tech/libavc-options.txt	Sun Oct 13 13:49:24 2002 +0000
@@ -247,20 +247,28 @@
 lavdopts: (decoder options)
 ---------------------------
 
-ver	error resilience
-	-1 needed for some very broken, encoders which completly ignore the
-           standards (one M4S2 asf sample know to need this) (default)
-	0 
-	1 more aggressive error detection, lavc might think that some correct
-          streams contain errors
+ec	error concealment
+	1 use strong deblock filter for damaged MBs
+        2 iterative MV search (slow)
+        3 all (default)
+        Note: just add the ones u want to enable
 
-bug	manual workaround encoder bugs (cant be easily detected automatically)
-	0 (default)
-	1 for msmpeg4v3	workaround for some old lavc generated msmpeg4v3 files
-	1 for mpeg4	workaround some opendivx? files (autodetected hopefully)
-			see http://heroinewarrior.com for some samples
-	2 for mpeg4	workaround xvid interlacing bug
-	3 for mpeg4	workaround for UMP4 (autodetected hopefully)
+er	error resilience
+	0 disabled
+        1 carefull (should work with broken encoders)
+        2 normal (default) (works with compliant encoders)
+        3 agressive (more checks but might cause problems even for valid bitstreams)
+        4 very agressive
+
+bug	manual workaround encoder bugs (autodetection isnt foolproof for these)
+	0 nothing
+	1		autodetect bugs (default)
+	2 for msmpeg4v3	some old lavc generated msmpeg4v3 files (no autodetect)
+	4 for mpeg4	xvid interlacing bug     (autodetected if fourcc==XVIX)
+	8 for mpeg4	UMP4                     (autodetected if fourcc==UMP4)
+        16for mpeg4	padding bug
+        32for mpeg4	illegal vlc bug          (autodetected per fourcc)
+        Note: just add the ones u want to enable
 
 gray	grayscale only decoding (a bit faster than with color ...)
 
--- a/libmpcodecs/vd_ffmpeg.c	Sun Oct 13 08:27:03 2002 +0000
+++ b/libmpcodecs/vd_ffmpeg.c	Sun Oct 13 13:49:24 2002 +0000
@@ -56,8 +56,13 @@
 
 static void get_buffer(struct AVCodecContext *avctx, int width, int height, int pict_type);
 
-static int lavc_param_workaround_bugs=0;
-static int lavc_param_error_resilience=-1;
+#ifdef FF_BUG_AUTODETECT
+static int lavc_param_workaround_bugs= FF_BUG_AUTODETECT;
+#else
+static int lavc_param_workaround_bugs= 0;
+#endif
+static int lavc_param_error_resilience=2;
+static int lavc_param_error_concealment=3;
 static int lavc_param_gray=0;
 static int lavc_param_vstats=0;
 static int lavc_param_idct_algo=0;
@@ -65,7 +70,7 @@
 struct config lavc_decode_opts_conf[]={
 #if LIBAVCODEC_BUILD >= 4611
 	{"bug", &lavc_param_workaround_bugs, CONF_TYPE_INT, CONF_RANGE, -1, 99, NULL},
-	{"ver", &lavc_param_error_resilience, CONF_TYPE_INT, CONF_RANGE, -1, 99, NULL},
+	{"er", &lavc_param_error_resilience, CONF_TYPE_INT, CONF_RANGE, 0, 99, NULL},
 #endif
 #if LIBAVCODEC_BUILD >= 4614
 	{"gray", &lavc_param_gray, CONF_TYPE_FLAG, 0, 0, CODEC_FLAG_PART, NULL},
@@ -73,6 +78,9 @@
 #if LIBAVCODEC_BUILD >= 4629
 	{"idct", &lavc_param_idct_algo, CONF_TYPE_INT, CONF_RANGE, 0, 99, NULL},
 #endif
+#if LIBAVCODEC_BUILD >= 4631
+	{"ec", &lavc_param_error_concealment, CONF_TYPE_INT, CONF_RANGE, 0, 99, NULL},
+#endif
 	{"vstats", &lavc_param_vstats, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{NULL, NULL, 0, 0, 0, 0, NULL}
 };
@@ -170,6 +178,9 @@
 #if LIBAVCODEC_BUILD >= 4629
     avctx->idct_algo= lavc_param_idct_algo;
 #endif
+#if LIBAVCODEC_BUILD >= 4631
+    avctx->error_concealment= lavc_param_error_concealment;
+#endif
     
     mp_dbg(MSGT_DECVIDEO,MSGL_DBG2,"libavcodec.size: %d x %d\n",avctx->width,avctx->height);
 #if LIBAVCODEC_BUILD >= 4605