Browse Source

obs-ffmpeg: Change AMF bitrate to kbps

Move multiplication to when its passed to the encoder, so that bitrate
is kept in kbps. Changed for both for H264 and HEVC. Other encoders
(x264 and NVENC) already display bitrate in kbps in the log,
so it makes sense to mimic this with AMF. It's difficult to tell the
exact bitrate with bps.
Chris 3 years ago
parent
commit
7c36cba065
1 changed files with 8 additions and 8 deletions
  1. 8 8
      plugins/obs-ffmpeg/texture-amf.cpp

+ 8 - 8
plugins/obs-ffmpeg/texture-amf.cpp

@@ -1117,13 +1117,13 @@ try {
 		return true;
 		return true;
 	}
 	}
 
 
-	int64_t bitrate = obs_data_get_int(settings, "bitrate") * 1000;
+	int64_t bitrate = obs_data_get_int(settings, "bitrate");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	const char *rc_str = obs_data_get_string(settings, "rate_control");
 	const char *rc_str = obs_data_get_string(settings, "rate_control");
 	int rc = get_avc_rate_control(rc_str);
 	int rc = get_avc_rate_control(rc_str);
 	AMF_RESULT res;
 	AMF_RESULT res;
 
 
-	amf_avc_update_data(enc, rc, bitrate, qp);
+	amf_avc_update_data(enc, rc, bitrate * 1000, qp);
 
 
 	res = enc->amf_encoder->ReInit(enc->cx, enc->cy);
 	res = enc->amf_encoder->ReInit(enc->cx, enc->cy);
 	if (res != AMF_OK)
 	if (res != AMF_OK)
@@ -1142,7 +1142,7 @@ static bool amf_avc_init(void *data, obs_data_t *settings)
 {
 {
 	amf_base *enc = (amf_base *)data;
 	amf_base *enc = (amf_base *)data;
 
 
-	int64_t bitrate = obs_data_get_int(settings, "bitrate") * 1000;
+	int64_t bitrate = obs_data_get_int(settings, "bitrate");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	const char *preset = obs_data_get_string(settings, "preset");
 	const char *preset = obs_data_get_string(settings, "preset");
 	const char *profile = obs_data_get_string(settings, "profile");
 	const char *profile = obs_data_get_string(settings, "profile");
@@ -1167,7 +1167,7 @@ static bool amf_avc_init(void *data, obs_data_t *settings)
 	set_avc_property(enc, RATE_CONTROL_METHOD, rc);
 	set_avc_property(enc, RATE_CONTROL_METHOD, rc);
 	set_avc_property(enc, ENABLE_VBAQ, true);
 	set_avc_property(enc, ENABLE_VBAQ, true);
 
 
-	amf_avc_update_data(enc, rc, bitrate, qp);
+	amf_avc_update_data(enc, rc, bitrate * 1000, qp);
 
 
 	set_avc_property(enc, ENFORCE_HRD, true);
 	set_avc_property(enc, ENFORCE_HRD, true);
 	set_avc_property(enc, HIGH_MOTION_QUALITY_BOOST_ENABLE, false);
 	set_avc_property(enc, HIGH_MOTION_QUALITY_BOOST_ENABLE, false);
@@ -1421,13 +1421,13 @@ try {
 		return true;
 		return true;
 	}
 	}
 
 
-	int64_t bitrate = obs_data_get_int(settings, "bitrate") * 1000;
+	int64_t bitrate = obs_data_get_int(settings, "bitrate");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	const char *rc_str = obs_data_get_string(settings, "rate_control");
 	const char *rc_str = obs_data_get_string(settings, "rate_control");
 	int rc = get_hevc_rate_control(rc_str);
 	int rc = get_hevc_rate_control(rc_str);
 	AMF_RESULT res;
 	AMF_RESULT res;
 
 
-	amf_hevc_update_data(enc, rc, bitrate, qp);
+	amf_hevc_update_data(enc, rc, bitrate * 1000, qp);
 
 
 	res = enc->amf_encoder->ReInit(enc->cx, enc->cy);
 	res = enc->amf_encoder->ReInit(enc->cx, enc->cy);
 	if (res != AMF_OK)
 	if (res != AMF_OK)
@@ -1446,7 +1446,7 @@ static bool amf_hevc_init(void *data, obs_data_t *settings)
 {
 {
 	amf_base *enc = (amf_base *)data;
 	amf_base *enc = (amf_base *)data;
 
 
-	int64_t bitrate = obs_data_get_int(settings, "bitrate") * 1000;
+	int64_t bitrate = obs_data_get_int(settings, "bitrate");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	int64_t qp = obs_data_get_int(settings, "cqp");
 	const char *preset = obs_data_get_string(settings, "preset");
 	const char *preset = obs_data_get_string(settings, "preset");
 	const char *profile = obs_data_get_string(settings, "profile");
 	const char *profile = obs_data_get_string(settings, "profile");
@@ -1456,7 +1456,7 @@ static bool amf_hevc_init(void *data, obs_data_t *settings)
 	set_hevc_property(enc, RATE_CONTROL_METHOD, rc);
 	set_hevc_property(enc, RATE_CONTROL_METHOD, rc);
 	set_hevc_property(enc, ENABLE_VBAQ, true);
 	set_hevc_property(enc, ENABLE_VBAQ, true);
 
 
-	amf_hevc_update_data(enc, rc, bitrate, qp);
+	amf_hevc_update_data(enc, rc, bitrate * 1000, qp);
 
 
 	set_hevc_property(enc, ENFORCE_HRD, true);
 	set_hevc_property(enc, ENFORCE_HRD, true);
 	set_hevc_property(enc, HIGH_MOTION_QUALITY_BOOST_ENABLE, false);
 	set_hevc_property(enc, HIGH_MOTION_QUALITY_BOOST_ENABLE, false);