nvenc: allow disabling CBR padding
parent
636d408593
commit
947975b062
|
@ -347,13 +347,14 @@ void NVENCEncoder::init()
|
|||
|
||||
if (bUseCBR)
|
||||
{
|
||||
auto filler = AppConfig->GetInt(TEXT("Video Encoding"), TEXT("PadCBR"), 1) != 0;
|
||||
if (is2PassRC)
|
||||
{
|
||||
encodeConfig.rcParams.rateControlMode = NV_ENC_PARAMS_RC_2_PASS_QUALITY;
|
||||
encodeConfig.rcParams.rateControlMode = filler ? NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP : NV_ENC_PARAMS_RC_2_PASS_VBR;
|
||||
}
|
||||
else
|
||||
{
|
||||
encodeConfig.rcParams.rateControlMode = NV_ENC_PARAMS_RC_CBR;
|
||||
encodeConfig.rcParams.rateControlMode = filler ? NV_ENC_PARAMS_RC_CBR : NV_ENC_PARAMS_RC_VBR;
|
||||
}
|
||||
|
||||
encodeConfig.rcParams.enableMaxQP = 1;
|
||||
|
@ -1032,14 +1033,18 @@ String NVENCEncoder::GetInfoString() const
|
|||
profile = "constrained high";
|
||||
|
||||
String cbr = "no";
|
||||
if (encodeConfig.rcParams.rateControlMode == NV_ENC_PARAMS_RC_CBR)
|
||||
switch (encodeConfig.rcParams.rateControlMode)
|
||||
{
|
||||
case NV_ENC_PARAMS_RC_CBR:
|
||||
cbr = "yes";
|
||||
}
|
||||
else if (encodeConfig.rcParams.rateControlMode == NV_ENC_PARAMS_RC_2_PASS_QUALITY
|
||||
|| encodeConfig.rcParams.rateControlMode == NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP)
|
||||
{
|
||||
break;
|
||||
case NV_ENC_PARAMS_RC_2_PASS_QUALITY:
|
||||
case NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP:
|
||||
cbr = "yes (2pass)";
|
||||
break;
|
||||
case NV_ENC_PARAMS_RC_2_PASS_VBR:
|
||||
cbr = "no (2pass)";
|
||||
break;
|
||||
}
|
||||
|
||||
String cfr = "yes";
|
||||
|
|
|
@ -210,7 +210,7 @@ INT_PTR SettingsEncoding::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||
SendMessage(GetDlgItem(hwnd, IDC_USECBR), BM_SETCHECK, bUseCBR ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_PADCBR), BM_SETCHECK, bPadCBR ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_QUALITY), !bUseCBR && (usex264 || useNVENC));
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), bUseCBR && usex264);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), bUseCBR && (usex264 || useNVENC));
|
||||
|
||||
ti.lpszText = (LPWSTR)Str("Settings.Advanced.PadCBRToolTip");
|
||||
ti.uId = (UINT_PTR)GetDlgItem(hwnd, IDC_PADCBR);
|
||||
|
@ -437,7 +437,7 @@ INT_PTR SettingsEncoding::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||
bDataChanged = true;
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_QUALITY), !useCBR && (usex264 || useNVENC));
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), useCBR && usex264);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), useCBR && (usex264 || useNVENC));
|
||||
break;
|
||||
|
||||
case IDC_CUSTOMBUFFER:
|
||||
|
@ -451,7 +451,7 @@ INT_PTR SettingsEncoding::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam
|
|||
else if(LOWORD(wParam) == IDC_USECBR)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_QUALITY), !bChecked && (usex264 || useNVENC));
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), bChecked && usex264);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PADCBR), bChecked && (usex264 || useNVENC));
|
||||
}
|
||||
|
||||
bDataChanged = true;
|
||||
|
|
Loading…
Reference in New Issue