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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il giorno ven 15 set 2023 alle ore 01:33 Vivek Kasireddy
<vivek.kasireddy@xxxxxxxxx> ha scritto:
>
> From: Hazwan Arif Mazlan <hazwan.arif.mazlan@xxxxxxxxx>
>
> Using NV12 as the output format for the videoconvert element would
> allow us to pair a s/w based encoder with a h/w based decoder for
> decoding the stream as most h/w based decoders only accept NV12 as
> the input format given its popularity.
>

I don't fully understand the rationale. Yes, the h/w codecs usually
would convert this to NV12 however should not this be done by
gstreamer instead?
Surely YUV conversion is useful but what if a software conversion
would like to use Y444 instead? With NV12 you would lose image
quality.
Isn't gstreamer supposed to come out with the best combination?
Maybe it would be easier to have a more complete pipeline string
instead specified for each codec?

> Cc: Frediano Ziglio <freddy77@xxxxxxxxx>
> Cc: Dongwon Kim <dongwon.kim@xxxxxxxxx>
> Signed-off-by: Hazwan Arif Mazlan <hazwan.arif.mazlan@xxxxxxxxx>
> Signed-off-by: Jin Chung Teng <jin.chung.teng@xxxxxxxxx>
> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@xxxxxxxxx>
> ---
>  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
> --- a/server/gstreamer-encoder.c
> +++ b/server/gstreamer-encoder.c
> @@ -918,7 +918,7 @@ static gboolean create_pipeline(SpiceGstEncoder *encoder)
>  #ifdef HAVE_GSTREAMER_0_10
>      const gchar *converter = "ffmpegcolorspace";
>  #else
> -    const gchar *converter = "videoconvert";
> +    const gchar *converter = "videoconvert ! video/x-raw,format=NV12";
>  #endif
>      const gchar* gstenc_name = get_gst_codec_name(encoder);
>      if (!gstenc_name) {


Frediano



[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]