summaryrefslogtreecommitdiff
path: root/libavformat/matroskaenc.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-04-03 16:11:53 +0200
committerAnton Khirnov <anton@khirnov.net>2015-04-08 12:36:53 +0200
commitc4d37cd9ef6e374bb888f6273259b10fac5bd909 (patch)
tree415341da9af879ce2952eb5f1dc6ff85f19fbbe5 /libavformat/matroskaenc.c
parent27f274628234c1f934b9a6a6380ed567c1b4ceae (diff)
matroskadec: export cover art correctly
Generally, libavformat exports cover art pictures as video streams with 1 packet and AV_DISPOSITION_ATTACHED_PIC set. Only matroskadec exported it as attachment with codec_id set to AV_CODEC_ID_MJPEG. Obviously, this should be consistent, so change the Matroska demuxer to export a AV_DISPOSITION_ATTACHED_PIC pseudo video stream. Matroska muxing is probably incorrect too. I know that it can create broken files with an audio track and just 1 video frame when e.g. remuxing mp3 with APIC to mkv. But for now this commit does not change anything about muxing, and also continues to write attachments with AV_CODEC_ID_MJPEG should the muxer application have special knowledge that the Matroska is broken in this way. Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r--libavformat/matroskaenc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 49e5bf3067..91c4459dad 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1098,6 +1098,11 @@ static int mkv_write_attachments(AVFormatContext *s)
mimetype = ff_mkv_mime_tags[i].str;
break;
}
+ for (i = 0; ff_mkv_image_mime_tags[i].id != AV_CODEC_ID_NONE; i++)
+ if (ff_mkv_image_mime_tags[i].id == st->codec->codec_id) {
+ mimetype = ff_mkv_image_mime_tags[i].str;
+ break;
+ }
}
if (!mimetype) {
av_log(s, AV_LOG_ERROR, "Attachment stream %d has no mimetype tag and "