[vlc-devel] [PATCH 2/4] x264: do colorspace/transfer/primaries mapping
Ilkka Ollakka
ileoo at videolan.org
Sat Apr 16 17:38:56 CEST 2016
---
modules/codec/x264.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/modules/codec/x264.c b/modules/codec/x264.c
index 34ffa2d..ccbd503 100644
--- a/modules/codec/x264.c
+++ b/modules/codec/x264.c
@@ -922,6 +922,55 @@ static int Open ( vlc_object_t *p_this )
p_sys->param.i_height = p_enc->fmt_in.video.i_visible_height;
p_sys->param.vui.b_fullrange = fullrange;
+ switch( p_enc->fmt_in.video.space )
+ {
+ case COLOR_SPACE_BT601:
+ case COLOR_SPACE_BT601_FULL:
+ p_sys->param.vui.i_colmatrix = 5; /* bt470bg*/
+ break;
+ case COLOR_SPACE_BT709:
+ case COLOR_SPACE_BT709_FULL:
+ p_sys->param.vui.i_colmatrix = 1; /* bt709*/
+ break;
+ case COLOR_SPACE_BT2020_LIMITED:
+ p_sys->param.vui.i_colmatrix = 10; /* bt2020c*/
+ break;
+ default:
+ break;
+ }
+
+ switch( p_enc->fmt_in.video.transfer )
+ {
+ case TRANSFER_FUNC_LINEAR:
+ p_sys->param.vui.i_transfer = 7; /* linear*/
+ break;
+ case TRANSFER_FUNC_SRGB:
+ case TRANSFER_FUNC_BT709:
+ p_sys->param.vui.i_transfer = 1; /* bt709*/
+ break;
+ default:
+ break;
+ }
+
+ switch( p_enc->fmt_in.video.primaries )
+ {
+ case COLOR_PRIMARIES_BT601_625:
+ p_sys->param.vui.i_colorprim = 5; /* BT470BG */
+ break;
+ case COLOR_PRIMARIES_BT601_525:
+ p_sys->param.vui.i_colorprim = 6; /* SMPTE170M */
+ break;
+ case COLOR_PRIMARIES_BT709:
+ p_sys->param.vui.i_colorprim = 1; /* BT.709 */
+ break;
+ case COLOR_PRIMARIES_BT2020:
+ p_sys->param.vui.i_colorprim = 9; /* BT.2020 */
+ break;
+ default:
+ break;
+ }
+
+
if( fabs(var_GetFloat( p_enc, SOUT_CFG_PREFIX "qcomp" ) - 0.60) > 0.005 )
p_sys->param.rc.f_qcompress = var_GetFloat( p_enc, SOUT_CFG_PREFIX "qcomp" );
--
2.6.6
More information about the vlc-devel
mailing list