Commit aec340c5 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/bmp: Analyze BGRA files alpha channel to choose pixel format

BGRA BMPs commonly do contain an all transparent alpha channel
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 319898bb
......@@ -337,6 +337,20 @@ static int bmp_decode_frame(AVCodecContext *avctx,
return AVERROR_INVALIDDATA;
}
}
if (avctx->pix_fmt == AV_PIX_FMT_BGRA) {
for (i = 0; i < avctx->height; i++) {
int j;
uint8_t *ptr = p->data[0] + p->linesize[0]*i + 3;
for (j = 0; j < avctx->width; j++) {
if (ptr[4*j])
break;
}
if (j < avctx->width)
break;
}
if (i == avctx->height)
avctx->pix_fmt = p->format = AV_PIX_FMT_BGR0;
}
*got_frame = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment