summaryrefslogtreecommitdiff
path: root/libavcodec/libx264.c
diff options
context:
space:
mode:
authorTorsten Jager <t.jager@gmx.de>2013-12-16 16:59:02 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-16 16:59:02 +0100
commit48d39c8786d2a1a36258d8e442602729eef0474c (patch)
tree54e0faf92f1ae4a268a8dbc5b55e81fdbb8d9cf0 /libavcodec/libx264.c
parenta8d702859b8bd17978fb5d8cb1d6acc363031e80 (diff)
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.
Diffstat (limited to 'libavcodec/libx264.c')
-rw-r--r--libavcodec/libx264.c10
1 files changed, 9 insertions, 1 deletions
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;