From ec89f35e3e5eb9ec5221266e801efeee7ecab4df Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Mon, 13 Apr 2015 10:45:51 +0200 Subject: x265: Map color parameters --- libavcodec/libx265.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libavcodec/libx265.c') diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index c04299aaf3..2fe7889465 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -124,6 +124,22 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ctx->params->sourceHeight = avctx->height; ctx->params->bEnablePsnr = !!(avctx->flags & CODEC_FLAG_PSNR); + if ((avctx->color_primaries <= AVCOL_PRI_BT2020 && + avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) || + (avctx->color_trc <= AVCOL_TRC_BT2020_12 && + avctx->color_trc != AVCOL_TRC_UNSPECIFIED) || + (avctx->colorspace <= AVCOL_SPC_BT2020_CL && + avctx->colorspace != AVCOL_SPC_UNSPECIFIED)) { + + ctx->params->vui.bEnableVideoSignalTypePresentFlag = 1; + ctx->params->vui.bEnableColorDescriptionPresentFlag = 1; + + // x265 validates the parameters internally + ctx->params->vui.colorPrimaries = avctx->color_primaries; + ctx->params->vui.transferCharacteristics = avctx->color_trc; + ctx->params->vui.matrixCoeffs = avctx->colorspace; + } + if (avctx->sample_aspect_ratio.num > 0 && avctx->sample_aspect_ratio.den > 0) { char sar[12]; int sar_num, sar_den; -- cgit v1.2.3