diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 56b882eead..f208ac567d 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -1935,7 +1935,15 @@ static int open_output_file(OptionsContext *o, const char *filename) } } } - /* do something with data? */ + /* Data only if codec id match */ + if (!o->data_disable ) { + enum AVCodecID codec_id = av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_DATA); + for (i = 0; codec_id != AV_CODEC_ID_NONE && i < nb_input_streams; i++) { + if (input_streams[i]->st->codec->codec_type == AVMEDIA_TYPE_DATA + && input_streams[i]->st->codec->codec_id == codec_id ) + new_data_stream(o, oc, i); + } + } } else { for (i = 0; i < o->nb_stream_maps; i++) { StreamMap *map = &o->stream_maps[i];