From e1fac6aa31b7037a37ec655ec2b630b13999a6bf Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Sun, 29 Oct 2017 12:32:16 +0100
Subject: [PATCH] remux: Copy old metadata dicts

---
 remux.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/remux.c b/remux.c
index 7160d1b..bd18c71 100644
--- a/remux.c
+++ b/remux.c
@@ -60,19 +60,19 @@ int main(int argc, char *argv[])
 		goto fail;
 	avformat_find_stream_info(demux, 0);
 	avformat_alloc_output_context2(&mux, 0, 0, path);
+	av_dict_copy(&mux->metadata, demux->metadata, 0);
 	parse_dict(&mux->metadata, jlookup(argv[4], "metadata"));
 	parse_chapters(mux, jlookup(argv[4], "chapters"), av_rescale_q(demux->duration, AV_TIME_BASE_Q, chapter_time_base));
 	idxmap = malloc(sizeof(int)*demux->nb_streams);
 	for (i = 0; i < demux->nb_streams; i ++)
 	{
+		idxmap[i] = -1;
 		if (demux->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO
 				&& demux->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO
 				&& demux->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE)
-		{
-			idxmap[i] = -1;
 			continue;
-		}
 		stream = avformat_new_stream(mux, 0);
+		av_dict_copy(&stream->metadata, mux->streams[i]->metadata, 0);
 		idxmap[i] = stream->index;
 		avcodec_parameters_copy(mux->streams[i]->codecpar,
 				demux->streams[i]->codecpar);
-- 
GitLab