<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    You should create your own element if you have custom memory
    requirements.<br>
    <br>
    Cheers<br>
    -Matt<br>
    <br>
    <div class="moz-cite-prefix">On 18/8/21 6:17 pm, Gaurav Vohra via
      gstreamer-devel wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:PH0PR04MB7544EEDEF3E9F4E4E39A608BE5FF9@PH0PR04MB7544.namprd04.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Hi,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">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)<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">In my case I am trying to access usb camera
          using /dev/video3 so input to videoconvert/or any other plugin
          would be
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">video/x-raw, width=(int)1280,
          height=(int)720, framerate=(fraction)15/2, format=(string)YUY2<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">and the aim is to convert using customized
          videoconvert/other element.
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">video/x-raw(memory:GBM), width=(int)1280,
          height=(int)720, framerate=(fraction)15/2, format=(string)NV12<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">the videoconvert customized is aimed to
          perform<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <ol style="margin-top:0in" type="a" start="1">
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l0 level1 lfo1">format
            conversion from YUY2 to NV12<o:p></o:p></li>
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l0 level1 lfo1">frame
            buffers from video/x-raw(system memory) to
            video/x-raw(memory:GBM)(gpu backed memory)<o:p></o:p></li>
        </ol>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Here GBM buffers are gpu backed memory
          which I am setting up in transform_frame of videoconvert.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Above necessity is as qtimletflite requires
          sink input as NV12 format and video/x-raw(memory:GBM)<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Playback Pipeline is as follows. Below
          videoconvert is customized version<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">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<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Regards<o:p></o:p></p>
        <p class="MsoNormal">Gaurav<o:p></o:p></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b>From:</b> gstreamer-devel
              <a class="moz-txt-link-rfc2396E" href="mailto:gstreamer-devel-bounces@lists.freedesktop.org"><gstreamer-devel-bounces@lists.freedesktop.org></a>
              <b>On Behalf Of </b>Thornton, Keith via gstreamer-devel<br>
              <b>Sent:</b> Wednesday, August 18, 2021 1:14 PM<br>
              <b>To:</b> Discussion of the development of and with
              GStreamer <a class="moz-txt-link-rfc2396E" href="mailto:gstreamer-devel@lists.freedesktop.org"><gstreamer-devel@lists.freedesktop.org></a><br>
              <b>Cc:</b> Thornton, Keith
              <a class="moz-txt-link-rfc2396E" href="mailto:keith.thornton@zeiss.com"><keith.thornton@zeiss.com></a><br>
              <b>Subject:</b> [External] AW: gstreamer videoconvert
              support gpu memory buffer<o:p></o:p></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span lang="DE"><o:p> </o:p></span></p>
        <div style="border:solid #9C6500 1.0pt;padding:2.0pt 2.0pt 2.0pt
          2.0pt">
          <p class="MsoNormal"
            style="line-height:12.0pt;background:#FFEB9C"><b><span
                style="font-size:10.0pt;color:#9C6500" lang="DE">CAUTION:</span></b><span
              style="font-size:10.0pt;color:black" lang="DE"> 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.<o:p></o:p></span></p>
        </div>
        <p class="MsoNormal"><span lang="DE"><o:p> </o:p></span></p>
        <div>
          <p class="MsoNormal"><span
              style="font-size:10.0pt;font-family:"Arial",sans-serif"
              lang="DE">Hi,<o:p></o:p></span></p>
          <p class="MsoNormal"><span
              style="font-size:10.0pt;font-family:"Arial",sans-serif">does
              glcolorconvert not do what you need?<o:p></o:p></span></p>
          <p class="MsoNormal"><span
              style="font-size:10.0pt;font-family:"Arial",sans-serif">Gruesse<o:p></o:p></span></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <div>
            <div style="border:none;border-top:solid #E1E1E1
              1.0pt;padding:3.0pt 0in 0in 0in">
              <p class="MsoNormal"><b><span lang="DE">Von:</span></b><span
                  lang="DE"> gstreamer-devel <<a
                    href="mailto:gstreamer-devel-bounces@lists.freedesktop.org"
                    moz-do-not-send="true">gstreamer-devel-bounces@lists.freedesktop.org</a>>
                  <b>Im Auftrag von </b>Gaurav Vohra via
                  gstreamer-devel<br>
                  <b>Gesendet:</b> Mittwoch, 18. August 2021 08:18<br>
                  <b>An:</b> <a
                    href="mailto:gstreamer-devel@lists.freedesktop.org"
                    moz-do-not-send="true">gstreamer-devel@lists.freedesktop.org</a><br>
                  <b>Cc:</b> Gaurav Vohra <<a
                    href="mailto:Gaurav.Vohra@einfochips.com"
                    moz-do-not-send="true">Gaurav.Vohra@einfochips.com</a>><br>
                  <b>Betreff:</b> gstreamer videoconvert support gpu
                  memory buffer<o:p></o:p></span></p>
            </div>
          </div>
          <p class="MsoNormal"><span lang="DE"><o:p> </o:p></span></p>
          <p class="MsoNormal">Hello,<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">I am working to customize gstreamer
            plugin to support <o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">working to modify gstreamer plugin -
              videoconvert get obtain output data allocated as gpu
              memory allocated buffers.</span><o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">As part of first step have modified
              the plugin to update the src template to include the gpu
              memory caps.</span><o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">Allocation for gpu memory is done is
              transform_frame, but before that being called stream error
              and negotition is failing</span><o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">Commented part</span><o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">//
            #define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE
            (GST_VIDEO_FORMATS_ALL) ";" \<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">GST_VIDEO_CAPS_MAKE_WITH_FEATURES
            ("ANY", GST_VIDEO_FORMATS_ALL)<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">Modified part</span><o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">#define
            CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE
            (GST_VIDEO_FORMATS_ALL) ";" \<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">GST_VIDEO_CAPS_MAKE_WITH_FEATURES
            ("memory:GBM", GST_VIDEO_FORMATS_ALL)<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">//#define
            CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE_WITH_FEATURES
            ("memory:GBM", GST_VIDEO_FORMATS_ALL)<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">static
            GstStaticPadTemplate gst_video_convert_src_template =<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">GST_STATIC_PAD_TEMPLATE
            ("src",<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">   
            GST_PAD_SRC,<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">   
            GST_PAD_ALWAYS,<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">   
            GST_STATIC_CAPS (CSP_VIDEO_CAPS_SRC)<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">    );<o:p></o:p></p>
          <p class="MsoNormal"
style="mso-margin-bottom-alt:auto;background:white;vertical-align:baseline"><span
              style="color:black">While trying to run the playback
              pipeline getting errors related to negotitation and stream
              error like below</span><o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">ERROR:
            from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
            Internal data stream error.<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">Additional
            debug info:<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">../../../../gstreamer-1.14.4/libs/gst/base/gstbasesrc.c(3055):
            gst_base_src_loop ():
            /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:<o:p></o:p></p>
          <p class="MsoNormal" style="vertical-align:baseline">streaming
            stopped, reason not-negotiated (-4)<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Further debugging from logs suggest
            intersect of capsfilter input and the caps filter is coming
            as EMPTY
            <o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">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
            }<o:p></o:p></p>
          <p class="MsoNormal">0:00:06.974569108  4320  0x10cde60
            DEBUG             capsfilter
            gstcapsfilter.c:297:gst_capsfilter_transform_caps:<capsfilter0>
            filter:    (NULL)<o:p></o:p></p>
          <p class="MsoNormal">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<o:p></o:p></p>
          <p class="MsoNormal">0:00:06.974651037  4320  0x10cde60
            DEBUG             capsfilter
            gstcapsfilter.c:300:gst_capsfilter_transform_caps:<capsfilter0>
            intersect: EMPTY<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Regards<o:p></o:p></p>
          <p class="MsoNormal">Gaurav<o:p></o:p></p>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>