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