--- libavformat/matroskadec.c | 40 ++++++--------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index b1ef344aa7..71debe692a 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -749,25 +749,6 @@ static EbmlSyntax matroska_cluster_enter[] = { }; #undef CHILD_OF -static const CodecMime mkv_image_mime_tags[] = { - {"image/gif" , AV_CODEC_ID_GIF}, - {"image/jpeg" , AV_CODEC_ID_MJPEG}, - {"image/png" , AV_CODEC_ID_PNG}, - {"image/tiff" , AV_CODEC_ID_TIFF}, - - {"" , AV_CODEC_ID_NONE} -}; - -static const CodecMime mkv_mime_tags[] = { - {"text/plain" , AV_CODEC_ID_TEXT}, - {"application/x-truetype-font", AV_CODEC_ID_TTF}, - {"application/x-font" , AV_CODEC_ID_TTF}, - {"application/vnd.ms-opentype", AV_CODEC_ID_OTF}, - {"binary" , AV_CODEC_ID_BIN_DATA}, - - {"" , AV_CODEC_ID_NONE} -}; - static const char *const matroska_doctypes[] = { "matroska", "webm" }; static int matroska_read_close(AVFormatContext *s); @@ -2908,6 +2889,7 @@ static int matroska_read_header(AVFormatContext *s) attachments[j].bin.data && attachments[j].bin.size > 0)) { av_log(matroska->ctx, AV_LOG_ERROR, "incomplete attachment\n"); } else { + const AVCodecDescriptor *desc = avcodec_descriptor_get_by_mime_type(attachments[j].mime, NULL); AVStream *st = avformat_new_stream(s, NULL); if (!st) break; @@ -2917,17 +2899,12 @@ static int matroska_read_header(AVFormatContext *s) av_dict_set(&st->metadata, "title", attachments[j].description, 0); st->codecpar->codec_id = AV_CODEC_ID_NONE; - for (i = 0; mkv_image_mime_tags[i].id != AV_CODEC_ID_NONE; i++) { - if (!strncmp(mkv_image_mime_tags[i].str, attachments[j].mime, - strlen(mkv_image_mime_tags[i].str))) { - st->codecpar->codec_id = mkv_image_mime_tags[i].id; - break; - } - } + if (desc) + st->codecpar->codec_id = desc->id; attachments[j].stream = st; - if (st->codecpar->codec_id != AV_CODEC_ID_NONE) { + if (desc && desc->type == AVMEDIA_TYPE_VIDEO) { AVPacket *pkt = &st->attached_pic; st->disposition |= AV_DISPOSITION_ATTACHED_PIC; @@ -2947,13 +2924,8 @@ static int matroska_read_header(AVFormatContext *s) memcpy(st->codecpar->extradata, attachments[j].bin.data, attachments[j].bin.size); - for (i = 0; mkv_mime_tags[i].id != AV_CODEC_ID_NONE; i++) { - if (!strncmp(mkv_mime_tags[i].str, attachments[j].mime, - strlen(mkv_mime_tags[i].str))) { - st->codecpar->codec_id = mkv_mime_tags[i].id; - break; - } - } + if (!strcmp(attachments[j].mime, "binary")) + st->codecpar->codec_id = AV_CODEC_ID_BIN_DATA; } } } -- 2.27.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".