From 4ba6b8b6eeedb3f7bd4b510f8f2114ba6c8ba66a Mon Sep 17 00:00:00 2001 From: Roman Huts <71274498+rhutsAMD@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:40:37 -0500 Subject: [PATCH] obs-ffmpeg: Add new rate control method mappings for AVC/HEVC --- plugins/obs-ffmpeg/texture-amf.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/obs-ffmpeg/texture-amf.cpp b/plugins/obs-ffmpeg/texture-amf.cpp index 8413b9bb9..876eb5b19 100644 --- a/plugins/obs-ffmpeg/texture-amf.cpp +++ b/plugins/obs-ffmpeg/texture-amf.cpp @@ -1189,8 +1189,18 @@ static inline int get_avc_rate_control(const char *rc_str) { if (astrcmpi(rc_str, "cqp") == 0) return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CONSTANT_QP; + else if (astrcmpi(rc_str, "cbr") == 0) + return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CBR; else if (astrcmpi(rc_str, "vbr") == 0) return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR; + else if (astrcmpi(rc_str, "vbr_lat") == 0) + return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR; + else if (astrcmpi(rc_str, "qvbr") == 0) + return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_QUALITY_VBR; + else if (astrcmpi(rc_str, "hqvbr") == 0) + return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR; + else if (astrcmpi(rc_str, "hqcbr") == 0) + return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR; return AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CBR; } @@ -1514,8 +1524,18 @@ static inline int get_hevc_rate_control(const char *rc_str) { if (astrcmpi(rc_str, "cqp") == 0) return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CONSTANT_QP; + else if (astrcmpi(rc_str, "vbr_lat") == 0) + return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR; else if (astrcmpi(rc_str, "vbr") == 0) return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR; + else if (astrcmpi(rc_str, "cbr") == 0) + return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CBR; + else if (astrcmpi(rc_str, "qvbr") == 0) + return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_QUALITY_VBR; + else if (astrcmpi(rc_str, "hqvbr") == 0) + return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR; + else if (astrcmpi(rc_str, "hqcbr") == 0) + return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR; return AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CBR; }