mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-02-22 21:40:42 +00:00
Only increase rc_buffer_size when software encoding with more than one slice (#692)
This commit is contained in:
parent
76896eba88
commit
c72aeef67b
@ -1023,9 +1023,17 @@ std::optional<session_t> make_session(const encoder_t &encoder, const config_t &
|
|||||||
if(video_format[encoder_t::CBR]) {
|
if(video_format[encoder_t::CBR]) {
|
||||||
auto bitrate = config.bitrate * 1000;
|
auto bitrate = config.bitrate * 1000;
|
||||||
ctx->rc_max_rate = bitrate;
|
ctx->rc_max_rate = bitrate;
|
||||||
ctx->rc_buffer_size = bitrate / ((config.framerate * 10) / 15);
|
|
||||||
ctx->bit_rate = bitrate;
|
ctx->bit_rate = bitrate;
|
||||||
ctx->rc_min_rate = bitrate;
|
ctx->rc_min_rate = bitrate;
|
||||||
|
|
||||||
|
if(!hardware && ctx->slices > 1) {
|
||||||
|
// Use a larger rc_buffer_size for software encoding when slices are enabled,
|
||||||
|
// because libx264 can severely degrade quality if the buffer is too small.
|
||||||
|
ctx->rc_buffer_size = bitrate / ((config.framerate * 10) / 15);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ctx->rc_buffer_size = bitrate / config.framerate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(video_format.qp) {
|
else if(video_format.qp) {
|
||||||
handle_option(*video_format.qp);
|
handle_option(*video_format.qp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user