From a99dd5f6a4cf263bdbbb18f6b665f3399995ab26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 1 Apr 2021 14:26:45 +0300 Subject: [PATCH] mov: Pick up "com.apple.quicktime.artwork" as cover art MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/mov.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 2e061a55d1..329bf3b207 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -402,7 +402,18 @@ retry: str_size = data_size - 16; atom.size -= 16; - if (atom.type == MKTAG('c', 'o', 'v', 'r')) { + if (!key && c->found_hdlr_mdta && c->meta_keys) { + uint32_t index = AV_RB32(&atom.type); + if (index < c->meta_keys_count && index > 0) { + key = c->meta_keys[index]; + } else if (atom.type != MKTAG('c', 'o', 'v', 'r')) { + av_log(c->fc, AV_LOG_WARNING, + "The index of 'data' is out of range: %"PRId32" < 1 or >= %d.\n", + index, c->meta_keys_count); + } + } + if (atom.type == MKTAG('c', 'o', 'v', 'r') || + (key && !strcmp(key, "com.apple.quicktime.artwork"))) { int ret = mov_read_covr(c, pb, data_type, str_size); if (ret < 0) { av_log(c->fc, AV_LOG_ERROR, "Error parsing cover art.\n"); @@ -412,15 +423,6 @@ retry: if (atom.size > 8) goto retry; return ret; - } else if (!key && c->found_hdlr_mdta && c->meta_keys) { - uint32_t index = AV_RB32(&atom.type); - if (index < c->meta_keys_count && index > 0) { - key = c->meta_keys[index]; - } else { - av_log(c->fc, AV_LOG_WARNING, - "The index of 'data' is out of range: %"PRId32" < 1 or >= %d.\n", - index, c->meta_keys_count); - } } } else return 0; } else if (atom.size > 4 && key && !c->itunes_metadata && !raw) {