aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-03-16 04:07:59 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-03-17 03:16:09 +0100
commit4c1da0d11e03ba0612a596cc62566321ad088319 (patch)
tree00f11f62405161ce6940606204b73480f97c1c97
parentf8353d5fdab24ecfb0989c9751007592f83543da (diff)
downloadffmpeg-4c1da0d11e03ba0612a596cc62566321ad088319.tar.gz
ffmpeg: allow selective and complete disabling of map_metadata.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--ffmpeg.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 9979d25871..6d1d3f710d 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3424,6 +3424,16 @@ static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFor
parse_meta_type(inspec, &type_in, &idx_in, &istream_spec);
parse_meta_type(outspec, &type_out, &idx_out, &ostream_spec);
+ if (!ic) {
+ if (type_out == 'g' || !*outspec)
+ o->metadata_global_manual = 1;
+ if (type_out == 's' || !*outspec)
+ o->metadata_streams_manual = 1;
+ if (type_out == 'c' || !*outspec)
+ o->metadata_chapters_manual = 1;
+ return 0;
+ }
+
if (type_in == 'g' || type_out == 'g')
o->metadata_global_manual = 1;
if (type_in == 's' || type_out == 's')
@@ -4511,13 +4521,11 @@ static void opt_output_file(void *optctx, const char *filename)
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_program(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 */