diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index be70e7a6f1..d9bc31daee 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1877,9 +1877,13 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, // look for a codec ID string specific to mkv to use, // if none are found, use AVI codes - if (par->codec_id != AV_CODEC_ID_RAWVIDEO || par->codec_tag) { + if (par->codec_id == AV_CODEC_ID_FFV1) { + /* FFV1 is actually supported natively in Matroska, + * yet we use the VfW way to mux it for compatibility + * with old demuxers. (FIXME: Are they really important?) */ + } else if (par->codec_id != AV_CODEC_ID_RAWVIDEO || par->codec_tag) { for (j = 0; ff_mkv_codec_tags[j].id != AV_CODEC_ID_NONE; j++) { - if (ff_mkv_codec_tags[j].id == par->codec_id && par->codec_id != AV_CODEC_ID_FFV1) { + if (ff_mkv_codec_tags[j].id == par->codec_id) { put_ebml_string(pb, MATROSKA_ID_CODECID, ff_mkv_codec_tags[j].str); native_id = 1; break;