mov: Pick up "com.apple.quicktime.artwork" as cover art

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2021-04-01 14:26:45 +03:00
parent 7ec7e6aa2d
commit a99dd5f6a4
1 changed files with 12 additions and 10 deletions

View File

@ -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) {