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.pinch...@ideasonboard.com>

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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to