/* Get pixel format and the size of the pixel */
if (avctx->codec_tag == MKTAG('I', 'S', 'C', 'C')) {
- avctx->pix_fmt = AV_PIX_FMT_BGRA;
- ctx->component_size = 4;
+ if (avctx->extradata && avctx->extradata_size == 4) {
+ if ((avctx->extradata[0] >> 1) & 1) {
+ avctx->pix_fmt = AV_PIX_FMT_BGRA;
+ ctx->component_size = 4;
+ } else {
+ avctx->pix_fmt = AV_PIX_FMT_BGR24;
+ ctx->component_size = 3;
+ }
+ } else {
+ avctx->pix_fmt = AV_PIX_FMT_BGRA;
+ ctx->component_size = 4;
+ }
} else if (avctx->codec_tag == MKTAG('R', 'S', 'C', 'C')) {
ctx->component_size = avctx->bits_per_coded_sample / 8;
switch (avctx->bits_per_coded_sample) {