1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-08 13:22:53 +02:00

avcodec/dpx: add support for 10bit gray

This commit is contained in:
Paul B Mahol 2018-12-04 21:04:05 +01:00
parent ea68e02c6d
commit ed5680f37e

View File

@ -310,6 +310,9 @@ static int decode_frame(AVCodecContext *avctx,
case 51121: case 51121:
avctx->pix_fmt = AV_PIX_FMT_GBRAP12; avctx->pix_fmt = AV_PIX_FMT_GBRAP12;
break; break;
case 6101:
avctx->pix_fmt = AV_PIX_FMT_GRAY10;
break;
case 6161: case 6161:
avctx->pix_fmt = AV_PIX_FMT_GRAY16BE; avctx->pix_fmt = AV_PIX_FMT_GRAY16BE;
break; break;
@ -362,12 +365,14 @@ static int decode_frame(AVCodecContext *avctx,
(uint16_t*)ptr[3]}; (uint16_t*)ptr[3]};
int shift = packing == 1 ? 22 : 20; int shift = packing == 1 ? 22 : 20;
for (y = 0; y < avctx->width; y++) { for (y = 0; y < avctx->width; y++) {
*dst[2]++ = read10in32(&buf, &rgbBuffer, if (elements >= 3)
&n_datum, endian, shift); *dst[2]++ = read10in32(&buf, &rgbBuffer,
&n_datum, endian, shift);
*dst[0]++ = read10in32(&buf, &rgbBuffer, *dst[0]++ = read10in32(&buf, &rgbBuffer,
&n_datum, endian, shift); &n_datum, endian, shift);
*dst[1]++ = read10in32(&buf, &rgbBuffer, if (elements >= 2)
&n_datum, endian, shift); *dst[1]++ = read10in32(&buf, &rgbBuffer,
&n_datum, endian, shift);
if (elements == 4) if (elements == 4)
*dst[3]++ = *dst[3]++ =
read10in32(&buf, &rgbBuffer, read10in32(&buf, &rgbBuffer,