---
 avconv.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/avconv.c b/avconv.c
index ebf48c5..eaa79a0 100644
--- a/avconv.c
+++ b/avconv.c
@@ -102,8 +102,6 @@ static const OptionDef options[];
 static const char *last_asked_format = NULL;
 static AVDictionary *ts_scale;
 
-static AVDictionary *output_opts[MAX_FILES];
-
 static StreamMap *stream_maps = NULL;
 static int nb_stream_maps;
 
@@ -310,6 +308,7 @@ typedef struct InputFile {
 
 typedef struct OutputFile {
     AVFormatContext *ctx;
+    AVDictionary *opts;
 } OutputFile;
 
 static InputStream *input_streams = NULL;
@@ -447,7 +446,7 @@ static int exit_program(int ret)
             avio_close(s->pb);
         avformat_free_context(s);
         av_free(output_streams_for_file[i]);
-        av_dict_free(&output_opts[i]);
+        av_dict_free(&output_files[i].opts);
     }
     for(i=0;i<nb_input_files;i++) {
         av_close_input_file(input_files[i].ctx);
@@ -2170,12 +2169,12 @@ static int transcode(OutputFile *output_files,
     /* open files and write file headers */
     for (i = 0; i < nb_output_files; i++) {
         os = output_files[i].ctx;
-        if (avformat_write_header(os, &output_opts[i]) < 0) {
+        if (avformat_write_header(os, &output_files[i].opts) < 0) {
             snprintf(error, sizeof(error), "Could not write header for output 
file #%d (incorrect codec parameters ?)", i);
             ret = AVERROR(EINVAL);
             goto dump_format;
         }
-        assert_avoptions(output_opts[i]);
+        assert_avoptions(output_files[i].opts);
         if (strcmp(os->oformat->name, "rtp")) {
             want_sdp = 0;
         }
@@ -3570,12 +3569,12 @@ static void opt_output_file(const char *filename)
     av_dict_copy(&oc->metadata, metadata, 0);
     av_dict_free(&metadata);
 
-    av_dict_copy(&output_opts[nb_output_files], format_opts, 0);
 
     if (nb_output_files == MAX_FILES)
         exit_program(1);                /* a temporary hack until all the 
other MAX_FILES-sized arrays are removed */
     output_files = grow_array(output_files, sizeof(*output_files), 
&nb_output_files, nb_output_files + 1);
     output_files[nb_output_files - 1].ctx       = oc;
+    av_dict_copy(&output_files[nb_output_files - 1].opts, format_opts, 0);
 
     /* check filename in case of an image number is expected */
     if (oc->oformat->flags & AVFMT_NEEDNUMBER) {
-- 
1.7.5.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to