aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@iki.fi>2011-10-14 13:14:26 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-04-10 14:00:41 -0400
commitae184cda8d0eebfea6cf217abc3f94a7cfffe24d (patch)
treeb158537e0b4f894578748784f581a18af5b2cc0c /include/media
parentc520331a52094182d6682fa7d6f630bdfbfc2974 (diff)
[media] v4l: VIDIOC_SUBDEV_S_SELECTION and VIDIOC_SUBDEV_G_SELECTION IOCTLs
Add support for VIDIOC_SUBDEV_S_SELECTION and VIDIOC_SUBDEV_G_SELECTION IOCTLs. They replace functionality provided by VIDIOC_SUBDEV_S_CROP and VIDIOC_SUBDEV_G_CROP IOCTLs and also add new functionality (composing). VIDIOC_SUBDEV_G_CROP and VIDIOC_SUBDEV_S_CROP continue to be supported. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/v4l2-subdev.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index f0f3358d1b1b..feab950bc8ab 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -466,6 +466,10 @@ struct v4l2_subdev_pad_ops {
466 struct v4l2_subdev_crop *crop); 466 struct v4l2_subdev_crop *crop);
467 int (*get_crop)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, 467 int (*get_crop)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
468 struct v4l2_subdev_crop *crop); 468 struct v4l2_subdev_crop *crop);
469 int (*get_selection)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
470 struct v4l2_subdev_selection *sel);
471 int (*set_selection)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
472 struct v4l2_subdev_selection *sel);
469}; 473};
470 474
471struct v4l2_subdev_ops { 475struct v4l2_subdev_ops {
@@ -549,8 +553,11 @@ struct v4l2_subdev {
549struct v4l2_subdev_fh { 553struct v4l2_subdev_fh {
550 struct v4l2_fh vfh; 554 struct v4l2_fh vfh;
551#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API) 555#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
552 struct v4l2_mbus_framefmt *try_fmt; 556 struct {
553 struct v4l2_rect *try_crop; 557 struct v4l2_mbus_framefmt try_fmt;
558 struct v4l2_rect try_crop;
559 struct v4l2_rect try_compose;
560 } *pad;
554#endif 561#endif
555}; 562};
556 563
@@ -561,13 +568,19 @@ struct v4l2_subdev_fh {
561static inline struct v4l2_mbus_framefmt * 568static inline struct v4l2_mbus_framefmt *
562v4l2_subdev_get_try_format(struct v4l2_subdev_fh *fh, unsigned int pad) 569v4l2_subdev_get_try_format(struct v4l2_subdev_fh *fh, unsigned int pad)
563{ 570{
564 return &fh->try_fmt[pad]; 571 return &fh->pad[pad].try_fmt;
565} 572}
566 573
567static inline struct v4l2_rect * 574static inline struct v4l2_rect *
568v4l2_subdev_get_try_crop(struct v4l2_subdev_fh *fh, unsigned int pad) 575v4l2_subdev_get_try_crop(struct v4l2_subdev_fh *fh, unsigned int pad)
569{ 576{
570 return &fh->try_crop[pad]; 577 return &fh->pad[pad].try_crop;
578}
579
580static inline struct v4l2_rect *
581v4l2_subdev_get_try_compose(struct v4l2_subdev_fh *fh, unsigned int pad)
582{
583 return &fh->pad[pad].try_compose;
571} 584}
572#endif 585#endif
573 586