diff --git a/libavformat/matroska.c b/libavformat/matroska.c index 44d07dda08..32146d7c04 100644 --- a/libavformat/matroska.c +++ b/libavformat/matroska.c @@ -224,6 +224,7 @@ static CodecTags codec_tags[]={ {"A_DTS" , CODEC_ID_DTS}, {"A_VORBIS" , CODEC_ID_VORBIS}, {"A_AAC" , CODEC_ID_AAC}, + {"A_FLAC" , CODEC_ID_FLAC}, {"A_WAVPACK4" , CODEC_ID_WAVPACK}, {"A_TTA1" , CODEC_ID_TTA}, {NULL , CODEC_ID_NONE} @@ -2265,6 +2266,14 @@ matroska_read_header (AVFormatContext *s, } } + else if (codec_id == CODEC_ID_FLAC) { + AVPacket *pkt = av_mallocz(sizeof(AVPacket)); + av_new_packet(pkt, track->codec_priv_size); + memcpy(pkt->data, track->codec_priv, track->codec_priv_size); + matroska_queue_packet(matroska, pkt); + track->codec_priv_size = 0; + } + else if (codec_id == CODEC_ID_TTA) { MatroskaAudioTrack *audiotrack = (MatroskaAudioTrack *) track; ByteIOContext b;