feat(vaapi): add option to enable strict enforcement of frame size (#3332)
* feat(vaapi): add option to enable strict enforcement of frame size * Eliminate the QP fallback code that was only required for VAAPI
This commit is contained in:
@@ -257,6 +257,13 @@
|
||||
"vt_realtime": "enabled",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "vaapi",
|
||||
name: "VA-API Encoder",
|
||||
options: {
|
||||
"vaapi_strict_rc_buffer": "disabled",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "sw",
|
||||
name: "Software Encoder",
|
||||
@@ -283,7 +290,7 @@
|
||||
var app = document.getElementById("app");
|
||||
if (this.platform === "windows") {
|
||||
this.tabs = this.tabs.filter((el) => {
|
||||
return el.id !== "vt";
|
||||
return el.id !== "vt" && el.id !== "vaapi";
|
||||
});
|
||||
}
|
||||
if (this.platform === "linux") {
|
||||
@@ -293,7 +300,7 @@
|
||||
}
|
||||
if (this.platform === "macos") {
|
||||
this.tabs = this.tabs.filter((el) => {
|
||||
return el.id !== "amd" && el.id !== "nv" && el.id !== "qsv";
|
||||
return el.id !== "amd" && el.id !== "nv" && el.id !== "qsv" && el.id !== "vaapi";
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import IntelQuickSyncEncoder from './encoders/IntelQuickSyncEncoder.vue'
|
||||
import AmdAmfEncoder from './encoders/AmdAmfEncoder.vue'
|
||||
import VideotoolboxEncoder from './encoders/VideotoolboxEncoder.vue'
|
||||
import SoftwareEncoder from './encoders/SoftwareEncoder.vue'
|
||||
import VAAPIEncoder from './encoders/VAAPIEncoder.vue'
|
||||
|
||||
const props = defineProps([
|
||||
'platform',
|
||||
@@ -45,6 +46,13 @@ const config = ref(props.config)
|
||||
:config="config"
|
||||
/>
|
||||
|
||||
<!-- VAAPI Encoder Tab -->
|
||||
<VAAPIEncoder
|
||||
v-if="currentTab === 'vaapi'"
|
||||
:platform="platform"
|
||||
:config="config"
|
||||
/>
|
||||
|
||||
<!-- Software Encoder Tab -->
|
||||
<SoftwareEncoder
|
||||
v-if="currentTab === 'sw'"
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = defineProps([
|
||||
'platform',
|
||||
'config',
|
||||
])
|
||||
|
||||
const config = ref(props.config)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div id="vaapi-encoder" class="config-page">
|
||||
<!-- Strict RC Buffer -->
|
||||
<div class="mb-3">
|
||||
<label for="vaapi_strict_rc_buffer" class="form-label">{{ $t('config.vaapi_strict_rc_buffer') }}</label>
|
||||
<select id="vaapi_strict_rc_buffer" class="form-select" v-model="config.vaapi_strict_rc_buffer">
|
||||
<option value="enabled">{{ $t('_common.enabled') }}</option>
|
||||
<option value="disabled">{{ $t('_common.disabled_def') }}</option>
|
||||
</select>
|
||||
<div class="form-text">{{ $t('config.vaapi_strict_rc_buffer_desc') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -310,6 +310,8 @@
|
||||
"touchpad_as_ds4_desc": "If disabled, touchpad presence will not be taken into account during gamepad type selection.",
|
||||
"upnp": "UPnP",
|
||||
"upnp_desc": "Automatically configure port forwarding for streaming over the Internet",
|
||||
"vaapi_strict_rc_buffer": "Strictly enforce frame bitrate limits for H.264/HEVC on AMD GPUs",
|
||||
"vaapi_strict_rc_buffer_desc": "Enabling this option can avoid dropped frames over the network during scene changes, but video quality may be reduced during motion.",
|
||||
"virtual_sink": "Virtual Sink",
|
||||
"virtual_sink_desc": "Manually specify a virtual audio device to use. If unset, the device is chosen automatically. We strongly recommend leaving this field blank to use automatic device selection!",
|
||||
"virtual_sink_placeholder": "Steam Streaming Speakers",
|
||||
|
||||
Reference in New Issue
Block a user