<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hello, <br>
      <br>
      I've tried the codes on your allocator branch [1]. <br>
      <br>
      Environment:<br>
          - Linux version 3.2.0-4-686-pae (<a
        class="moz-txt-link-abbreviated"
        href="mailto:debian-kernel@lists.debian.org">debian-kernel@lists.debian.org</a>)
      (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.46-1<br>
          - gstreamer1.0, gst-plugins-base are fetched from master
      branch on official tree (as of 2014/4/30)<br>
          - gst-plugins-good are fetched from [1] <br>
      <br>
          [1] <a class="moz-txt-link-freetext"
href="http://cgit.collabora.com/git/user/nicolas/gst-plugins-good.git/log/?h=v4l2-allocator">http://cgit.collabora.com/git/user/nicolas/gst-plugins-good.git/log/?h=v4l2-allocator</a>
      <br>
      <br>
      I've tried the basic operation before trying DMABUF feature. <br>
      However, unfortunately, it does run as expected. <br>
      <br>
      Symptom: <br>
          1. gst-launch-1.0 v4l2src io-mode=2 ! fakesink failed with
      following error message<br>
          ERROR: from element
      /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to configure
      internal buffer pool.<br>
      <br>
          (log file with GST_DEBUG=6 is attached(tmp2.log). below is
      just the essense of the error message) <br>
      <br>
          v4l2
      gstv4l2bufferpool.c:557:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool:src>

      can't allocate, setting maximum to minimum<br>
          bufferpool
      gstbufferpool.c:551:default_set_config:<v4l2src0:pool:src>
      config GstBufferPoolConfig, caps=(GstCaps)"NULL", <br>
         size=(uint)0, min-buffers=(uint)2, max-buffers=(uint)2,
      allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL;<br>
          v4l2
      gstv4l2object.c:3196:gst_v4l2_object_decide_allocation:<v4l2src0>
      error: Failed to configure internal buffer pool.<br>
      <br>
      My findings:<br>
          1. gst-plaugins-good from master branch on official tree
      worked as expected. <br>
      <br>
          2. Error happens because can_allocate is 0 as shown below. <br>
      <br>
              gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool,
      GstStructure * config)<br>
                  ....<br>
                  case GST_V4L2_IO_MMAP:<br>
                    can_allocate = GST_V4L2_ALLOCATOR_CAN_ALLOCATE
      (pool->vallocator, MMAP);<br>
      <br>
             According to the current code, it seems to me that kernel
      needs to support not only <br>
             VIDIOC_REQBUFS but also VIDIOC_CREATE_BUFS ioctl, in order
      to use v4l2allocator. <br>
      <br>
          3. Do we need to set "flags" to the allocator like below so
      that <br>
              GST_V4L2_ALLOCATOR_CAN_ALLOCATE () macro can work as
      expected ? <br>
              Please ignore if this is in your expectation. Maybe I'm
      misunderstanding something....<br>
      <br>
               gst_v4l2_allocator_create_buf (GstV4l2Allocator *
      allocator)<br>
              @@ -610,10 +648,20 @@ gst_v4l2_allocator_new (GstObject *
      parent, gint video_fd,<br>
                 allocator->type = format->type;<br>
                 allocator->format = *format;<br>
               <br>
                 flags |= GST_V4L2_ALLOCATOR_PROBE (allocator, MMAP);<br>
                 flags |= GST_V4L2_ALLOCATOR_PROBE (allocator, USERPTR);<br>
                 flags |= GST_V4L2_ALLOCATOR_PROBE (allocator, DMABUF);<br>
               <br>
              +  GST_OBJECT_FLAG_SET (allocator, flags);<br>
                 if (flags == 0)<br>
                   goto not_supported;<br>
      <br>
      Question: <br>
          1. Is there any special reason why VIDIOC_CREATE_BUFS ioctl is
      needed ?<br>
              According to the following document, it seems to me that
      VIDIOC_CREATE_BUFS is not mandatory one. <br>
              <a class="moz-txt-link-freetext"
        href="http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-create-bufs.html">http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-create-bufs.html</a><br>
              Our kernel currently does only support VIDIOC_REQBUS, and
      doe not support VIDIOC_CREATE_BUFS. <br>
         <br>
             I'm not so familiar with the multimedia portion, so please
      forgive me if I'm asking silly question. <br>
             Any insight would be highly appreciated. <br>
             Looking forward to hearing from you. <br>
      <br>
      KInd Regards,<br>
      Makoto Harada<br>
      <br>
      <br>
      (2014/04/29 8:40), Makoto Harada wrote:<br>
    </div>
    <blockquote cite="mid:535EE6DE.4090403@gmail.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">Thank you so much, Nicolas, for your
        kind reply. <br>
        This is exactly what I needed. I'll try it. <br>
        <br>
        Kind Regards,<br>
        Makoto <br>
        <br>
        (2014/04/27 2:23), Nicolas Dufresne wrote:<br>
      </div>
      <blockquote cite="mid:1398533034.4135.23.camel@mpb-nicolas"
        type="cite">
        <meta http-equiv="Content-Type" content="text/html;
          charset=ISO-8859-1">
        <meta name="GENERATOR" content="GtkHTML/4.6.6">
        Le samedi 26 avril 2014 à 13:22 -0400, Nicolas Dufresne a
        écrit :<br>
        <blockquote type="CITE"> Le jeudi 24 avril 2014 à 10:54 +0900,
          Makoto Harada a écrit :
          <blockquote type="CITE">
            <pre>Dear gstreamer expert,

I'm now working to implement DMABUF feature to our custom video encoder plugin,
which would be directory connected to v4l2src in the gstreamer pipeline. (We
have already validated the DMABUF functionality of our kernel by using some
simple V4L2 applications, so now the turn of gstreamer)
</pre>
          </blockquote>
          This is not needed. I already got it in my branch [1]. Next
          week I'm giving it a last debugging round, need to fix some
          threading issues and seeking/flush. Some patch cleanup and
          will start merging this into master if it's all good with the
          others. What will be pending is transparent activation of it.
          <br>
        </blockquote>
        [1] <a moz-do-not-send="true"
href="http://cgit.collabora.com/git/user/nicolas/gst-plugins-good.git/log/?h=v4l2-allocator">http://cgit.collabora.com/git/user/nicolas/gst-plugins-good.git/log/?h=v4l2-allocator</a>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
gstreamer-devel mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>