|
|
@ -159,17 +159,7 @@ static av_cold int decode_init(AVCodecContext *avctx) |
|
|
|
case 32: |
|
|
|
case 32: |
|
|
|
avctx->pix_fmt = AV_PIX_FMT_RGB32; |
|
|
|
avctx->pix_fmt = AV_PIX_FMT_RGB32; |
|
|
|
c->planes = 4; |
|
|
|
c->planes = 4; |
|
|
|
#if HAVE_BIGENDIAN |
|
|
|
/* handle planemap setup later for decoding rgb24 data as rbg32 */ |
|
|
|
c->planemap[0] = 1; // 1st plane is red
|
|
|
|
|
|
|
|
c->planemap[1] = 2; // 2nd plane is green
|
|
|
|
|
|
|
|
c->planemap[2] = 3; // 3rd plane is blue
|
|
|
|
|
|
|
|
c->planemap[3] = 0; // 4th plane is alpha
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
c->planemap[0] = 2; // 1st plane is red
|
|
|
|
|
|
|
|
c->planemap[1] = 1; // 2nd plane is green
|
|
|
|
|
|
|
|
c->planemap[2] = 0; // 3rd plane is blue
|
|
|
|
|
|
|
|
c->planemap[3] = 3; // 4th plane is alpha
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n", |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Error: Unsupported color depth: %u.\n", |
|
|
@ -177,6 +167,12 @@ static av_cold int decode_init(AVCodecContext *avctx) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (avctx->pix_fmt == AV_PIX_FMT_RGB32) { |
|
|
|
|
|
|
|
c->planemap[0] = HAVE_BIGENDIAN ? 1 : 2; // 1st plane is red
|
|
|
|
|
|
|
|
c->planemap[1] = HAVE_BIGENDIAN ? 2 : 1; // 2nd plane is green
|
|
|
|
|
|
|
|
c->planemap[2] = HAVE_BIGENDIAN ? 3 : 0; // 3rd plane is blue
|
|
|
|
|
|
|
|
c->planemap[3] = HAVE_BIGENDIAN ? 0 : 3; // 4th plane is alpha
|
|
|
|
|
|
|
|
} |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|