From 48d39c8786d2a1a36258d8e442602729eef0474c Mon Sep 17 00:00:00 2001 From: Torsten Jager Date: Mon, 16 Dec 2013 16:59:02 +0100 Subject: [PATCH] avcodec/libx264: Set colorspace details correctly After adding colorspace support to xine-lib, I insist in proper settings within media files at least when they do not follow that implicit SD/HD routine. --- libavcodec/libx264.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 7f393089b4..8da18707eb 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -574,7 +574,15 @@ static av_cold int X264_init(AVCodecContext *avctx) x4->params.vui.b_fullrange = avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ444P; + avctx->pix_fmt == AV_PIX_FMT_YUVJ444P || + avctx->color_range == AVCOL_RANGE_JPEG; + + if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED) + x4->params.vui.i_colmatrix = avctx->colorspace; + if (avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) + x4->params.vui.i_colorprim = avctx->color_primaries; + if (avctx->color_trc != AVCOL_TRC_UNSPECIFIED) + x4->params.vui.i_transfer = avctx->color_trc; if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) x4->params.b_repeat_headers = 0;