ioctl VIDIOC_ENUM_FMT
    &manvol;
  
  
    VIDIOC_ENUM_FMT
    Enumerate image formats
  
  
    
      
	int ioctl
	int fd
	int request
	struct v4l2_fmtdesc
*argp
      
    
  
  
    Arguments
    
      
	fd
	
	  &fd;
	
      
      
	request
	
	  VIDIOC_ENUM_FMT
	
      
      
	argp
	
	  
	
      
    
  
  
    Description
    To enumerate image formats applications initialize the
type and index
field of &v4l2-fmtdesc; and call the
VIDIOC_ENUM_FMT ioctl with a pointer to this
structure. Drivers fill the rest of the structure or return an
&EINVAL;. All formats are enumerable by beginning at index zero and
incrementing by one until EINVAL is
returned.
    Note that after switching input or output the list of enumerated image
formats may be different.
    
      struct v4l2_fmtdesc
      
	&cs-str;
	
	  
	    __u32
	    index
	    Number of the format in the enumeration, set by
the application. This is in no way related to the 
pixelformat field.
	  
	  
	    __u32
	    type
	    Type of the data stream, set by the application.
Only these types are valid here:
V4L2_BUF_TYPE_VIDEO_CAPTURE,
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
V4L2_BUF_TYPE_VIDEO_OUTPUT,
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE and
V4L2_BUF_TYPE_VIDEO_OVERLAY. See .
	  
	  
	    __u32
	    flags
	    See 
	  
	  
	    __u8
	    description[32]
	    Description of the format, a NUL-terminated ASCII
string. This information is intended for the user, for example: "YUV
4:2:2".
	  
	  
	    __u32
	    pixelformat
	    The image format identifier. This is a
four character code as computed by the v4l2_fourcc()
macro:
	  
	  
	    
#define v4l2_fourcc(a,b,c,d) (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
Several image formats are already
defined by this specification in . Note these
codes are not the same as those used in the Windows world.
	  
	  
	    __u32
	    reserved[4]
	    Reserved for future extensions. Drivers must set
the array to zero.
	  
	
      
    
    
      Image Format Description Flags
      
	&cs-def;
	
	  
	    V4L2_FMT_FLAG_COMPRESSED
	    0x0001
	    This is a compressed format.
	  
	  
	    V4L2_FMT_FLAG_EMULATED
	    0x0002
	    This format is not native to the device but emulated
through software (usually libv4l2), where possible try to use a native format
instead for better performance.
	  
	
      
    
  
  
    &return-value;
    
      
	EINVAL
	
	  The &v4l2-fmtdesc; type
is not supported or the index is out of
bounds.