[PATCH 02/10] dcc: Check to see if the client supports multiple codecs (v2)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy We need to determine if the client is new enough to support multiple codecs -- which might include any of the Gstreamer based ones. v2: (suggestions and fixups from Frediano) - Add is_gl_client() method to DisplayChannelClient instead of a dcc_is_gl_client() function. - A

[PATCH 09/10] gstreamer-encoder: Include dmabuf encoding conditionally for Linux

2025-02-28 Thread Michael Scherle
add dmabuf encoding if `drm/drm_fourcc.h` is present and gstreamer is at least 1.24 due to `gst_video_dma_drm_fourcc_to_format()`. Signed-off-by: Michael Scherle --- meson.build| 10 +- server/gstreamer-encoder.c | 34 +++--- 2 files changed

[PATCH 00/10] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v9)

2025-02-28 Thread Michael Scherle
Oh I made a mistake and send this to the wrong mailing list, I'm so sorry, I wanted to send it to the spice devel. On 27.02.25 12:03, Michael Scherle wrote: > This merge request is based on Vivek Kasireddy's > [PATCH v8 0/6] dcc: Create a stream for non-gl/remote clients th

[PATCH 04/10] dcc-send: Encode and send gl_draw stream data to the remote client (v4)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy For remote (or non-gl) clients, if a valid gl_draw stream exists, then we first extract the dmabuf fd associated with the scanout and share it with the encoder along with other key parameters such as stride, width and height. Once the encoder finishes creating an encoded buf

[PATCH 08/10] Update spice-common submodule

2025-02-28 Thread Michael Scherle
This brings in the following changes: common: Add a udev helper to identify GPU Vendor build: Avoid Meson warning Drop Python 2 from m4/spice-deps.m4 Stop using Python six package codegen: Use context manager when opening files Signed-off-by: Michael Scherle

[PATCH 10/10] dcc-send: Fix freeze when video stream is stopped during ongoing draw

2025-02-28 Thread Michael Scherle
Prevent a freeze that occurs if the video stream is stopped while a gl draw is in progress (e.g., when the client requests a new codec). Ensure proper cleanup of the ongoing gl draw. Signed-off-by: Michael Scherle --- server/dcc-send.cpp | 4 1 file changed, 4 insertions(+) diff --git a

[PATCH 01/10] gstreamer-encoder: Use a h/w based encoder with Intel GPUs if possible (v5)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy Once it is determined that an Intel GPU is available/active (after looking into udev's database), we try to see if there is a h/w based encoder (element) available (in Gstreamer's registry cache) for the user selected video codec. In other words, if we find that the Intel Me

[PATCH 00/10] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v9)

2025-02-28 Thread Michael Scherle
ver/display-channel.cpp:2074:display_channel_create_surface: condition `!display->priv->surfaces[surface_id]' failed Rebase all patches on master v2: Update all patches to address review comments from Frediano Tested this series with msdkh264enc/dec plugins that will be added in anothe

[PATCH 05/10] gstreamer-encoder: Add an encoder function that takes dmabuf fd as input (v3)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy This patch adds a new function to enable the creation of Gst memory with the dmabuf fd as the source by using a dmabuf allocator. And, it also adds a mechanism to register and invoke any callbacks once the Gst memory object is no longer used by the pipeline. This patch also

[PATCH 03/10] dcc: Create a stream associated with gl_draw for non-gl clients (v6)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy For non-gl/remote clients, if there is no stream associated with the DisplayChannel, then we create a new stream. Otherwise, we just update the current stream's timestamp. v2: (suggestions and fixups from Frediano) - Moved the gl_draw_stream object from DCC to DC - Moved th

[PATCH 07/10] gstreamer-encoder: Map the drm format to appropriate Gstreamer format

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy We need to convert the scanout's drm format to the correct Gstreamer format while configuring the pipeline. This can be done using gst_video_dma_drm_fourcc_to_format() API, which will take the drm fourcc value and return the appropriate Gst format. Signed-off-by: Vivek Kasi

[PATCH 06/10] video-stream: Don't stop a stream associated with gl_draw (v2)

2025-02-28 Thread Michael Scherle
From: Vivek Kasireddy We do not want to stop a stream associated with gl_draw as a result of timeout because we may not get another opportunity to create a new stream if the current one gets stopped. However, when the stream does get stopped for other reasons, we need to clear the gl_draw_stream