[Bug 738013] New: v4l2allocator: issue with import_userptr() in single-planar API when n_planes > 1

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 6 08:51:56 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=738013
  GStreamer | gst-plugins-good | git

           Summary: v4l2allocator: issue with import_userptr() in
                    single-planar API when n_planes > 1
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: aurelien.zanelli at parrot.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Currently, userptr io-mode fails when we use the V4L2 single-planar API and
when format is semi-planar/planar with the following error:

0:00:00.593653349   356 0x75213b50 ERROR          v4l2allocator
gst-plugins-good/sys/v4l2/gstv4l2allocator.c:1223:gst_v4l2_allocator_import_userptr:<v4l2sink0:pool:sink:allocator>
Got 2 userptr plane while driver need 1
0:00:00.593884880   356 0x75213b50 ERROR                   v4l2
gst-plugins-good/sys/v4l2/gstv4l2bufferpool.c:252:gst_v4l2_buffer_pool_import_userptr:<v4l2sink0:pool:sink>
failed to import data
0:00:00.594050395   356 0x75213b50 ERROR                   v4l2
gst-plugins-good/sys/v4l2/gstv4l2bufferpool.c:1756:gst_v4l2_buffer_pool_process:<v4l2sink0:pool:sink>
failed to prepare data

Pipeline which produce this error end with:
... ! video/x-raw,format=NV12 ! v4l2sink io-mode=3

In the gst_v4l2_allocator_import_userptr(), we check that n_planes !=
group->n_mem, if that true, we jump to n_mem_missmatch which returns in error.
In my example n_planes is 2 and group->n_mem is 1 because we use single-planar
API.

So in this case, I propose to distinguish the single-planar from the
multi-planar APIs.

Since the single-planar API expect planes to be contiguous, if n_planes differs
from group->n_mem, I think we will have to check that planes are contiguous and
import buffers only if this condition is true.
However I'm not sure how to do it so I will attach a patch which just assume
that planes are contiguous.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list