From 7c36cba065e4b36fe7e024c70d1585254963731f Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 20 Aug 2022 01:18:21 +0100 Subject: [PATCH] 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. --- plugins/obs-ffmpeg/texture-amf.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/obs-ffmpeg/texture-amf.cpp b/plugins/obs-ffmpeg/texture-amf.cpp index d2bd55827..464e168b0 100644 --- a/plugins/obs-ffmpeg/texture-amf.cpp +++ b/plugins/obs-ffmpeg/texture-amf.cpp @@ -1117,13 +1117,13 @@ try { 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"); const char *rc_str = obs_data_get_string(settings, "rate_control"); int rc = get_avc_rate_control(rc_str); 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); 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; - 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"); const char *preset = obs_data_get_string(settings, "preset"); 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, 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, HIGH_MOTION_QUALITY_BOOST_ENABLE, false); @@ -1421,13 +1421,13 @@ try { 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"); const char *rc_str = obs_data_get_string(settings, "rate_control"); int rc = get_hevc_rate_control(rc_str); 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); 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; - 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"); const char *preset = obs_data_get_string(settings, "preset"); 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, 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, HIGH_MOTION_QUALITY_BOOST_ENABLE, false);