ffmpeg | branch: master | Michael Niedermayer <mich...@niedermayer.cc> | Thu Sep 10 16:06:14 2015 +0200| [aec340c533293d6230573aaf3fe22a74e5454b99] | committer: 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: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=aec340c533293d6230573aaf3fe22a74e5454b99 --- libavcodec/bmp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavcodec/bmp.c b/libavcodec/bmp.c index 42270da..3019d01 100644 --- a/libavcodec/bmp.c +++ b/libavcodec/bmp.c @@ -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; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog