Mercurial > libavcodec.hg
comparison bmp.c @ 6594:e094b1b11e1d libavcodec
Support for BMP os2v1.
author | benoit |
---|---|
date | Mon, 14 Apr 2008 13:13:08 +0000 |
parents | 48759bfbd073 |
children | 92eb6af449dc |
comparison
equal
deleted
inserted
replaced
6593:e47a04d636a7 | 6594:e094b1b11e1d |
---|---|
82 if(ihsize + 14 > hsize){ | 82 if(ihsize + 14 > hsize){ |
83 av_log(avctx, AV_LOG_ERROR, "invalid header size %d\n", hsize); | 83 av_log(avctx, AV_LOG_ERROR, "invalid header size %d\n", hsize); |
84 return -1; | 84 return -1; |
85 } | 85 } |
86 | 86 |
87 if (ihsize == 40) { | |
87 width = bytestream_get_le32(&buf); | 88 width = bytestream_get_le32(&buf); |
88 height = bytestream_get_le32(&buf); | 89 height = bytestream_get_le32(&buf); |
90 } else if (ihsize == 12) { | |
91 width = bytestream_get_le16(&buf); | |
92 height = bytestream_get_le16(&buf); | |
93 } else { | |
94 av_log(avctx, AV_LOG_ERROR, "unsupported BMP file, patch welcome"); | |
95 return -1; | |
96 } | |
89 | 97 |
90 if(bytestream_get_le16(&buf) != 1){ /* planes */ | 98 if(bytestream_get_le16(&buf) != 1){ /* planes */ |
91 av_log(avctx, AV_LOG_ERROR, "invalid BMP header\n"); | 99 av_log(avctx, AV_LOG_ERROR, "invalid BMP header\n"); |
92 return -1; | 100 return -1; |
93 } | 101 } |
94 | 102 |
95 depth = bytestream_get_le16(&buf); | 103 depth = bytestream_get_le16(&buf); |
96 | 104 |
97 if(ihsize > 16) | 105 if(ihsize == 40) |
98 comp = bytestream_get_le32(&buf); | 106 comp = bytestream_get_le32(&buf); |
99 else | 107 else |
100 comp = BMP_RGB; | 108 comp = BMP_RGB; |
101 | 109 |
102 if(comp != BMP_RGB && comp != BMP_BITFIELDS){ | 110 if(comp != BMP_RGB && comp != BMP_BITFIELDS){ |