Skip to content

Commit

Permalink
V4L/DVB (4672): Frame format enumeration (1/2)
Browse files Browse the repository at this point in the history
Add VIDIOC_ENUM_FRAMESIZES and VIDIOC_ENUM_FRAMEINTERVALS ioctls to enumerate 
supported frame sizes and frame intervals.

Signed-off-by: Martin Rubli <martin.rubli@epfl.ch>
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Laurent Pinchart authored and Mauro Carvalho Chehab committed Oct 3, 2006
1 parent 515c208 commit 92b2db0
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions include/linux/videodev2.h
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,79 @@ struct v4l2_fmtdesc

#define V4L2_FMT_FLAG_COMPRESSED 0x0001

/*
* F R A M E S I Z E E N U M E R A T I O N
*/
enum v4l2_frmsizetypes
{
V4L2_FRMSIZE_TYPE_DISCRETE = 1,
V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,
V4L2_FRMSIZE_TYPE_STEPWISE = 3,
};

struct v4l2_frmsize_discrete
{
__u32 width; /* Frame width [pixel] */
__u32 height; /* Frame height [pixel] */
};

struct v4l2_frmsize_stepwise
{
__u32 min_width; /* Minimum frame width [pixel] */
__u32 max_width; /* Maximum frame width [pixel] */
__u32 step_width; /* Frame width step size [pixel] */
__u32 min_height; /* Minimum frame height [pixel] */
__u32 max_height; /* Maximum frame height [pixel] */
__u32 step_height; /* Frame height step size [pixel] */
};

struct v4l2_frmsizeenum
{
__u32 index; /* Frame size number */
__u32 pixel_format; /* Pixel format */
__u32 type; /* Frame size type the device supports. */

union { /* Frame size */
struct v4l2_frmsize_discrete discrete;
struct v4l2_frmsize_stepwise stepwise;
};

__u32 reserved[2]; /* Reserved space for future use */
};

/*
* F R A M E R A T E E N U M E R A T I O N
*/
enum v4l2_frmivaltypes
{
V4L2_FRMIVAL_TYPE_DISCRETE = 1,
V4L2_FRMIVAL_TYPE_CONTINUOUS = 2,
V4L2_FRMIVAL_TYPE_STEPWISE = 3,
};

struct v4l2_frmival_stepwise
{
struct v4l2_fract min; /* Minimum frame interval [s] */
struct v4l2_fract max; /* Maximum frame interval [s] */
struct v4l2_fract step; /* Frame interval step size [s] */
};

struct v4l2_frmivalenum
{
__u32 index; /* Frame format index */
__u32 pixel_format; /* Pixel format */
__u32 width; /* Frame width */
__u32 height; /* Frame height */
__u32 type; /* Frame interval type the device supports. */

union { /* Frame interval */
struct v4l2_fract discrete;
struct v4l2_frmival_stepwise stepwise;
};

__u32 reserved[2]; /* Reserved space for future use */
};

/*
* T I M E C O D E
*/
Expand Down Expand Up @@ -1249,6 +1322,8 @@ struct v4l2_streamparm
#define VIDIOC_G_EXT_CTRLS _IOWR ('V', 71, struct v4l2_ext_controls)
#define VIDIOC_S_EXT_CTRLS _IOWR ('V', 72, struct v4l2_ext_controls)
#define VIDIOC_TRY_EXT_CTRLS _IOWR ('V', 73, struct v4l2_ext_controls)
#define VIDIOC_ENUM_FRAMESIZES _IOWR ('V', 74, struct v4l2_frmsizeenum)
#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR ('V', 75, struct v4l2_frmivalenum)

#ifdef __OLD_VIDIOC_
/* for compatibility, will go away some day */
Expand Down

0 comments on commit 92b2db0

Please sign in to comment.