On Fri, Apr 18, 2025 at 01:29:50PM +0200, Dietmar Maurer wrote: ....could at lesat explain what the chosen encoders are..
> Signed-off-by: Dietmar Maurer <diet...@proxmox.com> > --- > ui/vnc-enc-h264.c | 22 ++++++++++++++++++---- > 1 file changed, 18 insertions(+), 4 deletions(-) > > diff --git a/ui/vnc-enc-h264.c b/ui/vnc-enc-h264.c > index 0f89cafbf6..840674dbdb 100644 > --- a/ui/vnc-enc-h264.c > +++ b/ui/vnc-enc-h264.c > @@ -29,15 +29,17 @@ > > static char *get_available_encoder(const char *encoder_list) > { > + char *ret = NULL; > + char **encoder_array = NULL; > + > g_assert(encoder_list != NULL); > > if (!strcmp(encoder_list, "")) { > /* use default list */ > - encoder_list = "x264enc openh264enc"; > + encoder_list = "nvh264enc vaapih264enc x264enc openh264enc"; > } > > - char *ret = NULL; > - char **encoder_array = g_strsplit(encoder_list, " ", -1); > + encoder_array = g_strsplit(encoder_list, " ", -1); > > int i = 0; > do { > @@ -69,7 +71,19 @@ static GstElement *create_encoder(const char *encoder_name) > return NULL; > } > > - if (!strcmp(encoder_name, "x264enc")) { > + if (!strcmp(encoder_name, "nvh264enc")) { > + g_object_set( > + encoder, > + "preset", 8, /* p1 - fastest */ > + "multi-pass", 1, /* multipass disabled */ > + "tune", 2, /* low latency */ > + "zerolatency", true, /* low latency */ > + /* avoid access unit delimiters (Nal Unit Type 9) - not required > */ > + "aud", false, > + NULL); > + } else if (!strcmp(encoder_name, "vaapih264enc")) { > + g_object_set(encoder, "tune", 1, NULL); /* high compression */ > + } else if (!strcmp(encoder_name, "x264enc")) { > g_object_set( > encoder, > "tune", 4, /* zerolatency */ Feels like this patch could jsut be folded into patch 4 that first introduces this method. > -- > 2.39.5 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|