[FFmpeg-cvslog] mov: detect cover art pictures by content

wm4 git at videolan.org
Tue Nov 10 18:08:24 CET 2015


ffmpeg | branch: master | wm4 <nfxjfg at googlemail.com> | Sat Oct 31 14:36:38 2015 +0100| [f128b8e19ac7f702adae899ab91cc1e80f238761] | committer: Luca Barbato

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 at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f128b8e19ac7f702adae899ab91cc1e80f238761
---

 libavformat/mov.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 95dc1ee..9532213 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;



More information about the ffmpeg-cvslog mailing list