From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Dietmar Maurer <dietmar@proxmox.com>
Cc: marcandre.lureau@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v3 4/9] h264: search for available h264 encoder
Date: Thu, 24 Apr 2025 11:30:22 +0100 [thread overview]
Message-ID: <aAoSvoQEGc78WRby@redhat.com> (raw)
In-Reply-To: <20250418112953.1744442-5-dietmar@proxmox.com>
On Fri, Apr 18, 2025 at 01:29:48PM +0200, Dietmar Maurer wrote:
> The search list is currently hardcoded to: ["x264enc", "openh264enc"]
>
> x264enc: is probably the best available software encoder
> openh264enc: lower quality, but available on more systems.
>
> We restrict encoders to a known list because each encoder requires
> fine tuning to get reasonable/usable results.
>
> Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
> ---
> ui/vnc-enc-h264.c | 89 +++++++++++++++++++++++++++++++++++++++--------
> ui/vnc.h | 1 +
> 2 files changed, 75 insertions(+), 15 deletions(-)
>
> diff --git a/ui/vnc-enc-h264.c b/ui/vnc-enc-h264.c
> index 3abe6a1528..047f4a3128 100644
> --- a/ui/vnc-enc-h264.c
> +++ b/ui/vnc-enc-h264.c
> @@ -172,9 +220,20 @@ static bool create_encoder_context(VncState *vs, int w, int h)
>
> bool vnc_h264_encoder_init(VncState *vs)
> {
> + const char *encoder_name;
> +
> g_assert(vs->h264 == NULL);
>
> + encoder_name = get_available_encoder();
> + if (encoder_name == NULL) {
> + VNC_DEBUG("No H264 encoder available.\n");
> + return -1;
This method has return type 'bool', not 'int', this needs
to be 'false'.
> + }
> +
> vs->h264 = g_new0(VncH264, 1);
> + vs->h264->encoder_name = encoder_name;
> +
> + VNC_DEBUG("Allow H264 using encoder '%s`\n", encoder_name);
>
> return true;
> }
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 :|
next prev parent reply other threads:[~2025-04-24 10:31 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-18 11:29 [PATCH v3 0/9] Add VNC Open H.264 Encoding Dietmar Maurer
2025-04-18 11:29 ` [PATCH v3 1/9] new configure option to enable gstreamer Dietmar Maurer
2025-04-19 5:11 ` Marc-André Lureau
2025-04-23 12:14 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 2/9] add vnc h264 encoder Dietmar Maurer
2025-04-19 5:24 ` Marc-André Lureau
2025-04-23 11:46 ` Dietmar Maurer
2025-04-23 11:57 ` Marc-André Lureau
2025-04-24 6:19 ` Dietmar Maurer
2025-04-24 8:32 ` Daniel P. Berrangé
2025-04-24 9:28 ` Dietmar Maurer
2025-04-24 9:34 ` Daniel P. Berrangé
2025-04-23 12:10 ` Daniel P. Berrangé
2025-04-23 12:25 ` Daniel P. Berrangé
2025-04-24 7:32 ` Dietmar Maurer
2025-04-24 8:43 ` Dietmar Maurer
2025-04-24 8:58 ` Daniel P. Berrangé
2025-04-24 10:39 ` Dietmar Maurer
2025-04-24 10:45 ` Daniel P. Berrangé
2025-04-24 11:01 ` Dietmar Maurer
2025-04-24 16:39 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 3/9] vnc: h264: send additional frames after the display is clean Dietmar Maurer
2025-04-19 5:26 ` Marc-André Lureau
2025-04-23 12:39 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 4/9] h264: search for available h264 encoder Dietmar Maurer
2025-04-23 12:43 ` Daniel P. Berrangé
2025-04-24 10:30 ` Daniel P. Berrangé [this message]
2025-04-18 11:29 ` [PATCH v3 5/9] h264: new vnc option to configure h264 at server side Dietmar Maurer
2025-04-21 10:06 ` Marc-André Lureau
2025-04-23 12:47 ` Daniel P. Berrangé
2025-04-25 8:02 ` Dietmar Maurer
2025-04-18 11:29 ` [PATCH v3 6/9] h264: add hardware encoders Dietmar Maurer
2025-04-23 12:49 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 7/9] h264: do not reduce vnc update speed while we have an active h264 stream Dietmar Maurer
2025-04-23 12:50 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 8/9] vnc: initialize gst during argument processing Dietmar Maurer
2025-04-21 10:09 ` Marc-André Lureau
2025-04-23 12:52 ` Daniel P. Berrangé
2025-04-18 11:29 ` [PATCH v3 9/9] h264: register shutdown notifiers, stop pipeline in destroy_encoder_context Dietmar Maurer
2025-04-21 10:14 ` Marc-André Lureau
2025-04-22 6:35 ` Dietmar Maurer
2025-04-22 6:39 ` Marc-André Lureau
2025-04-22 7:03 ` Dietmar Maurer
2025-04-22 7:07 ` Marc-André Lureau
2025-04-22 7:17 ` Dietmar Maurer
2025-04-23 12:58 ` Daniel P. Berrangé
2025-04-23 12:57 ` Daniel P. Berrangé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aAoSvoQEGc78WRby@redhat.com \
--to=berrange@redhat.com \
--cc=dietmar@proxmox.com \
--cc=marcandre.lureau@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.