mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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
This commit is contained in:
parent
1829e19528
commit
d0abe80aa4
9
ffmpeg.c
9
ffmpeg.c
@ -129,6 +129,8 @@ static int nb_stream_maps;
|
|||||||
/* first item specifies output metadata, second is input */
|
/* first item specifies output metadata, second is input */
|
||||||
static AVMetaDataMap (*meta_data_maps)[2] = NULL;
|
static AVMetaDataMap (*meta_data_maps)[2] = NULL;
|
||||||
static int nb_meta_data_maps;
|
static int nb_meta_data_maps;
|
||||||
|
static int metadata_streams_autocopy = 1;
|
||||||
|
static int metadata_chapters_autocopy = 1;
|
||||||
|
|
||||||
/* indexed by output file stream index */
|
/* indexed by output file stream index */
|
||||||
static int *streamid_map = NULL;
|
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->start = FFMAX(0, in_ch->start - ts_off);
|
||||||
out_ch->end = FFMIN(rt, in_ch->end - 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)))
|
while ((t = av_metadata_get(in_ch->metadata, "", t, AV_METADATA_IGNORE_SUFFIX)))
|
||||||
av_metadata_set2(&out_ch->metadata, t->key, t->value, 0);
|
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;
|
codec = ost->st->codec;
|
||||||
icodec = ist->st->codec;
|
icodec = ist->st->codec;
|
||||||
|
|
||||||
|
if (metadata_streams_autocopy)
|
||||||
while ((t = av_metadata_get(ist->st->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) {
|
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);
|
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 = &meta_data_maps[nb_meta_data_maps - 1][1];
|
||||||
m1->file = strtol(p, &p, 0);
|
m1->file = strtol(p, &p, 0);
|
||||||
parse_meta_type(p, &m1->type, &m1->index, &p);
|
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)
|
static void opt_input_ts_scale(const char *arg)
|
||||||
|
Loading…
Reference in New Issue
Block a user