diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-13 13:49:24 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-13 13:49:24 +0000 |
commit | de10f446ddb0ff6ebcc78f2248920d5b42838480 (patch) | |
tree | eca50bbaeac41d6c2a4e58e7df8ad78235988c3f | |
parent | 199e0975c252d1c8b0b24acaceff333ba9189d25 (diff) | |
download | mpv-de10f446ddb0ff6ebcc78f2248920d5b42838480.tar.bz2 mpv-de10f446ddb0ff6ebcc78f2248920d5b42838480.tar.xz |
new error resilience support
option renamed for consitancy with ffmpeg (ver -> er)
bug numbers changed (1234->1248) as some files need multiple ones
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7723 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | DOCS/tech/libavc-options.txt | 36 | ||||
-rw-r--r-- | libmpcodecs/vd_ffmpeg.c | 17 |
2 files changed, 36 insertions, 17 deletions
diff --git a/DOCS/tech/libavc-options.txt b/DOCS/tech/libavc-options.txt index 1927c581c1..3fa37fa44a 100644 --- a/DOCS/tech/libavc-options.txt +++ b/DOCS/tech/libavc-options.txt @@ -247,20 +247,28 @@ ildct use interlaced dct 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 - -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) +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 + +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 ...) diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c index c1881b3507..efcfbc7ba6 100644 --- a/libmpcodecs/vd_ffmpeg.c +++ b/libmpcodecs/vd_ffmpeg.c @@ -56,8 +56,13 @@ typedef struct { 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 @@ static int lavc_param_idct_algo=0; 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 @@ struct config lavc_decode_opts_conf[]={ #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 @@ static int init(sh_video_t *sh){ #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 |