wip
This commit is contained in:
parent
d6cf3b7354
commit
7d358580a2
8
TODO
8
TODO
@ -79,15 +79,17 @@ First video and audio frame should be posted immediately instead of waiting 1000
|
|||||||
|
|
||||||
Support vulkan video encoding. That might workaround forced p2 state nvidia driver "bug". Ffmpeg supports vulkan video encoding if it's encoding with --enable-vulkan
|
Support vulkan video encoding. That might workaround forced p2 state nvidia driver "bug". Ffmpeg supports vulkan video encoding if it's encoding with --enable-vulkan
|
||||||
|
|
||||||
Enable opus/flac again. It's broken right now when merging audio inputs. The audio gets a lot of static noise!
|
|
||||||
|
|
||||||
It may be possible to improve color conversion rgb->yuv shader for color edges by biasing colors to an edge, instead of letting color overlaying with bilinear filtering handle it.
|
It may be possible to improve color conversion rgb->yuv shader for color edges by biasing colors to an edge, instead of letting color overlaying with bilinear filtering handle it.
|
||||||
|
|
||||||
When webcam is supported mention that nvidia_drm.modeset=1 must be set on nvidia x11 (it's required on wayland so it's not needed there. Or does eglstream work without it??). Check if this really is the case.
|
When webcam is supported mention that nvidia_drm.modeset=1 must be set on nvidia x11 (it's required on wayland so it's not needed there. Or does eglstream work without it??). Check if this really is the case.
|
||||||
|
Support green screen removal, cropping, shader effects in general (circle mask, rounded corners, etc).
|
||||||
|
|
||||||
Use vfr on nvidia x11 as well, otherwise network data could slow it down to below target fps and mess it up.
|
Use vfr on nvidia x11 as well, otherwise network data could slow it down to below target fps and mess it up.
|
||||||
|
|
||||||
Preset is set to p5 for now but it should ideally be p6 or p7.
|
Preset is set to p5 for now but it should ideally be p6 or p7.
|
||||||
This change is needed because for certain sizes of a window (or monitor?) such as 971x780 causes encoding to freeze
|
This change is needed because for certain sizes of a window (or monitor?) such as 971x780 causes encoding to freeze
|
||||||
when using h264 codec. This is a new(?) nvidia driver bug.
|
when using h264 codec. This is a new(?) nvidia driver bug.
|
||||||
Maybe dont choose p6 or p7 again? it causes micro stutter for some users (?).
|
Maybe dont choose p6 or p7 again? it causes micro stutter for some users (?).
|
||||||
|
|
||||||
|
For low latency, see https://developer.download.nvidia.com/compute/nvenc/v4.0/NVENC_VideoEncoder_API_ProgGuide.pdf (section 7.1).
|
||||||
|
Remove follow focused option.
|
||||||
|
@ -136,7 +136,7 @@ static unsigned int load_shader_uv(gsr_shader *shader, gsr_egl *egl, int *rotati
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int loader_framebuffers(gsr_color_conversion *self) {
|
static int load_framebuffers(gsr_color_conversion *self) {
|
||||||
const unsigned int draw_buffer = GL_COLOR_ATTACHMENT0;
|
const unsigned int draw_buffer = GL_COLOR_ATTACHMENT0;
|
||||||
self->params.egl->glGenFramebuffers(MAX_FRAMEBUFFERS, self->framebuffers);
|
self->params.egl->glGenFramebuffers(MAX_FRAMEBUFFERS, self->framebuffers);
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ int gsr_color_conversion_init(gsr_color_conversion *self, const gsr_color_conver
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(loader_framebuffers(self) != 0)
|
if(load_framebuffers(self) != 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
if(create_vertices(self) != 0)
|
if(create_vertices(self) != 0)
|
||||||
@ -232,7 +232,6 @@ int gsr_color_conversion_init(gsr_color_conversion *self, const gsr_color_conver
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
self->params.egl->glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
|
||||||
gsr_color_conversion_deinit(self);
|
gsr_color_conversion_deinit(self);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -572,6 +572,9 @@ bool gsr_egl_start_capture(gsr_egl *self, const char *monitor_to_capture) {
|
|||||||
if(!gsr_egl_supports_wayland_capture(self))
|
if(!gsr_egl_supports_wayland_capture(self))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if(self->wayland.frame_callback)
|
||||||
|
return false;
|
||||||
|
|
||||||
self->wayland.output_to_capture = get_wayland_output_by_name(self, monitor_to_capture);
|
self->wayland.output_to_capture = get_wayland_output_by_name(self, monitor_to_capture);
|
||||||
if(!self->wayland.output_to_capture)
|
if(!self->wayland.output_to_capture)
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user