[FFmpeg-devel] [PATCH] avcodec/ffv1dec: fix some unsupported pix_fmt
Jerome Martinez
jerome at mediaarea.net
Mon Jun 13 21:57:03 CEST 2016
Le 13/06/2016 à 19:31, Jerome Martinez a écrit :
> [...]
> - JPEG 2000 RCT 9/10/12/14 bit depths with alpha are mapped to a
> FFmpeg pix_fmt without alpha (e.g. AV_PIX_FMT_GBRP9 for 9-bit with
> alpha), which is not expected.
Sorry, I forgot a remark about this part of the patch: the decoder can
decode the bitstream, the issue is that the alpha content is trashed:
if (lbd)
*((uint32_t*)(src[0] + x*4 + stride[0]*y)) = b + (g<<8)
+ (r<<16) + (a<<24);
else {
*((uint16_t*)(src[0] + x*2 + stride[0]*y)) = b;
*((uint16_t*)(src[1] + x*2 + stride[1]*y)) = g;
*((uint16_t*)(src[2] + x*2 + stride[2]*y)) = r;
}
(lbd is 1 if s->avctx->bits_per_raw_sample <= 8, "a" is used in that case)
In my patch, I chose to forbid the decoding in order to not let the user
think that the decoding is lossless, but another possibility is to add a
warning.
More information about the ffmpeg-devel
mailing list