summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-10-31 14:36:38 +0100
committerLuca Barbato <lu_zero@gentoo.org>2015-11-03 15:03:12 +0100
commitf128b8e19ac7f702adae899ab91cc1e80f238761 (patch)
tree6ab7adc2e5ed3881ccbd5eb525db8c83e6068493 /libavformat/mov.c
parent50d2a3b5f34e6f99e5ffe17f2be5eb1815555960 (diff)
mov: detect cover art pictures by content
I've got some m4a samples that had jpeg cover art marked as png. Since these files were supposedly written by iTunes, and other software can read it (e.g. clementine does), this should be worked around. Since png has a very simple to detect header, while it's apparently a real pain to detect jpeg in the general case, try to detect png and assume jpeg otherwise. Not bothering with bmp, as I have no test case. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 95dc1ee7ad..9532213023 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -200,6 +200,14 @@ static int mov_read_covr(MOVContext *c, AVIOContext *pb, int type, int len)
if (ret < 0)
return ret;
+ if (pkt.size >= 8 && id != AV_CODEC_ID_BMP) {
+ if (AV_RB64(pkt.data) == 0x89504e470d0a1a0a) {
+ id = AV_CODEC_ID_PNG;
+ } else {
+ id = AV_CODEC_ID_MJPEG;
+ }
+ }
+
st->disposition |= AV_DISPOSITION_ATTACHED_PIC;
st->attached_pic = pkt;