Gstreamer v4l2: Device does support non-contiguous planes error with NV16

Nicolas Dufresne nicolas at ndufresne.ca
Sun Jun 9 17:31:36 UTC 2019


Le vendredi 07 juin 2019 à 07:30 -0500, Andrea a écrit :
> Hi,
> I'm modifing a v4l2 driver to make it working with multi-plane format
> (NV16), I've implemented the mplane ioctl, but when the gstreamer pipeline
> starts I get this error: 
> 
> /DEBUG                   v4l2
> gstv4l2object.c:3223:gst_v4l2_object_set_format_full:<v4l2src0> progressive
> video
> DEBUG                   v4l2
> gstv4l2object.c:3355:gst_v4l2_object_set_format_full:<v4l2src0> Desired
> format 4096x2160, format NV16 stride: 4096
> DEBUG                   v4l2
> gstv4l2object.c:3406:gst_v4l2_object_set_format_full:<v4l2src0> Desired
> format is 4096x2160, format NV16, nb planes 1
> DEBUG                   v4l2
> gstv4l2object.c:3412:gst_v4l2_object_set_format_full:<v4l2src0>   stride
> 4096
> DEBUG                   v4l2
> gstv4l2object.c:3449:gst_v4l2_object_set_format_full:<v4l2src0> Got format
> of 4096x2160, format NV16, nb planes 2, colorspace 8
> DEBUG                   v4l2
> gstv4l2object.c:3456:gst_v4l2_object_set_format_full:<v4l2src0>   stride
> 4096, sizeimage 8847360
> DEBUG                   v4l2
> gstv4l2object.c:3456:gst_v4l2_object_set_format_full:<v4l2src0>   stride
> 4096, sizeimage 8847360
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device
> '/dev/video0' does support non-contiguous planes
> Additional debug info:
> ../../../git/sys/v4l2/gstv4l2object.c(3678): gst_v4l2_object_set_format_full
> (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Device wants 2 planes/
> 
> NV16 is made up of two planes so in the driver I put
> v4l2_format.fmt.pix_mp.num_planes to 2. I don't understand why gstreamer
> request only one plane for the format NV16.

V4L2 is weird, so there is two pixel formats for NV16, one with
num_planes == 1 (single allocation) and one with num_planes == 2.
Though, regardless which one you picked, GStreamer will always report 1
if your driver advertise the capabilities V4L2_CAP_VIDEO_CAPTURE
instead of V4L2_CAP_VIDEO_CAPTURE_MPLANE. My guess is that you forgot
to change your device capabilities. If you still can't figure-out what
you are doing wrong, you can always pastebin and link a full debug with
GST_DEBUG="v4l2*:7".

> 
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list