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.
    
      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.
	  
	  
	    &v4l2-buf-type;
	    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,
V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver
defined) types with code V4L2_BUF_TYPE_PRIVATE
and higher.
	  
	  
	    __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.