Sunshine master
Self-hosted game stream host for Moonlight.
nvenc_config.h
Go to the documentation of this file.
1
5#pragma once
6
7namespace nvenc {
8
14
20
24 struct nvenc_config {
25 // Quality preset from 1 to 7, higher is slower
26 int quality_preset = 1;
27
28 // Use optional preliminary pass for better motion vectors, bitrate distribution and stricter VBV(HRD), uses CUDA cores
30
31 // Percentage increase of VBV/HRD from the default single frame, allows low-latency variable bitrate
32 int vbv_percentage_increase = 0;
33
34 // Improves fades compression, uses CUDA cores
35 bool weighted_prediction = false;
36
37 // Allocate more bitrate to flat regions since they're visually more perceptible, uses CUDA cores
38 bool adaptive_quantization = false;
39
40 // Don't use QP below certain value, limits peak image quality to save bitrate
41 bool enable_min_qp = false;
42
43 // Min QP value for H.264 when enable_min_qp is selected
44 unsigned min_qp_h264 = 19;
45
46 // Min QP value for HEVC when enable_min_qp is selected
47 unsigned min_qp_hevc = 23;
48
49 // Min QP value for AV1 when enable_min_qp is selected
50 unsigned min_qp_av1 = 23;
51
52 // Use CAVLC entropy coding in H.264 instead of CABAC, not relevant and here for historical reasons
53 bool h264_cavlc = false;
54
55 // Add filler data to encoded frames to stay at target bitrate, mainly for testing
56 bool insert_filler_data = false;
57
58 // Enable split-frame encoding if the gpu has multiple NVENC hardware clusters
60 };
61
62} // namespace nvenc
Standalone NVENC encoder.
Definition nvenc_base.cpp:90
nvenc_two_pass
Definition nvenc_config.h:9
@ disabled
Single pass, the fastest and no extra vram.
@ full_resolution
Better overall statistics, slower and uses more extra vram.
@ quarter_resolution
Larger motion vectors being caught, faster and uses less extra vram.
nvenc_split_frame_encoding
Definition nvenc_config.h:15
@ driver_decides
Let driver decide.
NVENC encoder configuration.
Definition nvenc_config.h:24