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

2024-06-10 Thread Vivek Kasireddy
checks at the start Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 158 + server/video-encoder.h | 13 2 files changed, 143 insertions(+), 28 deletions

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

2024-06-10 Thread Vivek Kasireddy
that VIDEO_ENCODER_FRAME_UNSUPPORTED is returned when an error is encountered in spice_gst_encoder_encode_dmabuf() Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- configure.ac | 2 +- meson.build| 2

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

2024-06-10 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/video-stream.cpp | 7

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

2024-06-10 Thread Vivek Kasireddy
with the stream and instead keep the ownerhip of the fd with the scanout Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 9 ++ server/display-channel-private.h | 1 + server/display-channel.cpp

[PATCH v8 5/6] gstreamer-encoder: Map the drm format to appropriate Gstreamer format

2024-06-10 Thread Vivek Kasireddy
the appropriate Gst format. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 1 + server/gstreamer-encoder.c | 103 +++-- server/video-encoder.h | 1 + 3 files changed

[PATCH v8 1/6] dcc: Check to see if the client supports multiple codecs (v2)

2024-06-10 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server

[PATCH v8 0/6] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v8)

2024-06-10 Thread Vivek Kasireddy
ediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (6): dcc: Check to see if the client supports multiple codecs (v2) dcc: Create a stream associated with gl_draw for non-gl clients (v6) dcc-send: Encode and send gl_draw stream data to the remote client

[PATCH v7 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2024-05-29 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server

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

2024-05-29 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/video-stream.cpp | 7

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

2024-05-29 Thread Vivek Kasireddy
checks at the start Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 158 + server/video-encoder.h | 13 2 files changed, 143 insertions(+), 28 deletions

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

2024-05-29 Thread Vivek Kasireddy
with the stream and instead keep the ownerhip of the fd with the scanout Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 9 ++ server/display-channel-private.h | 1 + server/display-channel.cpp

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

2024-05-29 Thread Vivek Kasireddy
that VIDEO_ENCODER_FRAME_UNSUPPORTED is returned when an error is encountered in spice_gst_encoder_encode_dmabuf() Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- configure.ac | 2 +- meson.build| 2

[PATCH v7 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v7)

2024-05-29 Thread Vivek Kasireddy
te all patches to address review comments from Frediano - Tested this series with msdkh264enc/dec plugins that will be added in another patch series Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports mu

[PATCH v6 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v6)

2024-03-04 Thread Vivek Kasireddy
: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports multiple codecs (v2) dcc: Create a stream associated with gl_draw for non-gl clients (v5) dcc-send: Encode and send gl_draw stream data to the remote client (v3) gstreamer-encode

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

2024-03-04 Thread Vivek Kasireddy
that VIDEO_ENCODER_FRAME_UNSUPPORTED is returned when an error is encountered in spice_gst_encoder_encode_dmabuf() Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- configure.ac | 2 +- meson.build| 2

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

2024-03-04 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/video-stream.cpp | 6

[PATCH v6 3/5] dcc-send: Encode and send gl_draw stream data to the remote client (v3)

2024-03-04 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 150 - server/video-encoder.h | 13 2 files changed, 133 insertions(+), 30 deletions(-) diff --git a/server/dcc-send.cpp b/server/dcc-send.cpp index 2c40a231..5908fde1 100644 --- a/server/dcc

[PATCH v6 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2024-03-04 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server

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

2024-03-04 Thread Vivek Kasireddy
, take an additional reference on the fd to ensure that it is not closed when the stream might still be using it Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 18 ++- server/display-channel

[PATCH v5 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v5)

2024-03-01 Thread Vivek Kasireddy
Tested this series with msdkh264enc/dec plugins that will be added in another patch series Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports multiple codecs (v2) dcc: Create a stream associated with g

[PATCH v5 2/5] dcc: Create a stream associated with gl_draw for non-gl clients (v4)

2024-03-01 Thread Vivek Kasireddy
: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 19 +++- server/display-channel-private.h | 1 + server/display-channel.cpp | 1 + server/video-stream.cpp | 166 +-- server/video-stream.h| 6 ++ 5 files

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

2024-03-01 Thread Vivek Kasireddy
that VIDEO_ENCODER_FRAME_UNSUPPORTED is returned when an error is encountered in spice_gst_encoder_encode_dmabuf() Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- configure.ac | 2 +- meson.build| 2

[PATCH v5 3/5] dcc-send: Encode and send gl_draw stream data to the remote client (v3)

2024-03-01 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 150 - server/video-encoder.h | 13 2 files changed, 133 insertions(+), 30 deletions(-) diff --git a/server/dcc-send.cpp b/server/dcc-send.cpp index 2c40a231..5908fde1 100644 --- a/server/dcc

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

2024-03-01 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/video-stream.cpp | 7

[PATCH v5 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2024-03-01 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Acked-by: Frediano Ziglio --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server

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

2024-02-28 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 7 ++- 1 file changed, 6

[PATCH v4 2/5] dcc: Create a stream associated with gl_draw for non-gl clients (v3)

2024-02-28 Thread Vivek Kasireddy
code from display_channel_create_stream() into a separate function that is reused when creating gl_draw_stream v3: - Create a new primary surface whenever a new stream gets created Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy

[PATCH v4 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2024-02-28 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server/dcc.cpp b/server/dcc.cpp

[PATCH v4 4/5] gstreamer-encoder: Add an encoder function that takes dmabuf fd as input (v2)

2024-02-28 Thread Vivek Kasireddy
-by: Vivek Kasireddy --- meson.build| 2 +- server/gstreamer-encoder.c | 164 ++--- 2 files changed, 135 insertions(+), 31 deletions(-) diff --git a/meson.build b/meson.build index b1237e61..d6aea60a 100644 --- a/meson.build +++ b/meson.build @@ -131,7

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

2024-02-28 Thread Vivek Kasireddy
Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 153 + server/video-encoder.h | 13 2 files changed, 137 insertions(+), 29 deletions(-) diff --git a/server/dcc-send.cpp b/server

[PATCH v4 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v4)

2024-02-28 Thread Vivek Kasireddy
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 another patch series Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasire

[Spice-devel] [PATCH v3 3/5] dcc-send: Encode and send gl_draw stream data to the remote client (v2)

2023-12-05 Thread Vivek Kasireddy
Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 152 + server/video-encoder.h | 13 2 files changed, 136 insertions(+), 29 deletions(-) diff --git a/server/dcc-send.cpp b/server

[Spice-devel] [PATCH v3 4/5] gstreamer-encoder: Add an encoder function that takes dmabuf fd as input (v2)

2023-12-05 Thread Vivek Kasireddy
-by: Vivek Kasireddy --- meson.build| 2 +- server/gstreamer-encoder.c | 164 ++--- 2 files changed, 135 insertions(+), 31 deletions(-) diff --git a/meson.build b/meson.build index b1237e61..d6aea60a 100644 --- a/meson.build +++ b/meson.build @@ -131,7

[Spice-devel] [PATCH v3 2/5] dcc: Create a stream associated with gl_draw for non-gl clients (v3)

2023-12-05 Thread Vivek Kasireddy
code from display_channel_create_stream() into a separate function that is reused when creating gl_draw_stream v3: - Create a new primary surface whenever a new stream gets created Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy

[Spice-devel] [PATCH v3 5/5] video-stream: Don't stop a stream associated with gl_draw (v2)

2023-12-05 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 7 ++- 1 file changed, 6

[Spice-devel] [PATCH v3 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v3)

2023-12-05 Thread Vivek Kasireddy
surface creation from Qemu. - Rebase all patches on master Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports multiple codecs (v2) dcc: Create a stream associated with gl_draw for non-gl clients (v3) dcc

[Spice-devel] [PATCH v3 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2023-12-05 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server/dcc.cpp b/server/dcc.cpp

[Spice-devel] [PATCH v5] gstreamer-encoder: Use an env var to override converter format (v5)

2023-11-15 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- server/gstreamer-encoder.c | 41 +- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c index d08de35a..40882f69 100644 --- a/server/gstreamer-encoder.c +++ b/server

[Spice-devel] [PATCH v4] gstreamer-encoder: Use an env var to override converter format (v4)

2023-11-14 Thread Vivek Kasireddy
the g_once mechanism to cache and return the preferred format after validating it Cc: Frediano Ziglio Cc: Dongwon Kim Based-on-patch-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- server/gstreamer-encoder.c | 41

[Spice-devel] [PATCH v5] channel-display-gst: Use h/w based decoders with Intel GPUs if possible (v5)

2023-11-01 Thread Vivek Kasireddy
e elements to NULL after the call to gst_bin_add_many() to indicate ownership transfer - Don't forget to unref appsink and appsrc elements when an error occurs Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Signed-off-by: Hazwan A

[Spice-devel] [PATCH v4] channel-display-gst: Use h/w based decoders with Intel GPUs if possible (v4)

2023-10-17 Thread Vivek Kasireddy
hange type and determine plugins array length using G_N_ELEMENTS - Free vpp_name immediately after using it to prevent leak - Rebase on master Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Signed-off-by: Hazwan Arif Mazlan Signed-o

[Spice-devel] [PATCH v4 2/2] gstreamer-encoder: Use a h/w based encoder with Intel GPUs if possible (v4)

2023-10-17 Thread Vivek Kasireddy
strstr - Include the string "_hw_" in function names that deal with h/w based plugins - Rebase on master Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Co-developed-by: Jin Chung Teng Co-developed-by: Hazwan Arif Mazlan ---

[Spice-devel] [PATCH v4 1/2] gstreamer-encoder: Use an env var to override converter format (v3)

2023-10-17 Thread Vivek Kasireddy
the impact of overriding the default encoding format (Frediano) v3: - Free converter when pipeline creation fails due to invalid codec - Rebase on master Cc: Frediano Ziglio Cc: Dongwon Kim Based-on-patch-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng Signed-off-by: Vivek Kasireddy

[Spice-devel] [PATCH v3] common: Add a udev helper to identify GPU Vendor (v3)

2023-10-17 Thread Vivek Kasireddy
: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- common/Makefile.am | 3 ++ common/meson.build | 2 ++ common/udev.c | 78 ++ common/udev.h | 33 configure.ac | 1 + m4/spice-deps.m4 | 12 +++ meson.build

[Spice-devel] [PATCH 1/2] channel-display-gst: Prefer playbin3 to playbin (v2)

2023-10-01 Thread Vivek Kasireddy
for playbin3 element as well Cc: Frediano Ziglio Cc: Dongwon Kim Cc: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- src/channel-display-gst.c | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/channel-display-gst.c b/src

[Spice-devel] [PATCH 2/2] gstreamer-encoder: Use a h/w based encoder with Intel GPUs if possible (v3)

2023-10-01 Thread Vivek Kasireddy
Added relevant encoder options for mjpeg and vp9 codecs (Jin Chung) Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Co-developed-by: Jin Chung Teng Co-developed-by: Hazwan Arif Mazlan --- server/gstreamer-encoder.c

[Spice-devel] [PATCH 2/2] channel-display-gst: Use h/w based decoders with Intel GPUs if possible (v3)

2023-10-01 Thread Vivek Kasireddy
-by: Vivek Kasireddy Signed-off-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng --- src/channel-display-gst.c | 216 ++ 1 file changed, 194 insertions(+), 22 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index 5c9927b

[Spice-devel] [PATCH] common: Add a udev helper to identify GPU Vendor (v2)

2023-10-01 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- common/meson.build | 2 ++ common/udev.c | 78 ++ common/udev.h | 33 configure.ac | 1 + m4/spice-deps.m4 | 12 +++ meson.build| 7 + 6 files changed, 133

[Spice-devel] [PATCH 1/2] gstreamer-encoder: Use an env var to override converter format (v2)

2023-10-01 Thread Vivek Kasireddy
the impact of overriding the default encoding format (Frediano) Cc: Frediano Ziglio Cc: Dongwon Kim Based-on-patch-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- server/gstreamer-encoder.c | 23 ++- 1 file changed, 18 insertions

[Spice-devel] [PATCH 0/2] spice/gstreamer: Use h/w based encoders/decoders with Intel GPUs if possible (v3)

2023-10-01 Thread Vivek Kasireddy
zwan Arif Mazlan Vivek Kasireddy (2): channel-display-gst: Prefer playbin3 to playbin (v2) channel-display-gst: Use h/w based decoders with Intel GPUs if possible (v3) src/channel-display-gst.c | 228 +- 1 file changed, 203 insertions(+), 25 deletions(-) -- 2.39.2

[Spice-devel] [PATCH 4/4] channel-display-gst: Use h/w based decoders with Intel GPUs if possible (v2)

2023-09-14 Thread Vivek Kasireddy
- Moved the code that launches the Gst pipeline into a helper that is used while trying h/w based plugins Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Signed-off-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng --- src

[Spice-devel] [PATCH 2/2] gstreamer-encoder: Use a h/w based encoder with Intel GPUs if possible (v2)

2023-09-14 Thread Vivek Kasireddy
: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Co-developed-by: Jin Chung Teng Co-developed-by: Hazwan Arif Mazlan --- server/gstreamer-encoder.c | 96 -- 1 file changed, 93 insertions(+), 3 deletions(-) diff --git a/

[Spice-devel] [PATCH] common: Add a udev helper to identify GPU Vendor

2023-09-14 Thread Vivek Kasireddy
: Hazwan Arif Mazlan Cc: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- common/meson.build | 2 ++ common/udev.c | 60 ++ common/udev.h | 12 ++ meson.build| 7 ++ 4 files changed, 81 insertions(+) create mode 100644

[Spice-devel] [PATCH 1/2] gstreamer-encoder: Use NV12 as the default vpp conversion format

2023-09-14 Thread Vivek Kasireddy
: Dongwon Kim Signed-off-by: Hazwan Arif Mazlan Signed-off-by: Jin Chung Teng Signed-off-by: Vivek Kasireddy --- server/gstreamer-encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c index d8af91f1..057509b5 100644

[Spice-devel] [PATCH 3/4] channel-display-gst: Don't unref appsink and pipeline objects

2023-09-14 Thread Vivek Kasireddy
s_bo_unreference:166: Input null ptr [MOS]: CRITICAL - mos_bo_unreference:166: Input null ptr Cc: Frediano Ziglio Cc: Dongwon Kim Cc: Jin Chung Teng Cc: Hazwan Arif Mazlan Signed-off-by: Vivek Kasireddy --- src/channel-display-gst.c | 4 1 file changed, 4 deletions(-) diff --git a/src/c

[Spice-devel] [PATCH 2/4] channel-display-gst: Add "byte-stream" as the stream format for h264

2023-09-14 Thread Vivek Kasireddy
Adding the string "stream-format=byte-stream" to decoder capabilities (dec_caps) for h264/h265 codecs stops Gstreamer from complaining about missing stream format. Cc: Frediano Ziglio Cc: Dongwon Kim Cc: Jin Chung Teng Cc: Hazwan Arif Mazlan Signed-off-by: Vivek Kasireddy --- s

[Spice-devel] [PATCH 1/4] channel-display-gst: Prefer playbin3 to playbin

2023-09-14 Thread Vivek Kasireddy
Chung Teng Signed-off-by: Vivek Kasireddy --- src/channel-display-gst.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index 36db3a3..3f46a65 100644 --- a/src/channel-display-gst.c +++ b/src/channel-display-gst.c

[Spice-devel] [PATCH 0/4] spice/gstreamer: Use h/w based encoders/decoders with Intel GPUs if possible (v2)

2023-09-14 Thread Vivek Kasireddy
to prioritize plugins in the order msdk > va > vaapi Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Cc: Jin Chung Teng Cc: Hazwan Arif Mazlan Vivek Kasireddy (4): channel-display-gst: Prefer playbin3 to playbin channel-display-gst: Add "byte-stream&quo

[Spice-devel] [PATCH v2 5/5] video-stream: Don't stop a stream associated with gl_draw (v2)

2023-09-08 Thread Vivek Kasireddy
with the relevant DC. v2: (suggestions from Frediano) - Don't stop the stream regardless of whether gl_draw is ongoing or not Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 7 ++- 1 file changed, 6

[Spice-devel] [PATCH v2 1/5] dcc: Check to see if the client supports multiple codecs (v2)

2023-09-08 Thread Vivek Kasireddy
of XXX_CAST macro. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 22 -- server/dcc.h | 6 ++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/server/dcc.cpp b/server/dcc.cpp

[Spice-devel] [PATCH v2 4/5] gstreamer-encoder: Add an encoder function that takes dmabuf fd as input (v2)

2023-09-08 Thread Vivek Kasireddy
-by: Vivek Kasireddy --- meson.build| 2 +- server/gstreamer-encoder.c | 164 ++--- 2 files changed, 135 insertions(+), 31 deletions(-) diff --git a/meson.build b/meson.build index ef8b41ad..d66fac10 100644 --- a/meson.build +++ b/meson.build @@ -131,7

[Spice-devel] [PATCH v2 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf (v2)

2023-09-08 Thread Vivek Kasireddy
patches to address review comments from Frediano - Tested this series with msdkh264enc/dec plugins that will be added in another patch series Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports multiple

[Spice-devel] [PATCH v2 3/5] dcc-send: Encode and send gl_draw stream data to the remote client (v2)

2023-09-08 Thread Vivek Kasireddy
Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 152 + server/video-encoder.h | 13 2 files changed, 136 insertions(+), 29 deletions(-) diff --git a/server/dcc-send.cpp b/server

[Spice-devel] [PATCH v2 2/5] dcc: Create a stream associated with gl_draw for non-gl clients (v2)

2023-09-08 Thread Vivek Kasireddy
code from display_channel_create_stream() into a separate function that is reused when creating gl_draw_stream Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc.cpp | 9 +++ server/display-channel

[Spice-devel] [PATCH] channel-display-gst: Use h/w based decoders with Intel GPUs if possible

2023-04-27 Thread Vivek Kasireddy
is h264, we then create a pipeline using msdkh264dec and vaapipostproc elements instead of avdec_h264 and videoconvert. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Signed-off-by: Mazlan, Hazwan Arif Signed-off-by: Teng, Jin Chung

[Spice-devel] [PATCH 0/1] spice/gstreamer: Use h/w based encoders/decoders with Intel GPUs if possible

2023-04-27 Thread Vivek Kasireddy
based encoder/decoder is to remove the msdk and or vaapi plugins from GST_PLUGIN_PATH. This might be desirable for debugging purposes or for other reasons. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Cc: Mazlan, Hazwan Arif Cc: Teng, Jin Chung Vivek Kasireddy (1

[Spice-devel] [PATCH] gstreamer-encoder: Use a h/w based encoder with Intel GPUs if possible

2023-04-27 Thread Vivek Kasireddy
as the preferred codec format, msdkh264enc and vaapipostproc will be added instead of x264enc and videoconvert. Cc: Frediano Ziglio Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy Signed-off-by: Mazlan, Hazwan Arif Signed-off-by: Teng, Jin Chung --- meson.build

[Spice-devel] [PATCH v1 3/5] dcc-send: Encode and send gl_draw stream data to the remote client

2023-03-16 Thread Vivek Kasireddy
fd as input), we then send it over to the client. Also, as soon as the encoder notifies that it is no longer using the dmabuf fd, we send a gl_draw_done async to the application. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp

[Spice-devel] [PATCH v1 5/5] video-stream: Don't stop a stream if a gl_draw operation is pending

2023-03-16 Thread Vivek Kasireddy
client (dcc). Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 21 - 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/server/video-stream.cpp b/server/video-stream.cpp index 03a7d68d..b7f3d2c5

[Spice-devel] [PATCH v1 4/5] gstreamer-encoder: Add an encoder function that takes dmabuf fd as input

2023-03-16 Thread Vivek Kasireddy
that the source_fps value is always non-zero. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- meson.build| 2 +- server/gstreamer-encoder.c | 119 - 2 files changed, 118 insertions(+), 3 deletions(-) diff --git

[Spice-devel] [PATCH v1 0/5] dcc: Create a stream for non-gl/remote clients that want to use dmabuf

2023-03-16 Thread Vivek Kasireddy
Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): dcc: Check to see if the client supports multiple codecs dcc: Create a stream associated with gl_draw for non-gl clients dcc-send: Encode and send gl_draw stream data to the remote client gstreamer-encoder: Add an encoder

[Spice-devel] [PATCH v1 2/5] dcc: Create a stream associated with gl_draw for non-gl clients

2023-03-16 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- server/dcc-private.h| 2 ++ server/dcc.cpp | 14 + server/video-stream.cpp | 44 + server/video-stream.h | 2 ++ 4 files changed, 62 insertions(+) diff --git a/server/dcc-private.h b/server/dcc

[Spice-devel] [PATCH v1 1/5] dcc: Check to see if the client supports multiple codecs

2023-03-16 Thread 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. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-private.h | 2 ++ server/dcc.cpp

[Spice-devel] [RFC v2 4/5] video-stream: Force stream creation for a valid dmabuf fd

2023-01-23 Thread Vivek Kasireddy
If a drawable contains a valid dmabuf fd, then it makes sense to create a stream for it right away. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git

[Spice-devel] [RFC v2 1/5] gstreamer-encoder: Use a dmabuf allocator for a valid fd

2023-01-23 Thread Vivek Kasireddy
Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- meson.build| 2 +- server/gstreamer-encoder.c | 48 +++--- server/video-encoder.h | 7 ++ 3 files changed, 53 insertions(+), 4 deletions(-) diff --git

[Spice-devel] [RFC v2 0/5] gstreamer-encoder: Use a dmabuf allocator if the drawable has a valid fd (v2)

2023-01-23 Thread Vivek Kasireddy
is done using the fd. v2: - Used the already existing gl_scanout and gl_draw_async APIs instead of adding new ones. - Slightly refactored and improved the commits and their messages. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (5): gstreamer-encoder: Use

[Spice-devel] [RFC v2 5/5] red-qxl: Add a new parameter to gl_scanout and gl_draw_async

2023-01-23 Thread Vivek Kasireddy
Signed-off-by: Vivek Kasireddy --- server/red-qxl.cpp | 14 ++ server/spice-qxl.h | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/red-qxl.cpp b/server/red-qxl.cpp index 48c293ae..14380a60 100644 --- a/server/red-qxl.cpp +++ b/server/red-qxl.cpp

[Spice-devel] [RFC v2 2/5] display-channel: Extract the dmabuf fd from the scanout

2023-01-23 Thread Vivek Kasireddy
If the scanout has a valid dmabuf fd, then store a copy of it in the drawable. This is one of the first steps needed to share the dmabuf fd with the encoder. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/display-channel.cpp | 9

[Spice-devel] [RFC v2 3/5] display-channel: Share the drawable's copy of fd with the encoder

2023-01-23 Thread Vivek Kasireddy
count for different situations - Creates an object of type VideoEncoderDmabufData and populates it with relevant data such as fd, callback, etc. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/dcc-send.cpp| 30

[Spice-devel] [RFC v1 3/4] gstreamer-encoder: Use a dmabuf allocator if the drawable has a valid fd

2023-01-10 Thread Vivek Kasireddy
If the drawable contains a valid dmabuf fd, then allocate Gst memory using a dmabuf allocator. And, register a callback with the pipeline to trigger an async when the dmabuf is no longer in use. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy

[Spice-devel] [RFC v1 1/4] red-parse-qxl: Extract the dmabuf fd from the scanout

2023-01-10 Thread Vivek Kasireddy
If the scanout has a valid dmabuf fd, then it is extracted and a copy (of the fd) is stored in the drawable. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/red-parse-qxl.cpp | 8 server/red-parse-qxl.h | 1 + 2 files changed, 9

[Spice-devel] [RFC v1 4/4] video-stream: Force stream creation for a valid dmabuf fd

2023-01-10 Thread Vivek Kasireddy
If the drawable contains a valid dmabuf fd, then a stream needs to be created for all the display channels. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/video-stream.cpp | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions

[Spice-devel] [RFC v1 2/4] display-channel: Add the asyncs associated with dmabuf encode

2023-01-10 Thread Vivek Kasireddy
This async is triggered by the encoder indicating that the encoding process is completed. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Signed-off-by: Vivek Kasireddy --- server/display-channel.cpp | 9 + server/display-channel.h | 2 ++ server/red-qxl.cpp | 26

[Spice-devel] [RFC v1 0/4] gstreamer-encoder: Use a dmabuf allocator if the drawable has a valid fd

2023-01-10 Thread Vivek Kasireddy
and remote-viewer using the x264enc/dec codec to stream the Guest desktop but it can be extended to other plugins and applications. Cc: Gerd Hoffmann Cc: Marc-André Lureau Cc: Dongwon Kim Vivek Kasireddy (4): red-parse-qxl: Extract the dmabuf fd from the scanout display-channel: Add the asyncs