[External] AW: gstreamer videoconvert support gpu memory buffer

Matthew Waters ystreet00 at gmail.com
Wed Aug 18 08:33:32 UTC 2021


You should create your own element if you have custom memory requirements.

Cheers
-Matt

On 18/8/21 6:17 pm, Gaurav Vohra via gstreamer-devel wrote:
>
> Hi,
>
> As I can see glcolorconvert expect sink and src as 
> video/x-raw(memory:GLMemory), which is not same in my case as input 
> for me is x-raw and o/p is x-raw(memory:GBM)
>
> In my case I am trying to access usb camera using /dev/video3 so input 
> to videoconvert/or any other plugin would be
>
> video/x-raw, width=(int)1280, height=(int)720, 
> framerate=(fraction)15/2, format=(string)YUY2
>
> and the aim is to convert using customized videoconvert/other element.
>
> video/x-raw(memory:GBM), width=(int)1280, height=(int)720, 
> framerate=(fraction)15/2, format=(string)NV12
>
> the videoconvert customized is aimed to perform
>
>  1. format conversion from YUY2 to NV12
>  2. frame buffers from video/x-raw(system memory) to
>     video/x-raw(memory:GBM)(gpu backed memory)
>
> Here GBM buffers are gpu backed memory which I am setting up in 
> transform_frame of videoconvert.
>
> Above necessity is as qtimletflite requires sink input as NV12 format 
> and video/x-raw(memory:GBM)
>
> Playback Pipeline is as follows. Below videoconvert is customized version
>
> gst-launch-1.0 -v v4l2src device=/dev/video3 num-buffers=1 ! 
> video/x-raw,width=1280,height=720,framerate=15/2,format=YUY2 ! 
> videoconvert ! qtimletflite config=/data/misc/camera/mle_tflite.config 
> model=/data/misc/camera/detect.tflite 
> labels=/data/misc/camera/labelmap.txt postprocessing=detection ! 
> waylandsink
>
> Regards
>
> Gaurav
>
> *From:* gstreamer-devel 
> <gstreamer-devel-bounces at lists.freedesktop.org> *On Behalf Of 
> *Thornton, Keith via gstreamer-devel
> *Sent:* Wednesday, August 18, 2021 1:14 PM
> *To:* Discussion of the development of and with GStreamer 
> <gstreamer-devel at lists.freedesktop.org>
> *Cc:* Thornton, Keith <keith.thornton at zeiss.com>
> *Subject:* [External] AW: gstreamer videoconvert support gpu memory buffer
>
> *CAUTION:*This email originated from outside of the organization. This 
> message might not be safe, use caution in opening it. If in doubt, do 
> not open the attachment nor links in the message.
>
> Hi,
>
> does glcolorconvert not do what you need?
>
> Gruesse
>
> *Von:*gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org 
> <mailto:gstreamer-devel-bounces at lists.freedesktop.org>> *Im Auftrag 
> von *Gaurav Vohra via gstreamer-devel
> *Gesendet:* Mittwoch, 18. August 2021 08:18
> *An:* gstreamer-devel at lists.freedesktop.org 
> <mailto:gstreamer-devel at lists.freedesktop.org>
> *Cc:* Gaurav Vohra <Gaurav.Vohra at einfochips.com 
> <mailto:Gaurav.Vohra at einfochips.com>>
> *Betreff:* gstreamer videoconvert support gpu memory buffer
>
> Hello,
>
> I am working to customize gstreamer plugin to support
>
> working to modify gstreamer plugin - videoconvert get obtain output 
> data allocated as gpu memory allocated buffers.
>
> As part of first step have modified the plugin to update the src 
> template to include the gpu memory caps.
>
> Allocation for gpu memory is done is transform_frame, but before that 
> being called stream error and negotition is failing
>
> Commented part
>
> // #define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) 
> ";" \
>
> GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("ANY", GST_VIDEO_FORMATS_ALL)
>
> Modified part
>
> #define CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) 
> ";" \
>
> GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("memory:GBM", GST_VIDEO_FORMATS_ALL)
>
> //#define CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE_WITH_FEATURES 
> ("memory:GBM", GST_VIDEO_FORMATS_ALL)
>
> static GstStaticPadTemplate gst_video_convert_src_template =
>
> GST_STATIC_PAD_TEMPLATE ("src",
>
> GST_PAD_SRC,
>
> GST_PAD_ALWAYS,
>
> GST_STATIC_CAPS (CSP_VIDEO_CAPS_SRC)
>
>     );
>
> While trying to run the playback pipeline getting errors related to 
> negotitation and stream error like below
>
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: 
> Internal data stream error.
>
> Additional debug info:
>
> ../../../../gstreamer-1.14.4/libs/gst/base/gstbasesrc.c(3055): 
> gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
>
> streaming stopped, reason not-negotiated (-4)
>
> Further debugging from logs suggest intersect of capsfilter input and 
> the caps filter is coming as EMPTY
>
> 0:00:06.974521920  4320  0x10cde60 DEBUG             capsfilter 
> gstcapsfilter.c:296:gst_capsfilter_transform_caps:<capsfilter0> 
> input:     video/x-raw(memory:GBM), format=(string)NV12, width=(int)[ 
> 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 
> 2147483647/1 ]; video/x-raw(memory:GBM), width=(int)[ 1, 32767 ], 
> height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ], 
> format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, 
> RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, 
> NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, 
> BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, 
> I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, 
> GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, 
> A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, 
> P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, 
> GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, 
> Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }
>
> 0:00:06.974569108  4320  0x10cde60 DEBUG             capsfilter 
> gstcapsfilter.c:297:gst_capsfilter_transform_caps:<capsfilter0> 
> filter:    (NULL)
>
> 0:00:06.974616661  4320  0x10cde60 DEBUG             capsfilter 
> gstcapsfilter.c:299:gst_capsfilter_transform_caps:<capsfilter0> caps 
> filter:    video/x-raw, width=(int)1280, height=(int)720, 
> framerate=(fraction)15/2, format=(string)YUY2
>
> 0:00:06.974651037  4320  0x10cde60 DEBUG             capsfilter 
> gstcapsfilter.c:300:gst_capsfilter_transform_caps:<capsfilter0> 
> intersect: EMPTY
>
> Regards
>
> Gaurav
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210818/1d09e845/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210818/1d09e845/attachment-0001.sig>


More information about the gstreamer-devel mailing list