Browse Source

avconv: fix disabling auto mappings with -map_metadata

CC: libav-stable@libav.org
tags/n1.1
Anton Khirnov 13 years ago
parent
commit
a119c64e38
1 changed files with 7 additions and 3 deletions
  1. +7
    -3
      avconv_opt.c

+ 7
- 3
avconv_opt.c View File

@@ -326,6 +326,10 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor
if (type_in == 'c' || type_out == 'c') if (type_in == 'c' || type_out == 'c')
o->metadata_chapters_manual = 1; 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)\ #define METADATA_CHECK_INDEX(index, nb_elems, desc)\
if ((index) < 0 || (index) >= (nb_elems)) {\ if ((index) < 0 || (index) >= (nb_elems)) {\
av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\ av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\
@@ -1410,13 +1414,13 @@ loop_end:
char *p; char *p;
int in_file_index = strtol(o->metadata_map[i].u.str, &p, 0); 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) { 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); av_log(NULL, AV_LOG_FATAL, "Invalid input file index %d while processing metadata maps\n", in_file_index);
exit(1); 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 */ /* copy chapters */


Loading…
Cancel
Save