+
+ fullrange = var_GetBool( p_enc, SOUT_CFG_PREFIX "fullrange" );
+ p_enc->fmt_in.i_codec = fullrange ? VLC_CODEC_J420 : VLC_CODEC_I420;
+ p_sys->i_colorspace = X264_CSP_I420;
+#if X264_BUILD >= 118
+ char *psz_profile = var_GetString( p_enc, SOUT_CFG_PREFIX "profile" );
+ if( psz_profile )
+ {
+ const int mask = x264_bit_depth > 8 ? X264_CSP_HIGH_DEPTH : 0;
+
+#ifdef MODULE_NAME_IS_x26410b
+ if( mask == 0)
+ {
+ msg_Err( p_enc, "Only high bith depth encoding supported, bit depth:%d", x264_bit_depth);
+ return VLC_EGENERIC;
+ }
+#endif
+
+ if( !strcmp( psz_profile, "high10" ) )
+ {
+ p_enc->fmt_in.i_codec = mask ? VLC_CODEC_I420_10L : fullrange ? VLC_CODEC_J420 : VLC_CODEC_I420;
+ p_sys->i_colorspace = X264_CSP_I420 | mask;
+ }
+ else if( !strcmp( psz_profile, "high422" ) )
+ {
+ p_enc->fmt_in.i_codec = mask ? VLC_CODEC_I422_10L : fullrange ? VLC_CODEC_J422 : VLC_CODEC_I422;
+ p_sys->i_colorspace = X264_CSP_I422 | mask;
+ }
+ else if( !strcmp( psz_profile, "high444" ) )
+ {
+ p_enc->fmt_in.i_codec = mask ? VLC_CODEC_I444_10L : fullrange ? VLC_CODEC_J444 : VLC_CODEC_I444;
+ p_sys->i_colorspace = X264_CSP_I444 | mask;
+ }
+#ifdef MODULE_NAME_IS_x26410b
+ else
+ {
+ msg_Err( p_enc, "Only high-profiles and 10-bit are supported");
+ return VLC_EGENERIC;
+ }
+
+#endif
+ }
+#ifdef MODULE_NAME_IS_x26410b
+ else
+ {
+ msg_Err( p_enc, "Only high-profiles and 10-bit are supported");
+ return VLC_EGENERIC;
+ }
+#endif
+ free( psz_profile );
+#endif //X264_BUILD
+
+ p_enc->pf_encode_video = Encode;
+ p_enc->pf_encode_audio = NULL;