]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Add known BMP header sizes.
authorkostya <kostya@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 24 Nov 2008 10:53:13 +0000 (10:53 +0000)
committerkostya <kostya@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 24 Nov 2008 10:53:13 +0000 (10:53 +0000)
Now 11B*.bmp from samples repository can be decoded.

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15922 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/bmp.c

index ca2e201b549a38da10c12deffe415171a120a974..f4205c9973eb597a4530a9d37b2c6d3f7dd1c49a 100644 (file)
@@ -85,13 +85,19 @@ static int bmp_decode_frame(AVCodecContext *avctx,
         return -1;
     }
 
-    if (ihsize == 40) {
+    switch(ihsize){
+    case  40: // windib v3
+    case  64: // OS/2 v2
+    case 108: // windib v4
+    case 124: // windib v5
         width = bytestream_get_le32(&buf);
         height = bytestream_get_le32(&buf);
-    } else if (ihsize == 12) {
+        break;
+    case  12: // OS/2 v1
         width  = bytestream_get_le16(&buf);
         height = bytestream_get_le16(&buf);
-    } else {
+        break;
+    default:
         av_log(avctx, AV_LOG_ERROR, "unsupported BMP file, patch welcome\n");
         return -1;
     }