+ bitrate_override_func = [new_rate](x264_param_t *param) {
+ param->rc.i_bitrate = new_rate;
+ update_vbv_settings(param);
+ };
+ }
+
+ auto ycbcr_coefficients_override_func = [qf](x264_param_t *param) {
+ if (qf.ycbcr_coefficients == YCBCR_REC_709) {
+ param->vui.i_colmatrix = 1; // BT.709.
+ } else {
+ assert(qf.ycbcr_coefficients == YCBCR_REC_601);
+ param->vui.i_colmatrix = 6; // BT.601/SMPTE 170M.
+ }
+ };
+
+ if (speed_control) {
+ speed_control->set_config_override_function([this, ycbcr_coefficients_override_func](x264_param_t *param) {
+ if (bitrate_override_func) {
+ bitrate_override_func(param);
+ }
+ ycbcr_coefficients_override_func(param);
+ });
+ } else {