diff options
author | Anton Khirnov <wyskas@gmail.com> | 2010-11-02 09:12:54 +0300 |
---|---|---|
committer | Anton Khirnov <wyskas@gmail.com> | 2010-11-02 09:12:54 +0300 |
commit | d0abe80aa4297801eab7eb61ac2e98d74681715f (patch) | |
tree | f2484fba8039f3b762e62a69c330c6d4130300b2 /ffmpeg.c | |
parent | 1829e19528fe9f67e7884c6a136d007b8c1663b6 (diff) |
ffmpeg.c: don't autocopy stream/chapter metadata if manual mapping is specified
Originally committed as revision 25636 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -129,6 +129,8 @@ static int nb_stream_maps; /* first item specifies output metadata, second is input */ static AVMetaDataMap (*meta_data_maps)[2] = NULL; static int nb_meta_data_maps; +static int metadata_streams_autocopy = 1; +static int metadata_chapters_autocopy = 1; /* indexed by output file stream index */ static int *streamid_map = NULL; @@ -1860,6 +1862,7 @@ static int copy_chapters(int infile, int outfile) out_ch->start = FFMAX(0, in_ch->start - ts_off); out_ch->end = FFMIN(rt, in_ch->end - ts_off); + if (metadata_chapters_autocopy) while ((t = av_metadata_get(in_ch->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) av_metadata_set2(&out_ch->metadata, t->key, t->value, 0); @@ -2089,6 +2092,7 @@ static int transcode(AVFormatContext **output_files, codec = ost->st->codec; icodec = ist->st->codec; + if (metadata_streams_autocopy) while ((t = av_metadata_get(ist->st->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) { av_metadata_set2(&ost->st->metadata, t->key, t->value, AV_METADATA_DONT_OVERWRITE); } @@ -2950,6 +2954,11 @@ static void opt_map_meta_data(const char *arg) m1 = &meta_data_maps[nb_meta_data_maps - 1][1]; m1->file = strtol(p, &p, 0); parse_meta_type(p, &m1->type, &m1->index, &p); + + if (m->type == 's' || m1->type == 's') + metadata_streams_autocopy = 0; + if (m->type == 'c' || m1->type == 'c') + metadata_chapters_autocopy = 0; } static void opt_input_ts_scale(const char *arg) |