| @@ -168,17 +168,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 | |||||
| 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 | |||||
| /* handle planemap setup later for decoding rgb24 data as rbg32 */ | |||||
| 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", | ||||
| @@ -186,6 +176,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; | ||||
| } | } | ||||