[FFmpeg-devel] [PATCH 19/23] avformat/matroskaenc: Improve mimetype search
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Wed Nov 6 04:49:18 EET 2019
Use the mime_types of the corresponding AVCodecDescriptor instead of own
arrays. The former are more encompassing.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
libavcodec/codec_desc.c | 1 +
libavformat/matroskaenc.c | 14 +++-----------
2 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 0602ecb1b5..837b09e7f4 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -3020,6 +3020,7 @@ static const AVCodecDescriptor codec_descriptors[] = {
.name = "text",
.long_name = NULL_IF_CONFIG_SMALL("raw UTF-8 text"),
.props = AV_CODEC_PROP_TEXT_SUB,
+ .mime_types= MT("text/plain"),
},
{
.id = AV_CODEC_ID_XSUB,
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 19d9b0bc66..f2c8a66a03 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1694,17 +1694,9 @@ static int mkv_write_attachments(AVFormatContext *s)
if (t = av_dict_get(st->metadata, "mimetype", NULL, 0))
mimetype = t->value;
else if (st->codecpar->codec_id != AV_CODEC_ID_NONE ) {
- int i;
- for (i = 0; ff_mkv_mime_tags[i].id != AV_CODEC_ID_NONE; i++)
- if (ff_mkv_mime_tags[i].id == st->codecpar->codec_id) {
- 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->codecpar->codec_id) {
- mimetype = ff_mkv_image_mime_tags[i].str;
- break;
- }
+ const AVCodecDescriptor *desc = avcodec_descriptor_get(st->codecpar->codec_id);
+ if (desc && desc->mime_types)
+ mimetype = desc->mime_types[0];
}
if (!mimetype) {
av_log(s, AV_LOG_ERROR, "Attachment stream %d has no mimetype tag and "
--
2.20.1
More information about the ffmpeg-devel
mailing list