ffmpeg: copy stream metadata.

Patch by Anton Khirnov wyskasgmailcom

Originally committed as revision 22126 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Anton Khirnov 2010-03-01 07:22:59 +00:00 committed by Benoit Fouet
parent bc99737689
commit c71591a509

View File

@ -1837,7 +1837,7 @@ static int av_encode(AVFormatContext **output_files,
/* for each output stream, we compute the right encoding parameters */ /* for each output stream, we compute the right encoding parameters */
for(i=0;i<nb_ostreams;i++) { for(i=0;i<nb_ostreams;i++) {
AVMetadataTag *lang; AVMetadataTag *t = NULL, *lang = NULL;
ost = ost_table[i]; ost = ost_table[i];
os = output_files[ost->file_index]; os = output_files[ost->file_index];
ist = ist_table[ost->source_index]; ist = ist_table[ost->source_index];
@ -1845,9 +1845,13 @@ static int av_encode(AVFormatContext **output_files,
codec = ost->st->codec; codec = ost->st->codec;
icodec = ist->st->codec; icodec = ist->st->codec;
if ((lang=av_metadata_get(ist->st->metadata, "language", NULL, 0)) if (av_metadata_get(ist->st->metadata, "language", NULL, 0))
&& !av_metadata_get(ost->st->metadata, "language", NULL, 0)) lang = av_metadata_get(ost->st->metadata, "language", NULL, 0);
av_metadata_set(&ost->st->metadata, "language", lang->value); while ((t = av_metadata_get(ist->st->metadata, "", t, AV_METADATA_IGNORE_SUFFIX))) {
if (lang && !strcmp(t->key, "language"))
continue;
av_metadata_set2(&ost->st->metadata, t->key, t->value, NULL);
}
ost->st->disposition = ist->st->disposition; ost->st->disposition = ist->st->disposition;
codec->bits_per_raw_sample= icodec->bits_per_raw_sample; codec->bits_per_raw_sample= icodec->bits_per_raw_sample;