Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2871,6 +2871,30 @@ editing the `conf` file in a text editor. Use the examples as reference.
</tr>
</table>

### vaapi_force_cqp

<table>
<tr>
<td>Description</td>
<td colspan="2">
Force CQP (constant quantizer) rate control for the VAAPI encoder, disabling CBR and VBR.
@note{Required for Intel Arc A-series (DG2/Alchemist) with the xe kernel driver, where HuC firmware is unavailable and CBR/VBR encoding fails at runtime.}
</td>
</tr>
<tr>
<td>Default</td>
<td colspan="2">@code{}
disabled
@endcode</td>
</tr>
<tr>
<td>Example</td>
<td colspan="2">@code{}
vaapi_force_cqp = enabled
@endcode</td>
</tr>
</table>

## Software Encoder

### sw_preset
Expand Down
2 changes: 2 additions & 0 deletions src/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,7 @@ namespace config {

{
false, // strict_rc_buffer
false, // force_cqp
}, // vaapi

{}, // capture
Expand Down Expand Up @@ -1176,6 +1177,7 @@ namespace config {
int_f(vars, "vt_realtime", video.vt.vt_realtime, vt::rt_from_view);

bool_f(vars, "vaapi_strict_rc_buffer", video.vaapi.strict_rc_buffer);
bool_f(vars, "vaapi_force_cqp", video.vaapi.force_cqp);

string_f(vars, "capture", video.capture);
string_f(vars, "encoder", video.encoder);
Expand Down
1 change: 1 addition & 0 deletions src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ namespace config {

struct {
bool strict_rc_buffer;
bool force_cqp;
} vaapi;

std::string capture;
Expand Down
8 changes: 8 additions & 0 deletions src/platform/linux/vaapi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
#include <format>
#include <sstream>
#include <string>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <unistd.h>

extern "C" {
#include <libavcodec/avcodec.h>
Expand Down Expand Up @@ -246,6 +249,11 @@ namespace va {
rc_attr.value = 0;
}

if (config::video.vaapi.force_cqp) {
BOOST_LOG(info) << "vaapi_force_cqp enabled: forcing CQP rate control"sv;
rc_attr.value &= ~static_cast<unsigned int>(VA_RC_CBR | VA_RC_VBR);
}

VAConfigAttrib slice_attr = {VAConfigAttribEncMaxSlices};
status = vaGetConfigAttributes(va_display, va_profile, va_entrypoint, &slice_attr, 1);
if (status != VA_STATUS_SUCCESS) {
Expand Down
1 change: 1 addition & 0 deletions src_assets/common/assets/web/config.html
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,7 @@ <h1 class="my-4">{{ $t('config.configuration') }}</h1>
name: "VA-API Encoder",
options: {
"vaapi_strict_rc_buffer": "disabled",
"vaapi_force_cqp": "disabled",
},
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ const config = ref(props.config)
v-model="config.vaapi_strict_rc_buffer"
default="false"
></Checkbox>
<!-- Force CQP -->
<Checkbox class="mb-3"
id="vaapi_force_cqp"
locale-prefix="config"
v-model="config.vaapi_force_cqp"
default="false"
></Checkbox>
</div>
</template>

Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@
"upnp_desc": "Автоматично настройване на пренасочването на портове за излъчване през Интернет",
"vaapi_strict_rc_buffer": "Налагане на строги ограничения за побитовата скорост на кадрите за H.264/HEVC при видео карти на AMD",
"vaapi_strict_rc_buffer_desc": "Включването на това може да предотврати пропускането на кадри по мрежата по време на промени в сцената, но качеството на видеото по време на движение може да бъде намалено.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Виртуален изход",
"virtual_sink_desc": "Ръчно задаване на виртуално звуково устройство, което да се ползва. Ако не е зададено, устройството се избира автоматично. Силно препоръчително е да оставите това поле празно, за да използвате автоматичния избор на устройство!",
"virtual_sink_placeholder": "Виртуални високоговорители на Steam",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,8 @@
"upnp_desc": "Automatická konfigurace přesměrování portů pro streamování přes Internet",
"vaapi_strict_rc_buffer": "Přísné vynucení limitů datového toku snímků pro H.264/HEVC na grafických procesorech AMD",
"vaapi_strict_rc_buffer_desc": "Povolením této možnosti lze zabránit vypadávání snímků po síti při změnách scény, ale kvalita videa může být při pohybu snížena.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Virtuální zvuk",
"virtual_sink_desc": "Ručně zadejte virtuální zvukové zařízení, které chcete použít. Pokud není nastaveno, je zařízení vybráno automaticky. Důrazně doporučujeme ponechat toto pole prázdné, chcete-li použít automatický výběr zařízení!",
"virtual_sink_placeholder": "Streamovací reproduktory služby Steam",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@
"upnp_desc": "Portweiterleitung für Streaming über das Internet automatisch konfigurieren",
"vaapi_strict_rc_buffer": "Bitratenlimit für H.264/HEVC auf AMD GPUs strikt durchsetzen",
"vaapi_strict_rc_buffer_desc": "Wenn Sie diese Option aktivieren, können während der Szenenänderung gelöschte Frames über das Netzwerk vermieden werden, aber die Videoqualität kann während der Bewegung reduziert werden.",
"vaapi_force_cqp": "CQP-Ratensteuerung erzwingen",
"vaapi_force_cqp_desc": "Erforderlich für Intel Arc A-Serie (DG2) mit xe-Treiber, bei dem die HuC-Firmware nicht verfügbar ist. Deaktiviert CBR und VBR, die auf betroffener Hardware stillschweigend fehlschlagen.",
"virtual_sink": "Virtueller Sink",
"virtual_sink_desc": "Legen Sie ein virtuelles Audiogerät manuell fest. Wenn nicht gesetzt, wird das Gerät automatisch ausgewählt. Wir empfehlen dringend, dieses Feld leer zu lassen, um die automatische Geräteauswahl zu verwenden!",
"virtual_sink_placeholder": "Steam Streaming Lautsprecher",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,8 @@
"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.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Virtual Sink",
"virtual_sink_desc": "The audio device to be used when audio output isn't allowed on host by the client.\nIf unset, the device is chosen automatically.\nWe strongly recommend leaving this field blank to use automatic device selection!",
"virtual_sink_placeholder": "Steam Streaming Speakers",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/en_GB.json
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,8 @@
"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.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"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",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,8 @@
"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.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"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",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,8 @@
"upnp_desc": "Configurar automáticamente el reenvío de puertos para transmitir a través de Internet",
"vaapi_strict_rc_buffer": "Aplicar estrictamente límites de bitrate de fotogramas para H.264/HEVC en AMD GPUs",
"vaapi_strict_rc_buffer_desc": "Activar esta opción puede evitar fotogramas sueltos/perdidos en la red durante los cambios de escena, pero la calidad del vídeo puede reducirse durante el movimiento.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Enlace virtual",
"virtual_sink_desc": "Especifique manualmente un dispositivo de audio virtual a utilizar. Si no está activado, el dispositivo se elige automáticamente. ¡Recomendamos encarecidamente dejar este campo en blanco para usar la selección automática de dispositivos!",
"virtual_sink_placeholder": "Altavoces de Steam Streaming",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@
"upnp_desc": "Configurer automatiquement la redirection de port pour le streaming sur Internet",
"vaapi_strict_rc_buffer": "Appliquer strictement les limites de débit d'images pour H.264/HEVC sur les GPU AMD",
"vaapi_strict_rc_buffer_desc": "L'activation de cette option peut éviter de laisser tomber des images sur le réseau pendant les changements de scène, mais la qualité de la vidéo peut être réduite pendant le mouvement.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Sortie virtuelle",
"virtual_sink_desc": "Spécifiez manuellement un périphérique audio virtuel à utiliser. Si non défini, le périphérique est choisi automatiquement. Nous vous recommandons fortement de laisser ce champ vide pour utiliser la sélection automatique de l'appareil !",
"virtual_sink_placeholder": "Steam Streaming Speakers",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,8 @@
"upnp_desc": "Porttovábbítás automatikus konfigurálása az interneten keresztüli streaminghez",
"vaapi_strict_rc_buffer": "A H.264/HEVC képkocka-bitráta korlátok szigorú betartása AMD GPU-kon",
"vaapi_strict_rc_buffer_desc": "Ha engedélyezi ezt a beállítást, elkerülheti a hálózaton keresztül történő képkocka kiesést a jelenetváltások során, de a videó minősége csökkenhet mozgás közben.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Virtuális mosogató",
"virtual_sink_desc": "Kézzel adja meg a használni kívánt virtuális audioeszközt. Ha nincs megadva, az eszköz automatikusan kiválasztásra kerül. Az automatikus eszközkiválasztás használatához erősen ajánlott üresen hagyni ezt a mezőt!",
"virtual_sink_placeholder": "Steam streaming hangszórók",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@
"upnp_desc": "Configura automaticamente l'inoltro delle porte per lo streaming su Internet",
"vaapi_strict_rc_buffer": "Applicare rigorosamente i limiti di bitrate frame per H.264/HEVC su GPU AMD",
"vaapi_strict_rc_buffer_desc": "Abilitare questa opzione può evitare di cadere quadri sulla rete durante i cambiamenti di scena, ma la qualità video può essere ridotta durante il movimento.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Uscita Audio Virtuale",
"virtual_sink_desc": "Specifica manualmente un dispositivo audio virtuale da usare. Se disattivato, il dispositivo viene scelto automaticamente. Si consiglia vivamente di lasciare vuoto questo campo per utilizzare la selezione automatica del dispositivo!",
"virtual_sink_placeholder": "Altoparlanti Streaming Di Steam",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@
"upnp_desc": "インターネット経由でストリーミングするポート転送を自動的に設定します",
"vaapi_strict_rc_buffer": "AMD GPUでH.264/HEVCのフレームビットレート制限を厳密に強制する",
"vaapi_strict_rc_buffer_desc": "このオプションを有効にすると、シーンの変更中にネットワーク上でフレームがドロップされるのを避けることができますが、移動中にビデオの品質が低下する可能性があります。",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Virtual Sink",
"virtual_sink_desc": "使用する仮想オーディオデバイスを手動で指定します。未設定の場合は、デバイスが自動的に選択されます。 自動デバイス選択を使用するには、このフィールドを空白のままにすることを強くお勧めします!",
"virtual_sink_placeholder": "Steamストリーミングスピーカー",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@
"upnp_desc": "인터넷을 통한 스트리밍을 위한 포트 포워딩 자동 구성",
"vaapi_strict_rc_buffer": "AMD GPU에서 H.264/HEVC에 대한 프레임 비트레이트 제한을 엄격하게 적용합니다.",
"vaapi_strict_rc_buffer_desc": "이 옵션을 활성화하면 장면이 변경되는 동안 네트워크를 통해 프레임이 끊기는 것을 방지할 수 있지만 움직이는 동안 동영상 품질이 저하될 수 있습니다.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "가상 싱크",
"virtual_sink_desc": "사용할 가상 오디오 장치를 수동으로 지정합니다. 설정하지 않으면 자동으로 장치가 선택됩니다. 자동으로 장치를 선택할려면 이 칸을 비우는 것을 권장드립니다.",
"virtual_sink_placeholder": "Steam Streaming Speakers",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@
"upnp_desc": "Automatycznie skonfiguruj przekierowanie portów do przesyłania strumieniowego przez Internet",
"vaapi_strict_rc_buffer": "Ścisłe egzekwowanie limitów przepływności klatek dla H.264/HEVC na układach GPU AMD",
"vaapi_strict_rc_buffer_desc": "Włączenie tej opcji pozwala uniknąć porzucania klatek przez sieć podczas zmiany sceny, ale jakość wideo może zostać obniżona podczas ruchu.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Wirtualny odbiornik",
"virtual_sink_desc": "Ręczne określenie używanego wirtualnego urządzenia audio. Jeśli nie jest ustawione, urządzenie zostanie wybrane automatycznie. Zdecydowanie zalecamy pozostawienie tego pola pustego, aby korzystać z automatycznego wyboru urządzenia!",
"virtual_sink_placeholder": "Głośniki do strumieniowania Steam",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,8 @@
"upnp_desc": "Configurar automaticamente o encaminhamento de portas para transmissão na Internet",
"vaapi_strict_rc_buffer": "Impedir com rigor limites de taxa de bits para H.264/HEVC nas GPUs AMD",
"vaapi_strict_rc_buffer_desc": "Habilitar esta opção pode evitar frames lançados pela rede durante as mudanças de cena, mas a qualidade de vídeo pode ser reduzida durante o movimento.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Pia Virtual",
"virtual_sink_desc": "Especifique manualmente um dispositivo de áudio virtual para usar. Se não for definido, o dispositivo é escolhido automaticamente. Recomendamos fortemente deixar este campo em branco para usar a seleção automática de dispositivo!",
"virtual_sink_placeholder": "Alto-falantes de streaming Steam",
Expand Down
2 changes: 2 additions & 0 deletions src_assets/common/assets/web/public/assets/locale/pt_BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,8 @@
"upnp_desc": "Configurar automaticamente o redirecionamento de portas para transmissão pela Internet",
"vaapi_strict_rc_buffer": "Impor limites estritos de taxa de bits de quadros para H.264/HEVC em GPUs AMD",
"vaapi_strict_rc_buffer_desc": "A ativação dessa opção pode evitar a queda de quadros na rede durante as mudanças de cena, mas a qualidade do vídeo pode ser reduzida durante o movimento.",
"vaapi_force_cqp": "Force CQP rate control",
"vaapi_force_cqp_desc": "Required for Intel Arc A-series (DG2) with xe driver where HuC firmware is unavailable. Disables CBR and VBR, which fail silently on affected hardware.",
"virtual_sink": "Saída de Áudio Virtual",
"virtual_sink_desc": "Especificar manualmente um dispositivo de áudio virtual a ser usado. Se não for definido, o dispositivo será escolhido automaticamente. É altamente recomendável deixar esse campo em branco para usar a seleção automática de dispositivos!",
"virtual_sink_placeholder": "Steam Streaming Speakers",
Expand Down
Loading