[FFmpeg-cvslog] avconv: fix disabling auto mappings with -map_metadata

Anton Khirnov git at videolan.org
Wed Oct 17 14:34:10 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Oct 16 09:53:39 2012 +0200| [a119c64e38bd9bfc5c3c94b70b321619c6fabac9] | committer: Anton Khirnov

avconv: fix disabling auto mappings with -map_metadata

CC: libav-stable at libav.org

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a119c64e38bd9bfc5c3c94b70b321619c6fabac9
---

 avconv_opt.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/avconv_opt.c b/avconv_opt.c
index 058d5a3..79444eb 100644
--- a/avconv_opt.c
+++ b/avconv_opt.c
@@ -326,6 +326,10 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor
     if (type_in == 'c' || type_out == 'c')
         o->metadata_chapters_manual = 1;
 
+    /* ic is NULL when just disabling automatic mappings */
+    if (!ic)
+        return 0;
+
 #define METADATA_CHECK_INDEX(index, nb_elems, desc)\
     if ((index) < 0 || (index) >= (nb_elems)) {\
         av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\
@@ -1410,13 +1414,13 @@ loop_end:
         char *p;
         int in_file_index = strtol(o->metadata_map[i].u.str, &p, 0);
 
-        if (in_file_index < 0)
-            continue;
         if (in_file_index >= nb_input_files) {
             av_log(NULL, AV_LOG_FATAL, "Invalid input file index %d while processing metadata maps\n", in_file_index);
             exit(1);
         }
-        copy_metadata(o->metadata_map[i].specifier, *p ? p + 1 : p, oc, input_files[in_file_index]->ctx, o);
+        copy_metadata(o->metadata_map[i].specifier, *p ? p + 1 : p, oc,
+                      in_file_index >= 0 ?
+                      input_files[in_file_index]->ctx : NULL, o);
     }
 
     /* copy chapters */



More information about the ffmpeg-cvslog mailing list