diff --git a/libavformat/segment.c b/libavformat/segment.c index 2c7ba0e776..346c55814e 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -183,6 +183,14 @@ static int segment_mux_init(AVFormatContext *s) } } + for (i = 0; i < s->nb_programs; i++) { + ret = av_program_copy(oc, (const AVFormatContext *)s, s->programs[i]->id, 0); + if (ret < 0) { + av_log(s, AV_LOG_ERROR, "unable to transfer program %d to child muxer\n", s->programs[i]->id); + return ret; + } + } + return 0; }