Browse Source

obs-qsv11, obs-x264: Allow bframe count overriding

Allows the ability to override bframes (useful for specific protocols)
jp9000 8 years ago
parent
commit
e230f77311
2 changed files with 7 additions and 0 deletions
  1. 3 0
      plugins/obs-qsv11/obs-qsv11.c
  2. 4 0
      plugins/obs-x264/obs-x264.c

+ 3 - 0
plugins/obs-qsv11/obs-qsv11.c

@@ -293,6 +293,9 @@ static void update_params(struct obs_qsv *obsqsv, obs_data_t *settings)
 	bool cbr_override = obs_data_get_bool(settings, "cbr");
 	int bFrames = 7;
 
+	if (obs_data_has_user_value(settings, "bf"))
+		bFrames = (int)obs_data_get_int(settings, "bf");
+
 	int width = (int)obs_encoder_get_width(obsqsv->encoder);
 	int height = (int)obs_encoder_get_height(obsqsv->encoder);
 	if (astrcmpi(target_usage, "quality") == 0)

+ 4 - 0
plugins/obs-x264/obs-x264.c

@@ -407,6 +407,7 @@ static void update_params(struct obs_x264 *obsx264, obs_data_t *settings,
 	int crf          = (int)obs_data_get_int(settings, "crf");
 	int width        = (int)obs_encoder_get_width(obsx264->encoder);
 	int height       = (int)obs_encoder_get_height(obsx264->encoder);
+	int bf           = (int)obs_data_get_int(settings, "bf");
 	bool use_bufsize = obs_data_get_bool(settings, "use_bufsize");
 	bool vfr         = obs_data_get_bool(settings, "vfr");
 	bool cbr_override= obs_data_get_bool(settings, "cbr");
@@ -458,6 +459,9 @@ static void update_params(struct obs_x264 *obsx264, obs_data_t *settings,
 	obsx264->params.p_log_private        = obsx264;
 	obsx264->params.i_log_level          = X264_LOG_WARNING;
 
+	if (obs_data_has_user_value(settings, "bf"))
+		obsx264->params.i_bframe = bf;
+
 	obsx264->params.vui.i_transfer =
 		get_x264_cs_val(info.colorspace, x264_transfer_names);
 	obsx264->params.vui.i_colmatrix =