After the pad format, also print the frame interval, if already configured.

Signed-off-by: Philipp Zabel <p.za...@pengutronix.de>
Acked-by: Sakari Ailus <sakari.ai...@linux.intel.com>
---
Changes since v3:
 - Ignore EINVAL error of VIDIOC_SUBDEV_G_FRAME_INTERVAL as that
   is a valid return value if the pad doesn't support frame intervals,
   according to the documentation.
---
 utils/media-ctl/media-ctl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 572bcf75..3dbac256 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -79,6 +79,7 @@ static void v4l2_subdev_print_format(struct media_entity 
*entity,
        unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        struct v4l2_mbus_framefmt format;
+       struct v4l2_fract interval = { 0, 0 };
        struct v4l2_rect rect;
        int ret;
 
@@ -86,10 +87,17 @@ static void v4l2_subdev_print_format(struct media_entity 
*entity,
        if (ret != 0)
                return;
 
+       ret = v4l2_subdev_get_frame_interval(entity, &interval, pad);
+       if (ret != 0 && ret != -ENOTTY && ret != -EINVAL)
+               return;
+
        printf("\t\t[fmt:%s/%ux%u",
               v4l2_subdev_pixelcode_to_string(format.code),
               format.width, format.height);
 
+       if (interval.numerator || interval.denominator)
+               printf("@%u/%u", interval.numerator, interval.denominator);
+
        if (format.field)
                printf(" field:%s", v4l2_subdev_field_to_string(format.field));
 
-- 
2.11.0

Reply via email to