mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-03 14:32:16 +02:00
diracdec: Add 10-bits to pix_fmt table
This commit is contained in:
parent
f61d44b74a
commit
0379603632
@ -109,10 +109,11 @@ static const struct {
|
|||||||
{ AVCOL_PRI_BT709, AVCOL_SPC_BT709, AVCOL_TRC_UNSPECIFIED /* DCinema */ },
|
{ AVCOL_PRI_BT709, AVCOL_SPC_BT709, AVCOL_TRC_UNSPECIFIED /* DCinema */ },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* [DIRAC_STD] Table 10.2 Supported chroma sampling formats + luma Offset */
|
/* [DIRAC_STD] Table 10.2 Supported chroma sampling formats */
|
||||||
static const enum AVPixelFormat dirac_pix_fmt[2][3] = {
|
static const enum AVPixelFormat dirac_pix_fmt[][3] = {
|
||||||
{ AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P },
|
{AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12},
|
||||||
{ AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P },
|
{AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P12},
|
||||||
|
{AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV420P12},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* [DIRAC_STD] 10.3 Parse Source Parameters.
|
/* [DIRAC_STD] 10.3 Parse Source Parameters.
|
||||||
@ -236,13 +237,9 @@ static int parse_source_parameters(AVCodecContext *avctx, GetBitContext *gb,
|
|||||||
avctx->color_range = pixel_range_presets[idx].color_range;
|
avctx->color_range = pixel_range_presets[idx].color_range;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (luma_depth > 8)
|
|
||||||
av_log(avctx, AV_LOG_WARNING, "Bitdepth greater than 8\n");
|
|
||||||
|
|
||||||
|
|
||||||
*bit_depth = luma_depth;
|
*bit_depth = luma_depth;
|
||||||
|
|
||||||
avctx->pix_fmt = dirac_pix_fmt[!luma_offset][source->chroma_format];
|
avctx->pix_fmt = dirac_pix_fmt[source->chroma_format][source->pixel_range_index-2];
|
||||||
avcodec_get_chroma_sub_sample(avctx->pix_fmt, &chroma_x_shift, &chroma_y_shift);
|
avcodec_get_chroma_sub_sample(avctx->pix_fmt, &chroma_x_shift, &chroma_y_shift);
|
||||||
if ((source->width % (1<<chroma_x_shift)) || (source->height % (1<<chroma_y_shift))) {
|
if ((source->width % (1<<chroma_x_shift)) || (source->height % (1<<chroma_y_shift))) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Dimensions must be an integer multiple of the chroma subsampling\n");
|
av_log(avctx, AV_LOG_ERROR, "Dimensions must be an integer multiple of the chroma subsampling\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user