diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-03-12 20:58:45 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-12 20:58:56 +0100 |
commit | 49e87819d09e4c7a7bbbfa19dff12c2d0db29584 (patch) | |
tree | 5e8ccc2b1795589b981b90e3555ae418ba0b5972 /ffmpeg_opt.c | |
parent | cde1e7db3e67a8f7ed6e3389fae349ceb91e866d (diff) | |
parent | 1da54e908eba73eb86f5d614c51f06811c85c3ea (diff) | |
download | ffmpeg-49e87819d09e4c7a7bbbfa19dff12c2d0db29584.tar.gz |
Merge commit '1da54e908eba73eb86f5d614c51f06811c85c3ea'
* commit '1da54e908eba73eb86f5d614c51f06811c85c3ea':
avconv: use a local variable for OutputFile in open_output_file().
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg_opt.c')
-rw-r--r-- | ffmpeg_opt.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index e43919eb40..e6a9ee7679 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -1446,6 +1446,7 @@ static int open_output_file(OptionsContext *o, const char *filename) AVFormatContext *oc; int i, j, err; AVOutputFormat *file_oformat; + OutputFile *of; OutputStream *ost; InputStream *ist; @@ -1682,18 +1683,20 @@ loop_end: } GROW_ARRAY(output_files, nb_output_files); - if (!(output_files[nb_output_files - 1] = av_mallocz(sizeof(*output_files[0])))) + of = av_mallocz(sizeof(*of)); + if (!of) exit(1); + output_files[nb_output_files - 1] = of; - output_files[nb_output_files - 1]->ctx = oc; - output_files[nb_output_files - 1]->ost_index = nb_output_streams - oc->nb_streams; - output_files[nb_output_files - 1]->recording_time = o->recording_time; + of->ctx = oc; + of->ost_index = nb_output_streams - oc->nb_streams; + of->recording_time = o->recording_time; if (o->recording_time != INT64_MAX) oc->duration = o->recording_time; - output_files[nb_output_files - 1]->start_time = o->start_time; - output_files[nb_output_files - 1]->limit_filesize = o->limit_filesize; - output_files[nb_output_files - 1]->shortest = o->shortest; - av_dict_copy(&output_files[nb_output_files - 1]->opts, o->g->format_opts, 0); + of->start_time = o->start_time; + of->limit_filesize = o->limit_filesize; + of->shortest = o->shortest; + av_dict_copy(&of->opts, o->g->format_opts, 0); /* check filename in case of an image number is expected */ if (oc->oformat->flags & AVFMT_NEEDNUMBER) { @@ -1710,7 +1713,7 @@ loop_end: /* open the file */ if ((err = avio_open2(&oc->pb, filename, AVIO_FLAG_WRITE, &oc->interrupt_callback, - &output_files[nb_output_files - 1]->opts)) < 0) { + &of->opts)) < 0) { print_error(filename, err); exit(1); } @@ -1720,7 +1723,7 @@ loop_end: if (o->mux_preload) { uint8_t buf[64]; snprintf(buf, sizeof(buf), "%d", (int)(o->mux_preload*AV_TIME_BASE)); - av_dict_set(&output_files[nb_output_files - 1]->opts, "preload", buf, 0); + av_dict_set(&of->opts, "preload", buf, 0); } oc->max_delay = (int)(o->mux_max_delay * AV_TIME_BASE); @@ -1755,7 +1758,7 @@ loop_end: } } if (o->chapters_input_file >= 0) - copy_chapters(input_files[o->chapters_input_file], output_files[nb_output_files - 1], + copy_chapters(input_files[o->chapters_input_file], of, !o->metadata_chapters_manual); /* copy global metadata by default */ @@ -1767,7 +1770,7 @@ loop_end: av_dict_set(&oc->metadata, "creation_time", NULL, 0); } if (!o->metadata_streams_manual) - for (i = output_files[nb_output_files - 1]->ost_index; i < nb_output_streams; i++) { + for (i = of->ost_index; i < nb_output_streams; i++) { InputStream *ist; if (output_streams[i]->source_index < 0) /* this is true e.g. for attached files */ continue; |