Add a v4l2_subdev_pad_ops structure for the operations that need to be performed at the pad level such as format-related operations. Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Index: v4l-dvb-mc/linux/include/media/v4l2-subdev.h =================================================================== --- v4l-dvb-mc.orig/linux/include/media/v4l2-subdev.h +++ v4l-dvb-mc/linux/include/media/v4l2-subdev.h @@ -232,11 +232,21 @@ struct v4l2_subdev_video_ops { int (*enum_frameintervals)(struct v4l2_subdev *sd, struct v4l2_frmivalenum *fival); }; +struct v4l2_subdev_pad_ops { + int (*enum_fmt)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_fmtdesc *fmtdesc); + int (*enum_framesizes)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_frmsizeenum *fsize); + int (*enum_frameintervals)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_frmivalenum *fival); + int (*get_fmt)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_format *fmt); + int (*try_fmt)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_format *fmt); + int (*set_fmt)(struct v4l2_subdev *sd, unsigned int pad, struct v4l2_format *fmt); +}; + struct v4l2_subdev_ops { const struct v4l2_subdev_core_ops *core; const struct v4l2_subdev_tuner_ops *tuner; const struct v4l2_subdev_audio_ops *audio; const struct v4l2_subdev_video_ops *video; + const struct v4l2_subdev_pad_ops *pad; }; #define V4L2_SUBDEV_NAME_SIZE 32 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html