diff options
author | Peter Ross <pross@xvid.org> | 2012-01-13 19:59:29 +1100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-01-13 15:57:34 +0100 |
commit | 3a1df393b8a1ee9304a34fbc4134a2a27e2b1f12 (patch) | |
tree | dfecaedc19f6d4e43e07190612157cd5ea47345e | |
parent | c949d5b15d2af23dcbbe2cb35b819d4930625d15 (diff) | |
download | ffmpeg-3a1df393b8a1ee9304a34fbc4134a2a27e2b1f12.tar.gz |
ico: favour BITMAPHEADER dimensions over IconEntry dimensions
Fixes ticket 759.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/icodec.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libavformat/icodec.c b/libavformat/icodec.c index d53c33ab0a..eab0478211 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -64,6 +64,7 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap) for (i = 0; i < ico->nb_images; i++) { AVStream *st; + int tmp; if (avio_seek(pb, 6 + i * 16, SEEK_SET) < 0) break; @@ -97,10 +98,12 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap) if (ico->images[i].size < 40) return AVERROR_INVALIDDATA; st->codec->codec_id = CODEC_ID_BMP; - if (!st->codec->width || !st->codec->height) { - st->codec->width = avio_rl32(pb); - st->codec->height = avio_rl32(pb) / 2; - } + tmp = avio_rl32(pb); + if (tmp) + st->codec->width = tmp; + tmp = avio_rl32(pb); + if (tmp) + st->codec->height = tmp / 2; break; default: av_log_ask_for_sample(s, "unsupported codec\n"); |