Skip to content
  • Julien Isorce's avatar
    v4l2: add support for multi-planar V4L2 API · 61ae84b5
    Julien Isorce authored
    This api is in linux kernel since version 2.6.39,
    and present in all version 3.
    
    The commit that adds the API in master branch of the
    linux kernel source is:
    https://github.com/torvalds/linux/commit/f8f3914cf922f5f9e1d60e9e10f6fb92742907ad
    
    v4l2 doc: "Some devices require data for each input
    or output video frame to be placed in discontiguous
    memory buffers"
    
    There are newer structures 'struct v4l2_pix_format_mplane'
    and 'struct v4l2_plane'.
    So the pixel format is not setup with the same API when using
    multi-planar.
    
    Also for gst-v4l2, one of the difference is that in GstV4l2Meta
    there are now one mem pointer for each maped plane.
    
    When not using multi-planar, this commit takes care of keeping
    the same code path than previously. So that the 2 cases are
    in two different blocks triggered from V4L2_TYPE_IS_MULTIPLANAR.
    
    Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754
    61ae84b5