From 2c00106c2b07d38ec90cc9906aef2437df6f1ad7 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 5 Sep 2006 19:23:32 +0000 Subject: [PATCH] ignore index parameter to ignore the ODML index in avi Originally committed as revision 6177 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffmpeg.c | 5 ----- libavformat/avformat.h | 1 + libavformat/avidec.c | 2 +- libavformat/utils.c | 3 +++ 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 1bc63ac4d0..6f4fcb2c14 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -162,7 +162,6 @@ static int frame_skip_factor= 0; static int frame_skip_exp= 0; static int loop_input = 0; static int loop_output = AVFMT_NOOUTPUTLOOP; -static int genpts = 0; static int qp_hist = 0; static int gop_size = 12; @@ -2816,9 +2815,6 @@ static void opt_input_file(const char *filename) ic->loop_input = loop_input; - if(genpts) - ic->flags|= AVFMT_FLAG_GENPTS; - /* If not enough info to get the stream parameters, we decode the first frames to get it. (used in mpeg case for example) */ ret = av_find_stream_info(ic); @@ -4080,7 +4076,6 @@ const OptionDef options[] = { { "skip_factor", OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)&frame_skip_factor}, "frame skip factor", "factor" }, { "skip_exp", OPT_INT | HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)&frame_skip_exp}, "frame skip exponent", "exponent" }, { "newvideo", OPT_VIDEO, {(void*)opt_new_video_stream}, "add a new video stream to the current output stream" }, - { "genpts", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, { (void *)&genpts }, "generate pts" }, { "qphist", OPT_BOOL | OPT_EXPERT | OPT_VIDEO, { (void *)&qp_hist }, "show QP histogram" }, /* audio options */ diff --git a/libavformat/avformat.h b/libavformat/avformat.h index ad16898cf4..ff6166ab04 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -342,6 +342,7 @@ typedef struct AVFormatContext { int flags; #define AVFMT_FLAG_GENPTS 0x0001 ///< generate pts if missing even if it requires parsing future frames +#define AVFMT_FLAG_IGNIDX 0x0002 ///< ignore index int loop_input; /* decoding: size of data to probe; encoding unused */ diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 8744be685a..0e03365ede 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -456,7 +456,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) break; case MKTAG('i', 'n', 'd', 'x'): i= url_ftell(pb); - if(!url_is_streamed(pb)){ + if(!url_is_streamed(pb) && !(s->flags & AVFMT_FLAG_IGNIDX)){ read_braindead_odml_indx(s, 0); } url_fseek(pb, i+size, SEEK_SET); diff --git a/libavformat/utils.c b/libavformat/utils.c index dfb7cb88a6..ea447c1fa7 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -466,6 +466,9 @@ static const char* format_to_name(void* ptr) static const AVOption options[]={ {"probesize", NULL, OFFSET(probesize), FF_OPT_TYPE_INT, DEFAULT, 32, INT_MAX, D}, +{"fflags", NULL, OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, INT_MIN, INT_MAX, D, "fflags"}, +{"ignidx", "ignore index", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_IGNIDX, INT_MIN, INT_MAX, D, "fflags"}, +{"genpts", "generate pts", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_GENPTS, INT_MIN, INT_MAX, D, "fflags"}, {NULL}, };