Add option to allow HEVC usage on older Intel GPUs without low-power encoding

This commit is contained in:
Cameron Gutman 2024-02-26 21:42:52 -06:00
parent 15272fb47e
commit 4252f5df7c
5 changed files with 35 additions and 1 deletions

View File

@ -1424,6 +1424,22 @@ keybindings
qsv_coder = auto
`qsv_slow_hevc <https://localhost:47990/config/#qsv_slow_hevc>`__
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Description**
This options enables use of HEVC on older Intel GPUs that only support low power encoding for H.264.
.. Caution:: Streaming performance may be significantly reduced when this option is enabled.
**Default**
``disabled``
**Example**
.. code-block:: text
qsv_slow_hevc = disabled
`AMD AMF Encoder <https://localhost:47990/config/#amd-amf-encoder>`__
---------------------------------------------------------------------

View File

@ -339,6 +339,7 @@ namespace config {
{
qsv::medium, // preset
qsv::_auto, // cavlc
false, // slow_hevc
}, // qsv
{
@ -962,6 +963,7 @@ namespace config {
int_f(vars, "qsv_preset", video.qsv.qsv_preset, qsv::preset_from_view);
int_f(vars, "qsv_coder", video.qsv.qsv_cavlc, qsv::coder_from_view);
bool_f(vars, "qsv_slow_hevc", video.qsv.qsv_slow_hevc);
std::string quality;
string_f(vars, "amd_quality", quality);

View File

@ -44,6 +44,7 @@ namespace config {
struct {
std::optional<int> qsv_preset;
std::optional<int> qsv_cavlc;
bool qsv_slow_hevc;
} qsv;
struct {

View File

@ -763,7 +763,9 @@ namespace video {
{ "profile"s, (int) qsv::profile_hevc_e::main_10 },
},
// Fallback options
{},
{
{ "low_power"s, []() { return config::video.qsv.qsv_slow_hevc ? 0 : 1; } },
},
std::nullopt, // QP rate control fallback
"hevc_qsv"s,
},

View File

@ -1021,6 +1021,18 @@
</select>
</div>
<!-- Allow Slow HEVC Encoding -->
<div class="mb-3">
<label for="qsv_slow_hevc" class="form-label">Allow Slow HEVC Encoding</label>
<select id="qsv_slow_hevc" class="form-select" v-model="config.qsv_slow_hevc">
<option value="enabled">enabled</option>
<option value="disabled">disabled (default)</option>
</select>
<div class="form-text">
This can enable HEVC encoding on older Intel GPUs, at the cost of higher GPU usage and worse performance.
</div>
</div>
</div>
<!-- AMD AMF Encoder Tab -->
@ -1293,6 +1305,7 @@
options: {
"qsv_preset": "medium",
"qsv_coder": "auto",
"qsv_slow_hevc": "disabled",
},
},
{