diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c index e8dae300e5..8a30ca6dff 100644 --- a/libavcodec/dpx.c +++ b/libavcodec/dpx.c @@ -140,11 +140,11 @@ static int decode_frame(AVCodecContext *avctx, case 12: case 16: if (endian) { - avctx->pix_fmt = PIX_FMT_RGB48BE; + avctx->pix_fmt = elements == 4 ? PIX_FMT_RGBA64BE : PIX_FMT_RGB48BE; } else { - avctx->pix_fmt = PIX_FMT_RGB48LE; + avctx->pix_fmt = elements == 4 ? PIX_FMT_RGBA64LE : PIX_FMT_RGB48LE; } - target_packet_size = 6; + target_packet_size = source_packet_size = elements * 2; break; default: