summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2002-10-13 13:16:04 +0000
committerMichael Niedermayer <michaelni@gmx.at>2002-10-13 13:16:04 +0000
commit4d2858deac5213eaddfdc06f98379b6325d7b953 (patch)
tree9ab96559f7e8ac0037046c3129dd8a2654e76a2c /ffmpeg.c
parent46de8b7334281ed1e15c0902a56cef8da7b4f296 (diff)
better/cleaner error resilience (done in a 2nd pass after decoding)
h263/mpeg4 out of order slice decoding Originally committed as revision 1030 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 06050d805a..260857659e 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -114,8 +114,9 @@ static int b_frames = 0;
static int use_hq = 0;
static int use_4mv = 0;
static int do_deinterlace = 0;
-static int workaround_bugs = 0;
-static int error_resilience = 0;
+static int workaround_bugs = FF_BUG_AUTODETECT;
+static int error_resilience = 2;
+static int error_concealment = 3;
static int dct_algo = 0;
static int idct_algo = 0;
static int use_part = 0;
@@ -1462,6 +1463,12 @@ void opt_error_resilience(const char *arg)
error_resilience = atoi(arg);
}
+void opt_error_concealment(const char *arg)
+{
+ error_concealment = atoi(arg);
+}
+
+
void opt_frame_rate(const char *arg)
{
frame_rate = (int)(strtod(arg, 0) * FRAME_RATE_BASE);
@@ -1823,6 +1830,7 @@ void opt_input_file(const char *filename)
rfps = ic->streams[i]->r_frame_rate;
enc->workaround_bugs = workaround_bugs;
enc->error_resilience = error_resilience;
+ enc->error_concealment = error_concealment;
enc->idct_algo= idct_algo;
if (enc->frame_rate != rfps) {
fprintf(stderr,"\nSeems that stream %d comes from film source: %2.2f->%2.2f\n",
@@ -2394,6 +2402,7 @@ const OptionDef options[] = {
{ "dct_algo", HAS_ARG | OPT_EXPERT, {(void*)opt_dct_algo}, "set dct algo", "algo" },
{ "idct_algo", HAS_ARG | OPT_EXPERT, {(void*)opt_idct_algo}, "set idct algo", "algo" },
{ "er", HAS_ARG | OPT_EXPERT, {(void*)opt_error_resilience}, "set error resilience", "" },
+ { "ec", HAS_ARG | OPT_EXPERT, {(void*)opt_error_resilience}, "set error concealment", "" },
{ "bf", HAS_ARG | OPT_EXPERT, {(void*)opt_b_frames}, "use 'frames' B frames (only MPEG-4)", "frames" },
{ "hq", OPT_BOOL | OPT_EXPERT, {(void*)&use_hq}, "activate high quality settings" },
{ "4mv", OPT_BOOL | OPT_EXPERT, {(void*)&use_4mv}, "use four motion vector by macroblock (only MPEG-4)" },