diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-09-05 03:11:18 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-05 03:11:18 +0200 |
commit | 6f8b1fcd4b34b636852090fdef05e7c2bbe3b88a (patch) | |
tree | ff9a558692ed970cf63fe5c9b2072811dbd3c7a4 /ffmpeg.c | |
parent | d2084402e6034e8d49ea50ebe212c4e8783d028a (diff) | |
download | ffmpeg-6f8b1fcd4b34b636852090fdef05e7c2bbe3b88a.tar.gz |
ffmpeg: tell reset_options() if it is used on input or output files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -356,9 +356,10 @@ typedef struct OptionsContext { uint64_t limit_filesize; } OptionsContext; -static void reset_options(OptionsContext *o) +static void reset_options(OptionsContext *o, int is_input) { const OptionDef *po = options; + OptionsContext bak= *o; /* all OPT_SPEC and OPT_STRING can be freed in generic way */ while (po->name) { @@ -383,8 +384,9 @@ static void reset_options(OptionsContext *o) memset(o, 0, sizeof(*o)); - o->recording_time = INT64_MAX; o->limit_filesize = UINT64_MAX; + if(is_input) o->recording_time = bak.recording_time; + else o->recording_time = INT64_MAX; uninit_opts(); init_opts(); @@ -3297,7 +3299,7 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena av_freep(&opts); av_dict_free(&codec_names); - reset_options(o); + reset_options(o, 1); return 0; } @@ -3920,7 +3922,7 @@ static void opt_output_file(void *optctx, const char *filename) av_dict_free(&codec_names); av_freep(&forced_key_frames); - reset_options(o); + reset_options(o, 0); } /* same option as mencoder */ @@ -4456,7 +4458,7 @@ int main(int argc, char **argv) OptionsContext o = { 0 }; int64_t ti; - reset_options(&o); + reset_options(&o, 0); av_log_set_flags(AV_LOG_SKIP_REPEATED); |