You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-11 14:30:22 +02:00
avcodec/dpx: add support for 10bit gray
This commit is contained in:
@ -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,10 +365,12 @@ 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++) {
|
||||||
|
if (elements >= 3)
|
||||||
*dst[2]++ = read10in32(&buf, &rgbBuffer,
|
*dst[2]++ = read10in32(&buf, &rgbBuffer,
|
||||||
&n_datum, endian, shift);
|
&n_datum, endian, shift);
|
||||||
*dst[0]++ = read10in32(&buf, &rgbBuffer,
|
*dst[0]++ = read10in32(&buf, &rgbBuffer,
|
||||||
&n_datum, endian, shift);
|
&n_datum, endian, shift);
|
||||||
|
if (elements >= 2)
|
||||||
*dst[1]++ = read10in32(&buf, &rgbBuffer,
|
*dst[1]++ = read10in32(&buf, &rgbBuffer,
|
||||||
&n_datum, endian, shift);
|
&n_datum, endian, shift);
|
||||||
if (elements == 4)
|
if (elements == 4)
|
||||||
|
Reference in New Issue
Block a user